我在New Relic有一个奇怪的不太有用的错误。这些错误不会显示在Laravel日志或原始php日志中。例如:
Error message
E_PARSE: syntax error, unexpected 'Foundatio', expecting \ (T_NS_SEPARATOR) or ';' or '{'
Sample stack trace
in require called at /home/xxx/public_html/bootstrap/autoload.php (32)
in require called at /home/xxx/public_html/public/index.php (36)
或
Error message
E_PARSE: syntax error, unexpected 'Support {', expecting \ (T_NS_SEPARATOR) or ';' or '{'
Sample stack trace
in require called at /home/xxx/public_html/bootstrap/autoload.php (32)
in require called at /home/xxx/public_html/public/index.php (36)
或
Error message
E_PARSE: syntax error, unexpected 'Compon', expecting \ (T_NS_SEPARATOR) or ';' or '{'
Stack trace
in require called at /home/xxx/public_html/bootstrap/autoload.php (32)
in require called at /home/xxx/public_html/public/index.php (36)
这些错误似乎每次我在服务器上运行composer install
时都会发生。我的提交/部署时间似乎与New Relic中的错误时间一致
你知道这是什么吗?为什么我没有在日志中看到它们,但它们出现在New Relic中?
谢谢你的帮助
错误不会显示在Laravel日志中,因为Laravel甚至没有运行。解析错误被检测到,当一个文件被加载,文件没有被执行。
感谢@jerdrzej,我意识到我有点鲁莽。
如果有人有这个问题,解决方案是使用正确的方式来部署你的代码(用户只有在部署一切顺利的情况下才能看到新代码——没有停机时间)。
我使用部署。通过他们最近的更新(他们将名称更改为DeployBot),他们可以做到这一点:
http://deploybot.com/或者有来自Laravel团队的envoy:
https://envoyer.io/可能有其他方法来避免停机,但这对我来说是可行的。