运行作曲家时禁用 xdebug

2022-08-30 07:22:09

运行时,我收到以下错误:composer diagnose

xdebug扩展程序已加载,这可能会降低Composer的速度。建议在使用 Composer 时禁用它。

如何仅在运行 Composer 时才禁用 xdebug?


答案 1

更新:对于Xdebug 3 +

从 Xdebug 3 开始,可以通过将选项设置为 或设置环境变量 来完全禁用 Xdebug。xdebug.modeoffXDEBUG_MODE=off

通过别名,仅为作曲家禁用Xdebug非常容易。composer

alias composer='XDEBUG_MODE=off \composer'

alias composer='php -dxdebug.mode=off $(where composer | fgrep -v composer: |  head -1)'

您可以将别名添加到您的别名以使其成为永久性别名。$HOME/.bashrc


更新: 对于 Xdebug 1.3 - 3.0.0

此问题已在 Composer 1.3 中修复。通过执行 将 composer 更新到最新版本,而不是尝试以下解决方法。composer self-update


对于 Xdebug < 1.3

以下是我对@ezzatron代码的修改。我已经更新了脚本来检测phpinfo输出中的ini文件。

#!/bin/sh

php_no_xdebug () {
    temporaryPath="$(mktemp -t php.XXXX).ini"

    # Using awk to ensure that files ending without newlines do not lead to configuration error
    php -i | grep "\.ini" | grep -o -e '\(/[a-z0-9._-]\+\)\+\.ini' | grep -v xdebug | xargs awk 'FNR==1{print ""}1' | grep -v xdebug > "$temporaryPath"
    
    php -n -c "$temporaryPath" "$@"
    rm -f "$temporaryPath"
}
    
php_no_xdebug /usr/local/bin/composer.phar $@
# On MacOS with composer installed using brew, comment previous line
# Install jq by executing `brew install jq` and uncomment following line.
# php_no_xdebug /usr/local/Cellar/composer/`brew info --json=v1 composer | jq -r '.[0].installed[0].version'`/libexec/composer.phar $@

答案 2

此命令将禁用 CLI 的 PHP5 Xdebug 模块(以及作曲家):

sudo php5dismod -s cli xdebug

它从中删除 xdebug.ini 符号链接/etc/php5/cli/conf.d/

这是在 http://blog.lorenzbausch.de/2015/02/10/php-disable-xdebug-for-cli/ 上提出的

请注意,对于 Ubuntu 16.04,您可能需要像这样运行它:

sudo phpdismod -s cli xdebug

推荐