如何禁用XDebug

Bet*_*iga 117 php apc xdebug

我认为自从我安装XDebug以来我的服务器变得很慢.所以,为了测试我的假设,我想完全禁用XDebug.我一直在寻找有关如何做到这一点的教程,但我找不到这些信息.

Uda*_*ant 148

找到php.ini并寻找XDebug.

将xdebug autostart设置为false

xdebug.remote_autostart=0  
xdebug.remote_enable=0
Run Code Online (Sandbox Code Playgroud)

禁用您的探查器

xdebug.profiler_enable=0
Run Code Online (Sandbox Code Playgroud)

请注意,即使已禁用xdebug但仍会加载,可能会导致性能下降.要禁用加载扩展本身,您需要在php.ini中对其进行注释.找到一个如下所示的条目:

zend_extension = "/path/to/php_xdebug.dll"
Run Code Online (Sandbox Code Playgroud)

;发表评论,例如;zend_extension = ….

看看这篇文章XDebug,如何禁用单个.php文件的远程调试?

  • @UdaySawant我在`/ etc/php5/conf.d/xdebug.ini`中注释了`zend_extension =/usr/lib/php5/20090626 + lfs/xdebug.so`这句话之后就能禁用了它.但是在`/ usr/lib/php5`和`/ etc`中都没有答案中指定的行. (17认同)
  • 实际上,最好根本不加载扩展,只在需要时加载扩展.XDebug实际上减慢了很多东西,即使被禁用了.在调试/分析创建网页的一些脚本时,人们可能不会觉得性能下降太多,但是使用守护程序脚本,它显示了很多.我刚写了一篇关于为什么不加载它的博客文章,更好,在这里:http://bit.ly/14SaWpp (4认同)

小智 95

一个简单的解决方案,适用于类似于Ubuntu的Linux发行版

sudo php5dismod xdebug
sudo service apache2 restart
Run Code Online (Sandbox Code Playgroud)

  • 您能否详细说明您的答案,添加一些关于您提供的解决方案的更多描述? (10认同)
  • 根据您的PHP版本,您应该输入`$ sudo phpdismod xdebug` (6认同)
  • 该命令适用于ubuntu而不是centOS.应提供该解释,因为您不是唯一使用相同Linux发行版的人. (3认同)
  • 此答案仅适用于 PHP 与 Apache 的 mod-php 一起使用时。 (2认同)

kko*_*ski 34

Linux Ubuntu(可能还有另一个 - 它没有经过测试)发布PHP 5,你可以使用:

sudo php5dismod xdebug
Run Code Online (Sandbox Code Playgroud)

并使用PHP 7

sudo phpdismod xdebug
Run Code Online (Sandbox Code Playgroud)

之后,请重启服务器:

sudo service apache2 restart
Run Code Online (Sandbox Code Playgroud)


Zac*_*atz 23

此外,您可以添加xdebug_disable()到您的代码中.尝试:

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

  • 这只会禁用显示堆栈跟踪,它实际上不会禁用xdebug(非常命名的函数,我知道) (30认同)
  • @Jake,我不确定操作人员是否正在寻找屠夫。 (3认同)

Sin*_*dem 12

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

$ 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
Run Code Online (Sandbox Code Playgroud)

它对我有用.


小智 10

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');
Run Code Online (Sandbox Code Playgroud)


Art*_*tan 9

在xubuntu我完全禁用了xdebug用于CLI ...

sudo rm /etc/php5/cli/conf.d/*xdebug*
Run Code Online (Sandbox Code Playgroud)

  • 我不会发送/取消链接ini,而是像ulkas建议的那样,`sudo nano/etc/php/7.0/cli/conf.d/20-xdebug.ini`并将其注释掉. (4认同)
  • 这也适用于laravel宅基地.在homestead/laravel中禁用xdebug只需注释掉文件`/ etc/php5/cli/conf.d/20-xdebug.ini中的部分 (3认同)

the*_*ng2 9

自从 xdebug 3 发布以来,其中的设置pnp.ini略有变化。环境:

xdebug.mode=off
Run Code Online (Sandbox Code Playgroud)

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

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


Vla*_*nac 7

在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"
Run Code Online (Sandbox Code Playgroud)

Apache将处理xdebug,而作曲家则不会.


Cyc*_*ode 7

如果您使用php-fpm以下内容就足够了:

sudo phpdismod xdebug
sudo service php-fpm restart
Run Code Online (Sandbox Code Playgroud)

请注意,您需要根据您的 php 版本进行调整。例如运行 php 7.0 你会这样做:

sudo phpdismod xdebug
sudo service php7.0-fpm restart
Run Code Online (Sandbox Code Playgroud)

由于您正在运行 php-fpm,因此无需重新启动实际的网络服务器。在任何情况下,如果您不使用 fpm,那么您只需使用以下任何命令重新启动您的网络服务器:

sudo service apache2 restart
sudo apache2ctl restart
Run Code Online (Sandbox Code Playgroud)


Luc*_*nte 7

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

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

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

例如,在禁用 Xdebug 的情况下运行单元测试,因此速度更快:

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

您还可以为其创建别名以使其更易于使用。


Sum*_*and 5

两种选择:

1:在初始化脚本中加入如下代码:

 if (function_exists('xdebug_disable')) {
           xdebug_disable();
         }
Run Code Online (Sandbox Code Playgroud)

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

 xdebug.remote_autostart=0
 xdebug.remote_enable=0
Run Code Online (Sandbox Code Playgroud)

推荐第一个选项。


小智 5

找到您的 PHP.ini 并查找 XDebug。

通常在 Ubuntu 中,它的路径是

/etc/php5/apache2/php.ini  
Run Code Online (Sandbox Code Playgroud)

进行以下更改(最好通过在开头添加 ; 来评论它们)

xdebug.remote_autostart=0
xdebug.remote_enable=0
xdebug.profiler_enable=0
Run Code Online (Sandbox Code Playgroud)

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

sudo service apache2 restart
Run Code Online (Sandbox Code Playgroud)


Jus*_*tin 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
Run Code Online (Sandbox Code Playgroud)

注意:更新您的 PHP 版本的路径。


And*_*son 5

Ubuntu 16.04 从 PHP 中删除 xdebug。

找到您的 php.ini 文件并确保 xdebug 存在:

grep -r "xdebug" /etc/php/
Run Code Online (Sandbox Code Playgroud)

这可能会出现不同的版本,如果是这样,请运行php -v以查找您的版本。

编辑 php.ini 文件,例如:

sudo vi /etc/php/5.6/mods-available/xdebug.ini
Run Code Online (Sandbox Code Playgroud)

注释该行:

//zend_extension=xdebug.so
Run Code Online (Sandbox Code Playgroud)

保存文件


max*_*ver 5

受 PHPStorm 的启发,右键单击文件 -> 调试 -> ...

www-data@3bd1617787db:~/symfony$ 
php 
-dxdebug.remote_enable=0 
-dxdebug.remote_autostart=0 
-dxdebug.default_enable=0 
-dxdebug.profiler_enable=0 
test.php
Run Code Online (Sandbox Code Playgroud)

重要的是 -dxdebug.remote_enable=0 -dxdebug.default_enable=0


Fir*_*rze 5

我创建了这个 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
Run Code Online (Sandbox Code Playgroud)