Lösen Sie Xdebug-Konflikte in der Composer-Laufzeit

PHP中文网
Freigeben: 2016-09-08 08:43:52
Original
2095 Leute haben es durchsucht

Composer ist eine gute Nachricht für PHPer, aber manchmal bereitet es uns ein paar kleine Probleme, wie zum Beispiel den folgenden Fehler:

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

Lösen Sie Xdebug-Konflikte in der Composer-Laufzeit

Dies kommt sehr häufig vor Konflikte, und die Auswirkungen dieses Konflikts auf den Composer-Betrieb sind ziemlich groß. Wenn wir die Xdebug-Funktion aktivieren, wird sie unseren Composer-Betrieb um das Drei- bis Vierfache verlangsamen. Mit anderen Worten: xdebug ist für das Debuggen unseres Programms sehr wichtig, erhöht jedoch die Speichernutzung und die Verarbeitungszeit für Composer.

Die offizielle Composer-Website bietet eine Lösung

Lassen Sie mich über meine Ideen zur Fehlerbehebung sprechen.

Methode 1: Deaktivieren Sie Xdebug global über die PHP-Konfigurationsdatei.

Zuallererst ist dies definitiv ein Konflikt, der durch die Aktivierung von Xdebug verursacht wird. Wir müssen herausfinden, wo Xdebug aktiviert ist.

Schreiben Sie eine Seite mit der Funktion phpinfo() und öffnen Sie sie im Browser.

Lösen Sie Xdebug-Konflikte in der Composer-Laufzeit

配置参数
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"
Nach dem Login kopieren

去除 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
Nach dem Login kopieren

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

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

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

alias comp='php -c /path/to/xdebug-disabled-php.ini /path/to/composer.phar'
Nach dem Login kopieren

不调用任何 php 配置文件

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

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

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

Lösen Sie Xdebug-Konflikte in der Composer-Laufzeit

Good,完美解决。

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


Verwandte Etiketten:
Quelle:php.cn
Erklärung dieser Website
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn
Beliebte Tutorials
Mehr>
Neueste Downloads
Mehr>
Web-Effekte
Quellcode der Website
Website-Materialien
Frontend-Vorlage
Über uns Haftungsausschluss Sitemap
Chinesische PHP-Website:Online-PHP-Schulung für das Gemeinwohl,Helfen Sie PHP-Lernenden, sich schnell weiterzuentwickeln!