Я думаю, що мій сервер став повільним з моменту встановлення 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