Я думаю, що мій сервер став повільним з моменту встановлення XDebug. Отже, щоб перевірити свою гіпотезу, я хочу повністю відключити XDebug. Я шукав підручники, як це зробити, але не можу знайти таку інформацію.
Я думаю, що мій сервер став повільним з моменту встановлення XDebug. Отже, щоб перевірити свою гіпотезу, я хочу повністю відключити XDebug. Я шукав підручники, як це зробити, але не можу знайти таку інформацію.
Відповіді:
Знайдіть свій 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-файлу?
zend_extension=/usr/lib/php5/20090626+lfs/xdebug.so
від /etc/php5/conf.d/xdebug.ini
. Однак ні в, /usr/lib/php5
ні в/etc
рядках, відповіді немає.
Просте рішення, що працює над дистрибутивами Linux, схожими на Ubuntu
sudo php5dismod xdebug
sudo service apache2 restart
$ sudo phpdismod xdebug
У 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(); }
Я перейменував конфігураційний файл і перезапустив сервер:
$ mv /etc/php/7.0/fpm/conf.d/20-xdebug.ini /etc/php/7.0/fpm/conf.d/20-xdebug.ini.bak
$ sudo service php7.0-fpm restart && sudo service nginx restart
Це спрацювало для мене.
Розширення коментарів у 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');
в xubuntu я повністю відключив xdebug для CLI за допомогою цього ...
sudo rm /etc/php5/cli/conf.d/*xdebug*
/etc/php5/cli/conf.d/20-xdebug.ini
passthru
функцію з включеною функцією xdebug, xdebug може зависнути і зупинити виконання.
unlink
більш , rm
якщо він доступний.
sudo nano /etc/php/7.0/cli/conf.d/20-xdebug.ini
і прокоментував це.
У 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
, а композитор - ні.
Знайдіть свій 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 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.
grep -r "xdebug" /etc/php/
Це може придумати різні версії, якщо так запустити, php -v
щоб знайти свою версію.
sudo vi /etc/php/5.6/mods-available/xdebug.ini
//zend_extension=xdebug.so
Якщо ви використовуєте, 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
Я зіткнувся з подібним питанням. Іноді ви не знайдете xdebug.so у php.ini. У такому випадку виконати phpinfo()
у файлі php та перевірити Additional .ini files parsed
. Тут ви побачите більше файлів ini. Одним із них буде inde файл xdebug. Просто видаліть (або перейменуйте) цей файл, перезапустіть apache, і це розширення буде видалено.
Якщо ви використовуєте MAMP Pro на Mac OS X, це робиться через клієнт MAMP, знявши прапорець Активувати Xdebug на вкладці PHP :
Отже, так, все, що вам потрібно, просто коментуйте рядок у файлі INI, подібний zend_extension=xdebug.so
або подібний.
Коментарі можна робити, додаючи крапку з комою.
Але такий тип відповіді вже доданий, і я хотів би поділитися готовим рішенням щодо переключення статусу Xdebug.
Я зробив швидкий перемикач для Xdebug. Можливо, комусь це було б корисно.
Для WAMP клацніть лівою кнопкою миші на значку Wamp на панелі завдань. Наведіть курсор миші на PHP, а потім натисніть на php.ini та відкрийте його у текстовому редакторі.
Тепер знайдіть фразу 'zend_extension' та додайте; (крапка з комою) перед ним.
Перезапустіть WAMP, і ви готові йти.
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
Натхненний PHPStorm клацніть правою кнопкою миші на файл -> налагодження -> ...
www-data@3bd1617787db:~/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
Я створив цей скрипт bash для перемикання xdebug. Я думаю, що це має працювати принаймні на Ubuntu / Debian. Це для PHP7 +. Для PHP5 використовуйте php5dismod / php5enmod.
#!/bin/bash
#
# Toggles xdebug
#
if [ ! -z $(php -m | grep "xdebug") ] ; then
phpdismod xdebug
echo "xdebug is now disabled"
else
phpenmod xdebug
echo "xdebug is now enabled"
fi
# exit success
exit 0
Вимкнути xdebug лише для певної версії PHP або sapi. У цьому випадку PHP 7,2 fpm
sudo phpdismod -v 7.2 -s fpm xdebug
sudo service php7.2-fpm nginx restart