在我的服务器上的/var/log/newrelic/php_agent.log
中,我看到这样的行:
2013-08-30 16:05:01.444 (15615/child) warning: the Xdebug extension prevents the New Relic agent from gathering errors. No errors will be recorded.
然而,我仍然在NewRelic中看到[至少一些]PHP错误。怎么回事?这个警告是新遗迹中的错误吗?
我还发现了这个,上面写着:
如果您使用的是xdebug,那么您将收到一条警告。因此,您可以关闭Xdebug,或者编写自己的处理程序并调用NewRelic API,以允许错误正确地报告到NewRelic中。有关更多信息,请参阅Kris Weltz的评论。
"Kris Weltz"链接到一份丢失的文件。
以下是我安装的:
# rpm -qa | grep relic
newrelic-php5-common-3.7.5.7-1.noarch
newrelic-php5-3.7.5.7-1.x86_64
newrelic-repo-5-3.noarch
newrelic-daemon-3.7.5.7-1.x86_64
newrelic-sysmond-1.2.0.257-1.x86_64
我得到了NewRelic支持的帮助。
他们的回应基本上是Xdebug确实与NewRelic冲突,不应该同时使用它们。卸载Xdebug PHP扩展使警告消失。
也许可以在Xdebug中禁用堆栈跟踪并继续使用其他Xdebug功能,但NewRelic支持对此没有发表评论。
您也可以在.ini
文件中禁用xdebug
扩展加载,而不是卸载扩展。我使用docker,所以在docker代理运行的docker容器中。
在中
- 在
/usr/local/etc/php/conf.d/docker-php-ext-xdebug.ini
中,注释如下:zend_extension=xdebug
- 此外,在
/usr/local/etc/php/conf.d/xdebug.ini
注释中的第行:zend_extension=xdebug.so
- 重新启动PHP服务或docker容器
如果.ini路径与您的路径不匹配,运行php --ini
命令将列出它使用的所有.ini文件。
这个解决方案对我有效。