Как отключить 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
, и композитор не будет.
два варианта:
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:
Итак, да, все, что вам нужно, просто прокомментируйте строку в INI-файле, как zend_extension=xdebug.so
или аналогичные.
комментарии можно сделать, добавив точку с запятой.
но такой ответ уже добавлен, и я хотел бы поделиться готовым решением для переключения статуса Xdebug.
Я сделал быстрый переключатель для Xdebug. Может быть, это кому-то пригодится.
для 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