Как отключить отладчик xdebug



Я думаю, что мой сервер стал медленным, так как я установил XDebug.
Итак, чтобы проверить мою гипотезу, я хочу полностью отключить XDebug.
Я искал уроки о том, как это сделать, но я не могу найти такую информацию.

1749   20  

20 ответов:

найти php.ini и искать XDebug.

установите автозапуск xdebug в false

xdebug.remote_autostart=0  
xdebug.remote_enable=0

отключить профайлер

xdebug.profiler_enable=0

обратите внимание, что там может быть потеря производительности даже при отключенном xdebug, но загруженном. Чтобы отключить загрузку самого расширения, вам нужно прокомментировать его в своем php.Ини. Найдите запись, которая выглядит так:

zend_extension = "/path/to/php_xdebug.dll"

и поставить ; чтобы прокомментировать его, например ;zend_extension = ….

проверить это пост XDebug, как отключить удаленную отладку для одного .файл php?

простое решение, работающее на дистрибутивах Linux, подобных Ubuntu

sudo php5dismod xdebug
sudo service apache2 restart

на Linux Ubuntu(может быть, и другой - это не проверено) распределение с PHP 5 на борту, вы можете использовать:

sudo php5dismod xdebug

и PHP 7

sudo phpdismod xdebug

и после этого, пожалуйста, перезагрузите сервер:

sudo service apache2 restart

кроме того, вы можете добавить xdebug_disable() в ваш код. Попробуйте:

if(function_exists('xdebug_disable')) { xdebug_disable(); }

расширение комментария в php.ini и перезапустить Apache. Вот простой скрипт (вы можете назначить ему ярлык)

отладчик xdebug-тумблер.php

define('PATH_TO_PHP_INI', 'c:/xampp/php/php.ini');
define('PATH_TO_HTTPD', 'c:/xampp/apache/bin/httpd.exe');
define('REXP_EXTENSION', '(zend_extension\s*=.*?php_xdebug)');

$s = file_get_contents(PATH_TO_PHP_INI);
$replaced = preg_replace('/;' . REXP_EXTENSION . '/', '', $s);
$isOn = $replaced != $s;
if (!$isOn) {
    $replaced = preg_replace('/' . REXP_EXTENSION . '/', ';', $s);
}
echo 'xdebug is ' . ($isOn ? 'ON' : 'OFF') . " now. Restarting apache...\n\n";
file_put_contents(PATH_TO_PHP_INI, $replaced);

passthru(PATH_TO_HTTPD . ' -k restart');

я переименовал файл config и перезапустить сервер:

$ mv /etc/php/7.0/fpm/conf.d/20-xdebug.ini /etc/php/7.0/fpm/conf.d/20-xdebug.i

$ sudo service php7.0-fpm restart && sudo service nginx restart

это действительно сработало для меня.

на Windows (WAMP) в файле CLI ini:

X:\wamp\bin\php\php5.x.xx\php.ini

строки

; XDEBUG Extension

;zend_extension = "X:/wamp/bin/php/php5.x.xx/zend_ext/php_xdebug-xxxxxx.dll"

Apache будет обрабатывать xdebug, и композитор не будет.

в xubuntu я полностью отключил xdebug для CLI с этим...

