Composer ist eine gute Nachricht für PHPer, aber manchmal bereitet es uns ein paar kleine Probleme, wie zum Beispiel den folgenden Fehler:
You are running composer with xdebug enabled. This has a major impact on runtime performance. See https://getcomposer.org/xdebug
Dies kommt sehr häufig vor Konflikte, und die Auswirkungen dieses Konflikts auf den Composer-Betrieb sind ziemlich groß. Wenn wir die Xdebug-Funktion aktivieren, wird sie unseren Composer-Betrieb um das Drei- bis Vierfache verlangsamen. Mit anderen Worten: xdebug ist für das Debuggen unseres Programms sehr wichtig, erhöht jedoch die Speichernutzung und die Verarbeitungszeit für Composer.
Die offizielle Composer-Website bietet eine Lösung
Lassen Sie mich über meine Ideen zur Fehlerbehebung sprechen.
Methode 1: Deaktivieren Sie Xdebug global über die PHP-Konfigurationsdatei.
Zuallererst ist dies definitiv ein Konflikt, der durch die Aktivierung von Xdebug verursacht wird. Wir müssen herausfinden, wo Xdebug aktiviert ist.
Schreiben Sie eine Seite mit der Funktion phpinfo() und öffnen Sie sie im Browser.
配置参数 | 值 |
Configuration File (php.ini) Path | /usr/local/etc/php/5.6 |
Loaded Configuration File | /usr/local/etc/php/5.6/php.ini |
Scan this dir for additional .ini files | /usr/local/etc/php/5.6/conf.d |
Additional .ini files parsed | /usr/local/etc/php/5.6/conf.d/ext-igbinary.ini, /usr/local/etc/php/5.6/conf.d/ext-mcrypt.ini, /usr/local/etc/php/5.6/conf.d/ext-redis.ini, /usr/local/etc/php/5.6/conf.d/ext-xdebug.ini |
可见 php 调用了 php.ini 配置文件和 conf.d 目录里面的所有 ini 配置文件。
禁用 php.ini 中的 "xdebug" 模块
用分号注释掉调用语句:
;zend_extension = "/path/to/my/xdebug.so"
去除 Xdebug 相关的配置文件
如果 Xdebug 的调用不在主配置文件 php.ini 中,那么有可能在扩展配置文件夹中,比如我的环境就是如此,见上图表:
我们可以将 conf.d/ext-xdebug.ini 重命名为 ext-xdebug.bak 或者删除。这样 php 服务重启就不会调用了。当面,我们也可以参照上面的步骤,在 conf.d/ext-xdebug.ini 中将相应的 Xdebug 语句注释掉,效果相同。
方法2:通过给 composer 设置别名防止调用 Xdebug
设置别名的需要了解你自己在哪个 shell 环境下,我的机子用的是 zsh ,所以编辑 .zshrc 这个文件即可。
➜ ~ cd ➜ ~ vi .zshrc
然后根据下面两种情况选择一种方式设置你的别名,或者设置 两个别名 。
调用不含 Xdebug 模块的配置文件
对于 Xdebug 调用在 php.ini 中的情况,我们可以通过复制一份不含 Xdebug 的配置文件(xdebug-disabled-php.ini),然后建立以下别名:
alias comp='php -c /path/to/xdebug-disabled-php.ini /path/to/composer.phar'
不调用任何 php 配置文件
这种方式可以解决像我一样已经将一些扩展配置路径编译进 php 的情况:
/path/to 为你实际的文件或命令路径
OK ,现在我们执行 composer -V 试试,是否还有错误提示出现。
Good,完美解决。
以上就是解决 Composer 运行时的 Xdebug 冲突的内容,更多相关内容请关注PHP中文网(www.php.cn)!