Я уже несколько дней пробовал абсолютно все, и я не могу заставить PHP регистрировать свои ошибки локально или запускать на самом Heroku. Моя точная настройка:
VAGRANT BOX: Усадьба / 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.json, хотя я пробовал различные варианты, включая не использование собственного пакета сборки, а только использование по умолчанию и т. Д.
{
"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"}
}
МАСТЕР: Я запускаю свой собственный профайл с помощью sudo foreman start -f Procfile.dev
показано здесь:
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 &
Однако я нигде не вижу журналы!
Я просто хочу, чтобы ошибки регистрировались, чтобы я мог спокойно работать!
Если вам нужна дополнительная информация, просто спросите, и я с радостью отвечу как можно скорее, предоставив как можно больше информации.
Спасибо
Задача ещё не решена.
Других решений пока нет …