sudo rm /etc/php5/cli/conf.d/*xdebug*

два варианта:

1: добавьте следующий код в скрипт инициализации:

 if (function_exists('xdebug_disable')) {
           xdebug_disable();
         }

2: Добавьте следующий флаг в php.ini

 xdebug.remote_autostart=0
 xdebug.remote_enable=0
1-й вариант.

найдите свой PHP.ini и искать XDebug.

обычно в Ubuntu его путь

/etc/php5/apache2/php.ini  

внесите следующие изменения (лучше просто прокомментировать их, добавив ; в начале )

xdebug.remote_autostart=0
xdebug.remote_enable=0
xdebug.profiler_enable=0

затем перезагрузите ваш сервер опять же для Ubuntu

sudo service apache2 restart

я столкнулся с аналогичной проблемой. Иногда, вы не найдете xdebug.so в php.Ини. В этом случае выполните phpinfo() в php-файле и проверьте Additional .ini files parsed. Здесь вы увидите больше ini-файлов. Одним из них будет ini-файл xdebug. Просто удалите (или переименуйте) этот файл, перезапустите apache, и это расширение будет удалено.

у меня была следующая проблема: Даже если я установил

xdebug.remote_enable=0 

Xdebug-сообщение об ошибке-украшение было показано.

мое решение:

xdebug.default_enable=0

только если я использую этот флаг, Xdebug был отключен.

(Это для CentOS)

переименуйте конфигурационный файл и перезапустите apache.

sudo mv /etc/php.d/xdebug.ini /etc/php.d/xdebug.ini.old
sudo service httpd restart

сделайте обратное, чтобы снова включить.

отключить xdebug

для PHP 7: sudo nano /etc/php/7.0/cli/conf.d/20-xdebug.ini

для PHP 5: sudo nano /etc/php5/cli/conf.d/20-xdebug.ini

затем закомментируйте все и сохраните.


обновление -- отключить только для CLI

согласно комментарию @igoemon, это лучший метод:

PHP 7.0 (NGINX)

sudo mv /etc/php/7.0/cli/conf.d/20-xdebug.ini /etc/php/7.0/cli/conf.d/20-xdebug.ini.old
sudo service nginx restart

Примечание: обновите путь к вашей версии PHP.

Ubuntu 16.04 удалить xdebug из PHP.

найдите свой php.ini-файл и убедитесь, что xdebug есть:

grep -r "xdebug" /etc/php/

это может придумать разные версии, если так запустить php -v найти свой вариант.

редактировать php.файл ini, например:

sudo vi /etc/php/5.6/mods-available/xdebug.ini

комментарий строка:

//zend_extension=xdebug.so

сохраните файл

Если вы используете MAMP Pro на Mac OS X, это делается через клиент MAMP, сняв флажок Активировать Xdebug под PHP tab:

Disabling Xdebug in MAMP Pro

Итак, да, все, что вам нужно, просто прокомментируйте строку в INI-файле, например zend_extension=xdebug.so или аналогичные.

комментарии можно сделать, добавив точку с запятой.

но, такой ответ уже добавлен, и я хотел бы поделиться готовым решением для переключения статуса Xdebug.

Я сделал быстрый переключатель для Xdebug. Может быть, было бы полезно для кого-то.

Xdebug Switcher

для WAMP щелкните левой кнопкой мыши на значке Wamp в панели задач. Наведите курсор на PHP, а затем нажмите на php.ini и откройте его в своем текстовом редакторе.

теперь найдите фразу 'zend_extension' и добавьте ; (точка с запятой) перед ней.

перезагрузите WAMP, и вы хорошо идти.

если вы используете php-fpm должно быть достаточно следующего:

sudo phpdismod xdebug
sudo service php-fpm restart

обратите внимание, что вам нужно изменить в зависимости от вашей версии PHP. Например, запустив php 7.0 вы бы сделали:

sudo phpdismod xdebug
sudo service php7.0-fpm restart

поскольку вы используете php-fpm, не должно быть необходимости перезапускать фактический веб-сервер. В любом случае, если вы не используете fpm, вы можете просто перезапустить свой веб-сервер, используя любую из следующих команд:

sudo service apache2 restart
sudo apache2ctl restart

Apache / 2.4.33 (Win64) PHP/7.2.4 myhomebrew stack

В конце php.Ини я использую следующие действия, чтобы управлять отладчик xdebug для работы с PhpStorm именно

; jch ~ Sweet analizer at https://xdebug.org/wizard.php for matching xdebug to php version.
; jch ~ When upgrading php versions check if newer xdebug.dll is needed in ext directory.
; jch Renamed... zend_extension = E:\x64Stack\PHP\php7.2.4\ext\php_xdebug-2.6.0-7.2-vc15-x86_64.dll

zend_extension = E:\x64Stack\PHP\php7.2.4\ext\php_xdebug.dll

; jch !!!! Added the following for Xdebug with PhpStorm

[Xdebug]
; zend_extension=<full_path_to_xdebug_extension>
; xdebug.remote_host=<the host where PhpStorm is running (e.g. localhost)>
; xdebug.remote_port=<the port to which Xdebug tries to connect on the host where PhpStorm is running (default 9000)>

xdebug.remote_enable=1
xdebug.remote_host=localhost
xdebug.remote_port=9000

xdebug.profiler_enable=1
xdebug.profiler_output_dir="E:\x64Stack\Xdebug_profiler_output"
xdebug.idekey=PHPSTORM
xdebug.remote_autostart=1

; jch ~~~~~~~~~To turn Xdebug off(disable) uncomment the following 3 lines restart Apache~~~~~~~~~ 
;xdebug.remote_autostart=0  
;xdebug.remote_enable=0
;xdebug.profiler_enable=0

; !!! Might get a little more speed by also commenting out this line above... 
;;; zend_extension = E:\x64Stack\PHP\php7.2.4\ext\php_xdebug.dll
; so that Xdebug is both disabled AND not loaded

Comments

    Ничего не найдено.