>  기사  >  백엔드 개발  >  Composer 런타임에서 Xdebug 충돌 해결

Composer 런타임에서 Xdebug 충돌 해결

PHP中文网
PHP中文网원래의
2016-09-08 08:43:522096검색

composer는 phper에게는 좋은 소식이지만 때때로 다음과 같은 오류와 같은 약간의 문제를 일으킬 수 있습니다.

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

Composer 런타임에서 Xdebug 충돌 해결

이것은 매우 일반적입니다. Xdebug 기능을 활성화하면 Composer 작업이 3~4배 느려집니다. 즉, xdebug는 프로그램 디버깅에 매우 중요하지만 작곡가의 메모리 사용량과 처리 시간을 증가시킵니다.

Composer 공식 홈페이지에서 해결 방법을 제공합니다

이제 문제 해결 방법에 대해 이야기하겠습니다.

방법 1: php 구성 파일을 통해 Xdebug를 전역적으로 비활성화합니다.

우선 Xdebug를 활성화함으로써 발생하는 충돌입니다. Xdebug가 활성화된 위치를 찾아야 합니다.

phpinfo() 함수가 포함된 페이지를 작성하고 브라우저에서 엽니다.

Composer 런타임에서 Xdebug 충돌 해결

配置参数
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 试试,是否还有错误提示出现。

Composer 런타임에서 Xdebug 충돌 해결

Good,完美解决。

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


성명:
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.