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) 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 的情况

# Without php.ini
alias comp='php -n /path/to/composer.phar'

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


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

Good,完美解决。

解决 Composer 运行时的 Xdebug 冲突相关推荐

  1. 分析解决Java运行时异常

    1 ,基础知识    http://my.oschina.net/u/140462/blog/421128    JVM运行时内存结构 2 ,相关命令    http://www.open-open. ...

  2. npm install xxxx --legacy-peer-deps命令解决node下载时的依赖冲突

    大家好,这里是程序员小贾,今天在更新了node.js的版本之后,做vue的项目时,发生了一点小小小小-问题,就是为项目安装依赖时报错啦! 如上图所示,翻译过来就是无法解析依赖关系树(依赖冲突)问题 解 ...

  3. 解决VS2017运行时控制台一闪即逝问题的方法

    f5是开始调试的指令,ctrl+f5才是开始执行(不调试),如果在换成ctrl+f5执行后可以正常显示输出内容和"Press any key to continue..."这句话, ...

  4. 解决webbench运行时卡住的问题

    问题描述: 使用webbench进行压力测试的时候,在baidu上一般来说正常.在自己的webserver上测试,有时会卡住而没有返回值.在修改为长连接的时候尤其会发生. 如下图 必须要ctrl+c终 ...

  5. React Native 工程初始化过慢解决办法+运行时产生的问题解决方案

    初始化解决: npm config set registry=http://registry.npm.taobao.org/ react-native bundle --platform androi ...

  6. 解决Hadoop运行时遇到java.io.FileNotFoundException错误

    报错信息: java.lang.Exception: org.apache.hadoop.mapreduce.task.reduce.Shuffle$ShuffleError: error in sh ...

  7. 解决spark运行时控制台打印冗杂的INFO(屏蔽掉无用的INFO)

    今天在spark和hive整合完后启动SparkSql的时候控制台打印出了好多冗余的信息看起来特别不爽 就一个 show databases: 却打印出来这么多信息,让我着实不大容易找到我想要的信息呀 ...

  8. 如何解决animate运行时提示,应该为在运行时可能编辑的任何文本嵌入字体,具有使用设备字体设置的文本除外。“

    在animate中,在使用动态文本或者输入文本有一个限制(其实在flash cs5及以上就这样),如果不嵌入字体进去,动态文本或者输入文本将不会显示相应的文字. 具体解决方案,         1. ...

  9. 运行时异常一般异常的区别

    Throwable 是所有 Java 程序中错误处理的父类 ,有两种资类: Error 和 Exception . Error :表示由 JVM 所侦测到的无法预期的错误,由于这是属于 JVM 层次的 ...

  10. 运行时异常与一般异常有何异同

    Throwable 是所有 Java 程序中错误处理的父类 ,有两种资类: Error 和 Exception . Error :表示由 JVM 所侦测到的无法预期的错误,由于这是属于 JVM 层次的 ...

最新文章

  1. android yuv加水印_Android Camera添加预览水印
  2. python 条形图-可视化库-Matplotlib-条形图(第四天)
  3. 站长图卦:每天坚持搬砖 定有美好明天
  4. 头文件(C++11)、从文件输入输出
  5. 34.rust宏.txt
  6. SimMechanics/Second Generation倒立摆模型建立及初步仿真学习
  7. mysql配置多个磁盘_MySQL多实例配置(两)
  8. 10.凤凰架构:构建可靠的大型分布式系统 --- 可观测性
  9. 汽车电子中的3225贴片晶振
  10. 一个js内存泄露的好例子
  11. 华为重生:转战消费品市场 转型多元制造商
  12. win10中文用户名怎么改成英文文件夹路径
  13. linux系统进入图文界面,Linux启动界面切换:图形界面-字符界面
  14. 一文搞懂如何兼容苹果HomeKit?智汀助你轻松打造智慧家庭
  15. android ShareSDK分享,QQ,微信,新浪等分享
  16. 千兆以太网PHY芯片调试-88E1111(RGMII接口-数据收发ECHO测试) Verilog实现python测试
  17. Eclipse 输入的汉字都变成了繁体
  18. NDK-r25交叉编译glib-2.73.3
  19. 兄弟Brother PT-9200DX 驱动
  20. Python SyntaxError: Missing parentheses in call to 'print'

热门文章

  1. 支持x86/aarch/mips/loongarch的jogamp-2.3.2源码开源
  2. 对目录下所有库文件进行rpath更改操作的SHELL脚本
  3. 一个员工经常找别人聊天,吾就知道他要走人了
  4. 管理新语:会议与问题的关系
  5. 液晶显示器模拟接口时,屏幕重影照片
  6. LINUX SHELL中数组的使用
  7. debian:必须有官方源,难道国内镜像都是僵尸源?
  8. LINUX创建桌面运行快捷方式
  9. NVIDIA H264解码是硬件电路还是CUDA
  10. Facade(装饰模式)