如何禁用XDebug

150

我认为自从安装了XDebug后,我的服务器变得很慢。因此,为了验证我的假设,我想完全禁用XDebug。我一直在搜索如何禁用它的教程,但是我找不到相关信息。

27个回答

7

自从 xdebug 3 推出以来,php.ini 中的设置已经稍作调整。

设置:

xdebug.mode=off

将禁用所有处理。根据文档:

没有任何功能是启用的,Xdebug 不会做任何工作,除了检查功能是否启用。如果你想要接近 0 的开销,请使用此设置。


这将作为回答给OP问题的时间。 - theking2

7

如何在Ubuntu 16.04中移除PHP的xdebug插件

找到您的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

保存文件


是的,你绝对需要第一个命令来找出你所做的所有(错误的)xdebug配置。谢谢! - Aaron Liu
刚学会了使用grep命令,谢谢! - Szabi Zsoldos

5

您可以使用-d标志在运行时在PHP CLI上禁用Xdebug:

php -d xdebug.mode=off -i | grep xdebug.mode

结果:xdebug.mode => off => off

例如,使用禁用Xdebug的单元测试,以提高速度:

php -d xdebug.mode=off ./vendor/bin/phpunit

您还可以创建别名,使其更容易使用。


5

找到您的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

5

禁用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版本的路径。

这不是一个解决方案,因为 /etc/php/7.0/cli/conf.d/20-xdebug.ini 只是一个符号链接,如果你编辑它,你就会编辑 cli 和非 cli 共用的原始文件。 我认为正确的解决方案是简单地删除符号链接。 - igoemon
更新的答案 ^。 - Justin

5
两个选项: 1:在初始化脚本中添加以下代码:
 if (function_exists('xdebug_disable')) {
           xdebug_disable();
         }

2:在php.ini中添加以下标志

 xdebug.remote_autostart=0
 xdebug.remote_enable=0

建议选择第一项。


5
我为切换xdebug创建了这个bash脚本。我认为至少在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

非常有用的脚本。您可以提到更改生效需要重新启动服务,这并不是很明显(至少,我的系统需要重新启动服务)。 - Katai

4

我遇到了类似的问题。有时,在php.ini中找不到xdebug.so。这种情况下,在php文件中执行phpinfo()并检查Additional .ini files parsed。在这里,您将看到更多的ini文件。其中一个将是xdebug的ini文件。只需删除(或重命名)此文件,重新启动apache,就可以删除此扩展程序。


4

(这是针对CentOS操作系统的)

重命名配置文件并重新启动Apache。

sudo mv /etc/php.d/xdebug.ini /etc/php.d/xdebug.ini.old
sudo service httpd restart

执行相反的操作以重新启用。


4

I had following Problem: Even if I set

xdebug.remote_enable=0 

显示了Xdebug错误消息装饰。

我的解决方案:

xdebug.default_enable=0

只有当我使用这个标志时,Xdebug才会被禁用。


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接