Home > Backend Development > PHP Tutorial > Resolve Xdebug conflicts in Composer runtime

Resolve Xdebug conflicts in Composer runtime

PHP中文网
Release: 2016-09-08 08:43:52
Original
2127 people have browsed it

composer is good news for phper, but sometimes, it also gives us some little troubles, such as the following error:

You are running composer with xdebug enabled. This has a major impact on runtime performance. 
See https://getcomposer.org/xdebug
Copy after login

Resolve Xdebug conflicts in Composer runtime

This is a very common conflict, and the impact of this conflict on composer operation is still quite severe Big, when we enable the Xdebug function, it will slow down our composer by 3-4 times. In other words: xdebug is very important for our program debugging, but it increases memory usage and process time for composer.

Composer official website provides a solution

Now I will talk about my troubleshooting ideas.

Method 1: Disable Xdebug globally through the php configuration file.

First of all, this is definitely a conflict caused by enabling Xdebug. We need to find where Xdebug is enabled.

Write a page containing the phpinfo() function and open it in the browser.

Resolve Xdebug conflicts in Composer runtime

Configuration ParametersValue
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"
Copy after login

去除 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
Copy after login

然后根据下面两种情况选择一种方式设置你的别名,或者设置 两个别名 。

调用不含 Xdebug 模块的配置文件

对于 Xdebug 调用在 php.ini 中的情况,我们可以通过复制一份不含 Xdebug 的配置文件(xdebug-disabled-php.ini),然后建立以下别名:

alias comp='php -c /path/to/xdebug-disabled-php.ini /path/to/composer.phar'
Copy after login

不调用任何 php 配置文件

这种方式可以解决像我一样已经将一些扩展配置路径编译进 php 的情况:

/path/to 为你实际的文件或命令路径

OK ,现在我们执行 composer -V 试试,是否还有错误提示出现。

Resolve Xdebug conflicts in Composer runtime

Good,完美解决。

以上就是解决 Composer 运行时的 Xdebug 冲突的内容,更多相关内容请关注PHP中文网(www.php.cn)!


Related labels:
source:php.cn
Statement of this Website
The content of this article is voluntarily contributed by netizens, and the copyright belongs to the original author. This site does not assume corresponding legal responsibility. If you find any content suspected of plagiarism or infringement, please contact admin@php.cn
Latest Articles by Author
Popular Tutorials
More>
Latest Downloads
More>
Web Effects
Website Source Code
Website Materials
Front End Template