如何禁用XDebug

我认为我的服务器变得很慢,因为我安装了XDebug。 所以,为了testing我的假设,我想完全禁用XDebug。 我一直在寻找教程如何做到这一点,但我无法find这样的信息。

find你的php.ini并寻找XDebug。

将xdebug autostart设置为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 = …

看看这个postXDebug,如何禁用单个.php文件的远程debugging?

 sudo php5dismod xdebug sudo service apache2 restart 

Linux Ubuntu也许还有另外一个 – 没有经过testing )的发行版中,你可以使用:

 sudo php5dismod xdebug 

并与PHP 7

 sudo phpdismod xdebug 

之后,请重新启动服务器:

 sudo service apache2 restart 

另外,您可以将xdebug_disable()添加到您的代码中。 尝试:

if(function_exists('xdebug_disable')) { xdebug_disable(); }

在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'); 

我重命名了configuration文件并重新启动了服务器:

 $ 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 

它确实为我工作。

在CLI ini文件的Windows(WAMP)中:

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 ,而作曲者则不会。

在xubuntu我完全禁用CLI的xdebug与此…

 sudo rm /etc/php5/cli/conf.d/*xdebug* 

两个选项:

1:在初始化脚本中添加以下代码:

  if (function_exists('xdebug_disable')) { xdebug_disable(); } 

2:将以下标志添加到php.ini

  xdebug.remote_autostart=0 xdebug.remote_enable=0 

build议使用第一个选项。

find你的PHP.ini并寻找XDebug。

通常在Ubuntu的path是

 /etc/php5/apache2/php.ini 

进行以下更改(最好只是通过添加评论他们;在开始时)

 xdebug.remote_autostart=0 xdebug.remote_enable=0 xdebug.profiler_enable=0 

然后重新启动您的服务器为Ubuntu

 sudo service apache2 restart 

我遇到了类似的问题。 有时候,你不会在php.ini中findxdebug.so。 在这种情况下,在php文件中执行phpinfo()并检查Additional .ini files parsed 。 在这里你会看到更多的ini文件。 其中之一将是xdebug的ini文件。 只要删除(或重命名)这个文件,重新启动Apache,这个扩展将被删除。

我有以下问题:即使我设置

 xdebug.remote_enable=0 

显示Xdebug-Error-Message-Decoration。

我的解决scheme

 xdebug.default_enable=0 

只有当我使用这个标志,Xdebug被禁用了。

(这是CentOS的)

重命名configuration文件并重新启动Apache。

 sudo mv /etc/php.d/xdebug.ini /etc/php.d/xdebug.ini.old sudo service httpd 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版本的path。

如果您在Mac OS X上使用MAMP Pro,则通过在PHP选项卡下取消选中激活Xdebug ,通过MAMP客户端完成:

禁用MAMP Pro中的Xdebug

所以,是的,所有你需要的只是在INI文件中注释行,比如zend_extension=xdebug.so或类似的。

注释可以通过添加分号来完成。

但是,这样的答案已经添加了,我想分享一下现成的解决scheme来切换Xdebug状态。

我为Xdebug制作了快速切换器。 也许这对某个人有用。

Xdebug切换器

对于WAMP,点击左键单击任务栏托盘中的Wamp图标。 把鼠标hover在PHP上,然后点击php.ini并在你的texteditor中打开。

现在,search短语'zend_extension'并添加; (分号)在它前面。

重新启动WAMP,你很好走。

Ubuntu 16.04从PHP中删除xdebug。

find你的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 

保存文件