Как отключить XDebug

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

20 ответов


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

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

xdebug.remote_autostart=0  
xdebug.remote_enable=0

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

xdebug.profiler_enable=0

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

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

и поставить ; комментировать это, например,;zend_extension = ….

проверить это пост XDebug, как отключить удаленную отладку для single .файл 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.так в php.ini. В этом случае выполните 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

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


UPDATE -- Disable для 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 и откройте его в своем texteditor.

теперь найдите фразу "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.ini я использую следующее для управления 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