composer 對phper 來說是個福音,但有時,他也會給我們一些小麻煩,比如下面這個報錯:
You are running composer with xdebug enabled. This has a major impact on runtime performance.
See https://getcomposer.org/xdebug
登入後複製
這是一個非常常見的衝突,而且這個衝突對composer 運行的影響還是蠻大的,當我們啟用Xdebug 功能時,將使得我們的composer 運行放慢3-4 倍。換句話說:xdebug 對我們程式偵錯來說非常重要,但對 composer 來說卻增加了記憶體佔用和進程時間。
composer 官網給了 解決方案
下面我講講我的排錯思路。
方法1:透過 php 設定文件,全域停用 Xdebug。
首先,這肯定是一個因為啟用了 Xdebug 導致的衝突,我們要找到在哪裡啟用了 Xdebug。
寫一個包含 phpinfo() 函數的頁面,在瀏覽器中開啟。
設定參數 | 值 |
Configuration File (php.ini) > File | /usr/ local/etc/php/5.6/php.ini |
Scan this dir for additional .ini files | /usr/local/etc/php/5.6/conf.d |
/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)!
本網站聲明
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn
作者最新文章
-
2024-12-12 11:03:15
-
2024-12-12 11:01:15
-
2024-12-12 10:59:13
-
2024-12-12 10:58:16
-
2024-12-12 10:57:14
-
2024-12-12 10:56:12
-
2024-12-12 10:55:13
-
2024-12-12 10:54:17
-
2024-12-12 10:53:16
-
2024-12-12 10:51:16