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

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

Найдите свой php.ini и найдите XDebug.

Установите xdebug autostart в значение false

 xdebug.remote_autostart=0 xdebug.remote_enable=0 

Отключить свой профилировщик

 xdebug.profiler_enable=0 

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

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

и положил a ; чтобы прокомментировать это, например ;zend_extension = …

Отметьте это сообщение XDebug, как отключить удаленную отладку для одного .php-файла?

 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-toggle.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 . '/', '$1', $s); $isOn = $replaced != $s; if (!$isOn) { $replaced = preg_replace('/' . REXP_EXTENSION . '/', ';$1', $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'); 

Я переименовал файл конфигурации и перезапустил сервер:

 $ 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) в файле INI CLI:

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.ini. В этом случае выполните phpinfo() в php-файле и проверьте, что Additional .ini files parsed . Здесь вы увидите больше файлов ini. Одним из них будет файл ini xdebug. Просто удалите (или переименуйте) этот файл, перезапустите apache, и это расширение будет удалено.

У меня возникла проблема: даже если я установил

 xdebug.remote_enable=0 

Было показано Xdebug-Error-Message-Decoration.

Мое решение:

 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 – отключить только 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.

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

Отключение Xdebug в MAMP Pro

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

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

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

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

Xdebug Switcher

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

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

Перезапустите WAMP, и вам хорошо идти.

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 

Сохранить файл