我在Heroku上部署了一个PHP应用程序,但我似乎找不到apache错误日志。使用命令$heroku logs
我似乎只获得了apache访问日志。所以一堆GET 200 OK等,但没有在本地输入错误日志的错误信息,例如'PHP Fatal error: blah blah '
我在哪里可以访问Heroku上的这些错误日志,或者如何告诉应用程序写入Heroku的日志,就像本地错误日志一样?
我觉得我忽视了一些显而易见的事情,但我似乎无法找到解决方案。
答案 0 :(得分:6)
经过大量的实验,看起来你需要在php.ini中注释掉error_log
并确保log_errors = on
..这应该将您的错误输出到stderr,其中heroku logplex可以获取流,然后使用heroku logs --tail
进行监控..我启动了一个heroku facebook app并查看了他们的phpinfo()并复制了设置。
答案 1 :(得分:1)
我们必须将它添加到bin / compile文件中的buildpack:
cat >>boot.sh <<EOF
for var in \`env|cut -f1 -d=\`; do
echo "PassEnv \$var" >> /app/apache/conf/httpd.conf;
done
touch /app/apache/logs/error_log
touch /app/apache/logs/access_log
touch /app/apache/logs/php_error.log
tail -F /app/apache/logs/error_log &
tail -F /app/apache/logs/access_log &
tail -F /app/apache/logs/php_error.log &
echo "Launching apache"
exec /app/apache/bin/httpd -DNO_DETACH
EOF
我们主要保留了php.ini和https.conf设置。
答案 2 :(得分:0)
这与Heroku的部署方式无关,而与您的PHP配置无关。 error_log
指令管理它。
error_log
指令定义应记录脚本错误的文件的名称。该文件应该可由Web服务器的用户写入。
答案 3 :(得分:0)
尝试添加:
error_reporting(E_ALL);
ini_set("display_errors", 1);
到PHP页面/ app的最顶层
答案 4 :(得分:0)
我实现的laravel项目按问题查看错误
heroku config:set APP_DEBUG = true
再次访问应用程序,错误将在浏览器中显示