在我们使用 Composer 的时候,经常会遇到下面的一个 warning :
You are running composer with xdebug enabled. This has a major impact on
runtime performance. See https://getcomposer.org/xdebug
说我们的性能由于 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
这个配置文件。