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

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

Ответ 1

Найдите свой 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, как отключить удаленную отладку для одного файла .php?

Ответ 2

Простое решение для работы с дистрибутивами Linux, похожее на Ubuntu

sudo php5dismod xdebug
sudo service apache2 restart

Ответ 3

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

sudo php5dismod xdebug

И с PHP 7

sudo phpdismod xdebug

И после этого перезагрузите сервер:

sudo service apache2 restart

Ответ 4

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

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

Ответ 5

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

$ 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

Это сработало для меня.

Ответ 6

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

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');

Ответ 7

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

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

Ответ 8

В 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, а композитор не будет.

Ответ 9

Два варианта:

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

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

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

 xdebug.remote_autostart=0
 xdebug.remote_enable=0

Рекомендуется 1-й вариант.

Ответ 10

Найдите свой 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

Ответ 11

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

Ответ 12

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

Ответ 13

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

xdebug.remote_enable=0 

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

Мое решение:

xdebug.default_enable=0

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

Ответ 14

(Это для CentOS)

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

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

Сделайте реверс для повторного включения.

Ответ 15

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

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

Ответ 16

Если вы используете 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

Ответ 17

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

Disabling Xdebug in MAMP Pro

Ответ 18

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

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

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

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

Xdebug Switcher

Ответ 19

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

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

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

Ответ 20

Apache/2.4.33 (Win64) PHP/7.2.4 стек myHomeBrew

В конце 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

Ответ 21

Вдохновленный PHPStorm правой кнопкой мыши на файл → отладка ->...

[email protected]:~/symfony$ 
php 
-dxdebug.remote_enable=0 
-dxdebug.remote_autostart=0 
-dxdebug.default_enable=0 
-dxdebug.profiler_enable=0 
test.php

важная -dxdebug.remote_enable=0 -dxdebug.default_enable=0 - -dxdebug.remote_enable=0 -dxdebug.default_enable=0