如何禁用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客户端完成:
所以,是的,所有你需要的只是在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