2012-12-07 29 views
17

私はHerokuにPHPアプリケーションをデプロイしていますが、Apacheのエラーログを見つけることができません。コマンド$heroku logsを使用すると、私はApacheのアクセスログだけを取得するようです。だから、GET 200 OKなどの束が、ローカルのエラー・ログに置かれていないエラー情報など、「PHPの致命的なエラー:何とか何とかHerokuのPHPエラーログ

私はHerokuの上でこれらのエラーログにアクセスするか、どのようにしますローカルのエラーログと同じように、Herokuのログに書き込むようにアプリに指示しますか?

明らかに何かを見落としているような気がしますが、解決策が見つからないようです。あなたはphp.iniの でerror_logをコメントアウトし、log_errors = onを確認する必要がありますように多くの実験の後、それが見えます

+0

これは私自身不思議でした。あなたが知っていれば答えを与えてください。 – bonez

答えて

5

.. Herokuののlogplexは、ストリームを拾うことができる場所これは、出力あなたのエラーがで監視、その後、stderrにすべきですheroku logs --tail ..私はherokuのfacebook appを立ち上げ、phpinfo()を見てセットアップをコピーしました。

+0

あなたの意見では、私はphp.iniに 'log_errors = On'を設定するだけでいいですか?それは私のために働いていません.. – fain182

+0

答えは示唆しているようにerror_logをコメントアウトしましたか? – bonez

0

これは、Herokuの展開方法とは関係なく、PHPの設定に関係しています。ディレクティブはそれを管理します。

error_logディレクティブは、スクリプトエラーを記録するファイルの名前を定義します。ファイルは、Webサーバーのユーザーによって書き込み可能である必要があります。

0

を増やしてみてください:

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ページの最上部へ

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

我々はビンに私たちのbuildpackにこれを追加する必要がありました

+0

これは動作しません –

+0

本当ですか? "Wed Feb 06 18:51:35 2013] [エラー] [クライアント10.44.51.101] PHPパースエラー:構文エラー、予期せぬT_STRINGの/app/www/index.php in 5行目" それはOPが望んでいたものではありませんか? – joshbirk

+0

テストコードは次のとおりです。 <?php error_reporting(E_ALL);ini_set( "display_errors"、1); ここで明白なエラー ?> 私はHerokuに展開します。設定変更はありません。また、herokuはindex.phpを実行した後にログを記録します。 – joshbirk

1

/アプリ/ファイルをコンパイル私たちはphp.iniとhttps.confの設定をほとんどそのままの状態にしました。