如何禁用XDebug

时间:2012-01-06 07:41:10

标签: php xdebug apc

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

23 个答案:

答案 0 :(得分:138)

找到你的php.ini并寻找XDebug。

将xdebug autostart设置为false

xdebug.remote_autostart=0  
xdebug.remote_enable=0

禁用您的探查器

xdebug.profiler_enable=0

请注意,可以有performance loss even with xdebug disabled but loaded。要禁用加载扩展本身,您需要在php.ini中对其进行注释。找到这样的条目:

zend_extension = "/path/to/php_xdebug.dll"

并添加;对其进行评论,例如;zend_extension = …

查看此帖子XDebug, how to disable remote debugging for single .php file?

答案 1 :(得分:91)

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

sudo php5dismod xdebug
sudo service apache2 restart

答案 2 :(得分:23)

此外,您可以在代码中添加xdebug_disable()。尝试:

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

答案 3 :(得分:11)

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

if(data.getData()==null){
    bitmap = (Bitmap)data.getExtras().get("data");
}else{
    bitmap = MediaStore.Images.Media.getBitmap(this.getContentResolver(), data.getData());
}

yourImageView.setImageBitmap(img);

它对我有用。

答案 4 :(得分: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');

答案 5 :(得分:9)

在xubuntu中我完全禁用了xdebug for CLI ...

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

答案 6 :(得分: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"

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

答案 7 :(得分:4)

两个选项:

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

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

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

 xdebug.remote_autostart=0
 xdebug.remote_enable=0

建议使用第一个选项。

答案 8 :(得分:4)

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

答案 9 :(得分:3)

(这是针对CentOS的)

重命名配置文件并重启apache。

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

反过来重新启用。

答案 10 :(得分:3)

Ubuntu 16.04从PHP中删除xdebug。

找到你的php.ini文件并确保xdebug在那里:

    //Search button
    @FindBy(how=How.XPATH, using =".//input[@value='Search']")  
    //@CachelookUp
    WebElement BtnSearch;

这可能会提供不同的版本,如果是这样,请运行grep -r "xdebug" /etc/php/ 来查找您的版本。

编辑php.ini文件,如:

php -v

评论这一行:

sudo vi /etc/php/5.6/mods-available/xdebug.ini

保存文件

答案 11 :(得分:3)

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

答案 12 :(得分:3)

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

xdebug.remote_enable=0 

显示了Xdebug-Error-Message-Decoration。

我的解决方案:

xdebug.default_enable=0

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

答案 13 :(得分:3)

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

答案 14 :(得分:2)

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

sudo phpdismod xdebug
sudo service php-fpm restart

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

sudo phpdismod xdebug
sudo service php7.0-fpm restart

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

sudo service apache2 restart
sudo apache2ctl restart

答案 15 :(得分:1)

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

Disabling Xdebug in MAMP Pro

答案 16 :(得分:1)

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

可以通过添加分号来进行评论。

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

我为Xdebug做了快速切换器。也许对某人有用。

Xdebug Switcher

答案 17 :(得分:1)

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

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

重启WAMP,你很高兴。

答案 18 :(得分:1)

Apache / 2.4.33(Win64)PHP / 7.2.4 myHomeBrew堆栈

在php.ini结束时,我使用以下命令管理Xdebug以与PhpStorm一起使用

; jch ~ Sweet analizer at https://xdebug.org/wizard.php for matching xdebug to php version.
; jch ~ When upgrading php versions check if newer xdebug.dll is needed in ext directory.
; jch Renamed... zend_extension = E:\x64Stack\PHP\php7.2.4\ext\php_xdebug-2.6.0-7.2-vc15-x86_64.dll

zend_extension = E:\x64Stack\PHP\php7.2.4\ext\php_xdebug.dll

; jch !!!! Added the following for Xdebug with PhpStorm

[Xdebug]
; zend_extension=<full_path_to_xdebug_extension>
; xdebug.remote_host=<the host where PhpStorm is running (e.g. localhost)>
; xdebug.remote_port=<the port to which Xdebug tries to connect on the host where PhpStorm is running (default 9000)>

xdebug.remote_enable=1
xdebug.remote_host=localhost
xdebug.remote_port=9000

xdebug.profiler_enable=1
xdebug.profiler_output_dir="E:\x64Stack\Xdebug_profiler_output"
xdebug.idekey=PHPSTORM
xdebug.remote_autostart=1

; jch ~~~~~~~~~To turn Xdebug off(disable) uncomment the following 3 lines restart Apache~~~~~~~~~ 
;xdebug.remote_autostart=0  
;xdebug.remote_enable=0
;xdebug.profiler_enable=0

; !!! Might get a little more speed by also commenting out this line above... 
;;; zend_extension = E:\x64Stack\PHP\php7.2.4\ext\php_xdebug.dll
; so that Xdebug is both disabled AND not loaded

答案 19 :(得分:1)

我创建了这个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

答案 20 :(得分:1)

仅对某些PHP版本或sapi禁用xdebug。 在这种情况下,PHP 7.2 fpm

sudo phpdismod -v 7.2 -s fpm xdebug
sudo service php7.2-fpm nginx restart

答案 21 :(得分:1)

对于那些有兴趣在 codeship 中禁用它的人,请在运行测试之前运行此脚本:

rm -f /home/rof/.phpenv/versions/$(phpenv version-name)/etc/conf.d/xdebug.ini

我收到此错误:

Use of undefined constant XDEBUG_CC_UNUSED - assumed 'XDEBUG_CC_UNUSED' (this will throw an Error in a future version of PHP)

现在不见了!

答案 22 :(得分:0)

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

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