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