我们创建了一个在 Elastic Beanstalk 实例上运行的应用程序,64 位 PHP 版本 5.4(因此不是旧版本)。我使用了New Relic 安装说明安装New Relic,查看phpinfo显示New Relic已经安装。
但是,我在 New Relic 中没有得到任何数据,因为它说许可证***invalid format***
处于newrelic.licence
我从我的 New Relic 帐户获取许可证,它是一个 40 个字符的十六进制字符串。这是我正在使用的 .ebextensions 文件夹中的当前 newrelic.config 文件,其中大部分许可证密钥已被注释掉。
packages:
yum:
newrelic-php5: []
rpm:
newrelic: http://yum.newrelic.com/pub/newrelic/el5/x86_64/newrelic-repo-5-3.noarch.rpm
commands:
configure_new_relic:
command: newrelic-install install
env:
NR_INSTALL_SILENT: true
NR_INSTALL_KEY: ec9a4...
有人能解释一下这是怎么回事吗?我尝试了两个不同的 New Relic 许可证密钥,但都出现了同样的错误,我还用单引号括起来,并只尝试了大写。现在我不知道该尝试什么了。我们不是 AWS 专家,所以很可能是一些简单的事情,比如不打开端口来允许验证许可证?
答案1
我遇到了同样的问题。他们的文档似乎不完整。解决方案是将此部分添加到您的 .ebextensions/newrelic.config 配置文件中。当您部署到 Beanstalk 时,这将创建一个新的 ini 文件,其中包含您的许可证密钥,PHP 将解析并获取该文件。
files:
"/etc/php.d/newrelic.ini":
mode: "000777"
owner: ec2-user
group: ec2-user
content: |
newrelic.license="YOUR-NEW-RELIC-LICENSE-KEY-HERE"
答案2
您需要编辑位于以下位置的文件:etc/php5/apache2/conf.d/newrelic.ini。在那里编辑许可证密钥字段并重新启动守护程序和 apache。
答案3
@afessler 的上述建议很有帮助。但这还不够,因为我的安装需要以下内容才能正常工作。对我来说,最初安装的旧 newrelic.ini 文件中需要包含其他信息。请记住,如果您已经运行了几次部署,则应删除旧的 newrelic.ini,因为在部署时它不会覆盖我。
为了检查,您还应该将 phpinfo.php 添加到应用程序根目录,以检查 New Relic 是否实际安装。
我将发布我的整个 .config 文件:
packages:
yum:
newrelic-php5: []
newrelic-sysmond: []
rpm:
newrelic: http://yum.newrelic.com/pub/newrelic/el5/x86_64/newrelic-repo-5-3.noarch.rpm
commands:
"01":
command: newrelic-install install
env:
NR_INSTALL_SILENT: true
NR_INSTALL_KEY: [ENTER_LICENSE_KEY]
"02":
command: echo newrelic.appname="[ENTER_APP_NAME]" >> /etc/php.ini
"03":
command: nrsysmond-config –set license_key=[ENTER_LICENSE_KEY]
"04":
command: /etc/init.d/newrelic-sysmond start
files:
"/etc/php.d/newrelic.ini":
mode: "000777"
owner: ec2-user
group: ec2-user
content: |
extension = "newrelic.so"
[newrelic]
newrelic.license = "[ENTER_LICENSE_KEY]"
newrelic.logfile = "/var/log/newrelic/php_agent.log"
newrelic.appname = "[ENTER_APP_NAME]"
newrelic.daemon.logfile = "/var/log/newrelic/newrelic-daemon.log"