我已经尝试了好几天了,而且我无法让PHP在本地记录错误或在Heroku上运行。我的确切设置:
VAGRANT BOX: Homestead / laravel(包含PHP / Nginx安装)
在流浪盒运行后,我停止正在运行的服务(sudo service nginx stop
和sudo service php5-fpm stop
)。 Heroku工具带安装在这个盒子上。我正在使用PHP版本5.6.0-1 + deb.sury.org~trusty + 1,但尝试过以前的版本(不同版本的Homestead / Laravel盒子)。
COMPOSER INSTALL:我有以下composer.json文件,虽然我尝试了各种选项,包括不使用我自己的buildpack,只是默认的等等。
{
"extra": {
"heroku": {
"document-root": "webroot",
"index-document": "index.php"
}
},
"repositories": [
{
"type": "git",
"url": "https://github.com/ashleycoker/heroku-buildpack-php"
}
],
"require-dev": {
"heroku/heroku-buildpack-php": "dev-master"
}
}
FOREMAN:我使用此处显示的sudo foreman start -f Procfile.dev
运行我自己的proc文件:
web: vendor/bin/heroku-php-nginx -v webroot/
除了PHP的错误记录之外,一切都按预期工作。我实际上正在运行一个expressionengine安装,可以正常访问PHPinfo并看到错误日志设置为/tmp/heroku.php-fpm.www.5000.log
。 log_errors已启用,并且您期望的所有内容在ini文件中看起来都很好。
我认为我已经阅读/尝试了Google上的所有解决方案,但是无济于事。我已经尝试更改error_log文件的所有权,更改其位置,更改PHP错误日志设置,包括使用E_ALL以便记录所有内容。我甚至在屏幕上看到PHP通知,所以我知道应该进入日志文件。
来自heroku-php-nginx的重要一行似乎很重要,它将所有日志重定向到stderr,以便Heroku可以接收它们 - 正是我想要发生的事情。
( touch "${logs[@]}"; tail -qF -n 0 "${logs[@]}" | strip_fpm_child_said 1>&2 || true; echo 'tail "${logs[@]}"' >&3; ) 3> $wait_pipe &
但是我无法在任何地方看到日志!
我只想记录错误,以便我可以安心地投入生产!
需要更多信息,我会很乐意尽快回答尽可能多的信息。
由于