我正在使用Nginx和最新的PHP运行Ubuntu 12.04。故事是这样的: 我尝试按照ubuntu的说明安装新的relic PHP代理:
wget -O - http://download.newrelic.com/548C16BF.gpg | sudo apt-key add -
sudo sh -c 'echo "deb http://apt.newrelic.com/debian/ newrelic non-free"
> /etc/apt /sources.list.d/newrelic.list'
sudo apt-get update
sudo apt-get install newrelic-php5
sudo newrelic-install install
它不起作用。在所有事情之后,PHP代理根本无法启动。我甚至掀起了一个快速的phpinfo.php
页面,看看是否列出了newrelic模块,但事实并非如此。然后我用谷歌搜索了“New relic .deb”并看到了这个页面:https://docs.newrelic.com/docs/server/server-monitor-installation-ubuntu-and-debian并按照说明进行操作。安装全部通过,但代理也无法启动。我喜欢保持我的服务器干净,所以我决定“好吧,因为它不起作用,直到新的遗物支持回到我身边,我可以从新的开始,我将删除已安装的新遗物”。所以我再次按照该链接上的说明进行操作。安装似乎正常。但是,如果我执行命令“PHP
”,我会收到以下错误:
root@MYHOSTNAME:/home# php
PHP Warning: PHP Startup: Unable to load dynamic library '/usr/lib/php5/20121212
/newrelic.so' - /usr/lib/php5/20121212/newrelic.so: cannot open shared object file:
No such file or directory in Unknown on line 0
我确保我的/etc/php/fpm/php.ini
文件中没有对newrelic的引用,并仔细检查该文件夹中是否有任何内容。没有。
所以我的问题是:如何摆脱错误?如何让PHP停止尝试加载newrelic.so模块?在我可能遗失的地方是否有任何参考?
答案 0 :(得分:18)
好的,我找到了答案。在下面的帖子中,我无法描述我对@mike的感激之情:Error In PHP5 ..Unable to load dynamic library。我运行$ grep -Hrv ";" /etc/php5 | grep -i "extension="
并返回了一个大的文件列表,其中一个是/etc/php5/cli/conf.d/
中的newrelic.ini,老实说,我甚至不知道是一个php目录。所以我运行了sudo rm -rf /etc/php5/cli/conf.d/newrelic.ini
并重新启动了nginx和php5-fpm,问题解决了:)
感谢@WayneWhitty的建议!我还要让newrelic知道他们应该在卸载脚本上修复它。
答案 1 :(得分:3)
Additional .ini files parsed
。答案 2 :(得分:0)
在PHP7 CLI上,删除/etc/php/7.0/cli/conf.d/newrelic.ini
答案 3 :(得分:0)
当尝试为Docker安装New Relic时,我收到了相同类型的错误。
我试图为高山docker映像安装它,并使用默认的Linux版本,但是您应该改用-musl
版本。
根据newrelic论坛的以下回复:
高山linux有一个不同的C编译器,称为musl,如果使用标准libc编译器进行编译,它将导致守护程序无法启动。https://www.musl-libc.org/intro.html 13
为此,我们在这里为Alpine linux编译了一个单独的安装程序:
http://download.newrelic.com/php_agent/release/newrelic-php5-8.6.0.238-linux-musl.tar.gz