解决 Composer 运行时的 Xdebug 冲突
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 冲突相关推荐
- 分析解决Java运行时异常
1 ,基础知识 http://my.oschina.net/u/140462/blog/421128 JVM运行时内存结构 2 ,相关命令 http://www.open-open. ...
- npm install xxxx --legacy-peer-deps命令解决node下载时的依赖冲突
大家好,这里是程序员小贾,今天在更新了node.js的版本之后,做vue的项目时,发生了一点小小小小-问题,就是为项目安装依赖时报错啦! 如上图所示,翻译过来就是无法解析依赖关系树(依赖冲突)问题 解 ...
- 解决VS2017运行时控制台一闪即逝问题的方法
f5是开始调试的指令,ctrl+f5才是开始执行(不调试),如果在换成ctrl+f5执行后可以正常显示输出内容和"Press any key to continue..."这句话, ...
- 解决webbench运行时卡住的问题
问题描述: 使用webbench进行压力测试的时候,在baidu上一般来说正常.在自己的webserver上测试,有时会卡住而没有返回值.在修改为长连接的时候尤其会发生. 如下图 必须要ctrl+c终 ...
- React Native 工程初始化过慢解决办法+运行时产生的问题解决方案
初始化解决: npm config set registry=http://registry.npm.taobao.org/ react-native bundle --platform androi ...
- 解决Hadoop运行时遇到java.io.FileNotFoundException错误
报错信息: java.lang.Exception: org.apache.hadoop.mapreduce.task.reduce.Shuffle$ShuffleError: error in sh ...
- 解决spark运行时控制台打印冗杂的INFO(屏蔽掉无用的INFO)
今天在spark和hive整合完后启动SparkSql的时候控制台打印出了好多冗余的信息看起来特别不爽 就一个 show databases: 却打印出来这么多信息,让我着实不大容易找到我想要的信息呀 ...
- 如何解决animate运行时提示,应该为在运行时可能编辑的任何文本嵌入字体,具有使用设备字体设置的文本除外。“
在animate中,在使用动态文本或者输入文本有一个限制(其实在flash cs5及以上就这样),如果不嵌入字体进去,动态文本或者输入文本将不会显示相应的文字. 具体解决方案, 1. ...
- 运行时异常一般异常的区别
Throwable 是所有 Java 程序中错误处理的父类 ,有两种资类: Error 和 Exception . Error :表示由 JVM 所侦测到的无法预期的错误,由于这是属于 JVM 层次的 ...
- 运行时异常与一般异常有何异同
Throwable 是所有 Java 程序中错误处理的父类 ,有两种资类: Error 和 Exception . Error :表示由 JVM 所侦测到的无法预期的错误,由于这是属于 JVM 层次的 ...
最新文章
- android yuv加水印_Android Camera添加预览水印
- python 条形图-可视化库-Matplotlib-条形图(第四天)
- 站长图卦:每天坚持搬砖 定有美好明天
- 头文件(C++11)、从文件输入输出
- 34.rust宏.txt
- SimMechanics/Second Generation倒立摆模型建立及初步仿真学习
- mysql配置多个磁盘_MySQL多实例配置(两)
- 10.凤凰架构:构建可靠的大型分布式系统 --- 可观测性
- 汽车电子中的3225贴片晶振
- 一个js内存泄露的好例子
- 华为重生:转战消费品市场 转型多元制造商
- win10中文用户名怎么改成英文文件夹路径
- linux系统进入图文界面,Linux启动界面切换:图形界面-字符界面
- 一文搞懂如何兼容苹果HomeKit?智汀助你轻松打造智慧家庭
- android ShareSDK分享,QQ,微信,新浪等分享
- 千兆以太网PHY芯片调试-88E1111(RGMII接口-数据收发ECHO测试) Verilog实现python测试
- Eclipse 输入的汉字都变成了繁体
- NDK-r25交叉编译glib-2.73.3
- 兄弟Brother PT-9200DX 驱动
- Python SyntaxError: Missing parentheses in call to 'print'