ホームページ > バックエンド開発 > PHPチュートリアル > Composer ランタイムでの Xdebug の競合を解決する

Composer ランタイムでの Xdebug の競合を解決する

PHP中文网
リリース: 2016-09-08 08:43:52
オリジナル
2127 人が閲覧しました

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 の操作に及ぼす影響は依然としてかなり大きいです。深刻な問題として、Xdebug 機能を有効にすると、コンポーザーの速度が 3 ~ 4 倍遅くなります。言い換えれば、xdebug はプログラムのデバッグにとって非常に重要ですが、メモリ使用量と Composer の処理時間が増加します。

Composer 公式 Web サイトで解決策が提供されています

ここで、私のトラブルシューティングのアイデアについて話します。

方法 1: PHP 構成ファイルを使用して Xdebug をグローバルに無効にします。

まず第一に、これは間違いなく Xdebug を有効にすることによって引き起こされる競合です。Xdebug が有効になっている場所を見つける必要があります。

phpinfo() 関数を含むページを作成し、ブラウザで開きます。

Composer ランタイムでの Xdebug の競合を解決する

設定パラメータ
設定ファイル(php.ini) パス/usr/local/etc/php/5.6
ロードされた設定ファイル /usr/ local/etc/php/5.6/php.ini
このディレクトリをスキャンして追加の .ini ファイルを探します/usr/local/etc/php/5.6/conf.d
追加の .ini ファイルを解析しました /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)!


関連ラベル:
ソース:php.cn
このウェブサイトの声明
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。
人気のチュートリアル
詳細>
最新のダウンロード
詳細>
ウェブエフェクト
公式サイト
サイト素材
フロントエンドテンプレート