我认为自从安装了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文件禁用远程调试?
适用于类似Ubuntu的Linux发行版的简单解决方案
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(); }
我重命名了配置文件并重新启动了服务器:
$ 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
它对我有效。
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');
sudo rm /etc/php5/cli/conf.d/*xdebug*
/etc/php5/cli/conf.d/20-xdebug.ini
中的部分即可。 - ulkaspassthru
函数从终端运行另一个 PHP 脚本并启用了 xdebug,则 xdebug 可能会挂起并停止执行。 - Ghermanunlink
而不是rm
。 - Andysudo nano /etc/php/7.0/cli/conf.d/20-xdebug.ini
并将其注释掉。 - Justinphp-fpm
,则以下内容应该足够:sudo phpdismod xdebug
sudo service php-fpm restart
sudo phpdismod xdebug
sudo service php7.0-fpm restart
如果您正在运行php-fpm,那么就不需要重新启动实际的Web服务器。但是,如果您不使用fpm,则可以使用以下任何一种命令简单地重新启动Web服务器:
sudo service apache2 restart
sudo apache2ctl restart
; XDEBUG Extension
;zend_extension = "X:/wamp/bin/php/php5.x.xx/zend_ext/php_xdebug-xxxxxx.dll"
Apache会处理 xdebug
,而composer不会。
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
。docker exec
和 docker run
中使用。 - MrMeseesxdebug.mode=off
或在此情况下使用-dxdebug.mode=off
。 - Sandra
/etc/php5/conf.d/xdebug.ini
中的zend_extension=/usr/lib/php5/20090626+lfs/xdebug.so
这一行后,我成功地将其禁用。然而,在/usr/lib/php5
和/etc
中,回答中指定的那些行都不可用。 - Haralan Dobrev