解决 You are running composer with xdebug enabled

JellyBool

JellyBool

在我们使用 Composer 的时候,经常会遇到下面的一个 warning :

You are running composer with xdebug enabled. This has a major impact on 


runtime performance. See https://getcomposer.org/xdebug

composer

说我们的性能由于 xdebug 的原因变得慢了很多,据说是或慢 3~4 倍。本来一个 warning 的话,是可以假装看不见,然后直接无视的。但是对于新手或者一些有强迫症的人来说,还是希望把它解决掉,下面来看看具体的解决方案:

此解决方案具体在 mac php7.0 的环境上实际操作并解决了,如果你是其他的环境和不同的 php 版本,思路其实是一样的。

第一步,找到你的 php.ini 文件,命令行执行:

php -i | grep "php.ini"

这个时候,应该就可以看到你的 php.ini 的配置文件路径,大概是这样的:

Configuration File (php.ini) Path => /usr/local/etc/php/7.0

Loaded Configuration File => /usr/local/etc/php/7.0/php.ini

如果是 php5.6 的版本,大概在 /usr/local/etc/php/5.6/php.ini ,在这个配置文件里面,

找到 php.ini 文件后,分两种情况讨论:

第一种情况: xdebug 存在 php.ini 中

如果可以在 php.ini 找到 xdebug 的配置的话(注意替换 xdebug 的真实路径):

zend_extension="/your/path/to/xdebug.so"

在找到的情况下,我们不可以简单的注释掉这一行,如果注释掉的话,我们在使用 phpunit 的时候有不能使用 xdebug 了,所以在这里,我们什么都不用修改,直接退出。

第二种情况:xdebug 存在 php.ini 中

在这种情况下,xdebug 的配置 通常在下面的目录:

/usr/local/etc/php/7.0/conf.d/ext-xdebug.ini

里面大概有这样一行:

zend_extension="/usr/local/opt/php70-xdebug/xdebug.so"

所以在这个时候,我们需要做的是:把 ext-xdebug.ini 的配置注释掉:

;zend_extension="/usr/local/opt/php70-xdebug/xdebug.so"

; 注意这个配置是在 ext-xdebug.ini 文件中的。

注释之后,再将 zend_extension="/usr/local/opt/php70-xdebug/xdebug.so" 复制到 php.ini 的配置文件底部,(其实我们就是在重现第一种情况),复制之后,就可以参照第一种情况了。

两种情况说完,下面可以统一执行

命令行执行:

cd /usr/local/etc/php/7.0 


cp php.ini php-composer.ini

得到复制的 php-composer.ini 文件之后,打开 php-composer.ini 文件,再次找到:

;zend_extension="/your/path/to/xdebug.so"

;我们在这里直接添加一个 ; 号,注释掉 xdebug

这样我们的前期工作就完成了。

然后,添加 alias,在你的 ~/.zshrc 或者 ~/.bashrc 中的 alias 部分,添加下面这个 alias:

alias composer="php -c php-composer.ini /usr/local/bin/composer"

这样,我们在执行 composer 命令的时候就是使用到 php-composer.ini 这个配置文件。

本文由 JellyBool 创作, 转载和引用遵循 署名-非商业性使用 2.5 中国大陆 进行许可。

共有 0 条评论