Журналы ошибок PHP в Heroku

У меня есть приложение PHP, развернутое на Heroku, но я не могу найти журнал ошибок apache. Используя команду $heroku logs я, кажется, получаю только журналы доступа apache. Итак, куча GET 200 OK и т. Д., Но нет информации об ошибке, которая помещается в журнал ошибок локально, например «PHP Fatal error: blah blah »

Где я могу получить доступ к этим журналам ошибок на Heroku или как сообщить приложению, чтобы они записывали в журнал Heroku, как это делает локальный журнал ошибок?

Я чувствую, что я пропускаю что-то очевидное, но я не могу найти решение.

После много экспериментов, похоже, вам нужно прокомментировать error_log в php.ini и убедиться, что log_errors = on .. это должно выводить ваши ошибки в stderr, где heroku logplex может забрать поток, а затем следить heroku logs --tail .. Я запустил приложение facebook heroku и посмотрел их phpinfo () и скопировал настройку.

Мы должны были добавить это в наш buildpack в файле bin / compile:

 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 в основном как есть.

Это не относится к способу развертывания Heroku, но к вашей конфигурации PHP. Директива error_log управляет этим.

Директива error_log определяет имя файла, в котором должны регистрироваться ошибки сценария. Файл должен быть доступен для записи пользователем веб-сервера.

Попробуйте добавить:

 error_reporting(E_ALL); ini_set("display_errors", 1); 

На самом верху страницы PHP / приложения