Linux Mint 13Mayaでphp5を使用してApache2を実行しています。仮想ホストとそこにある次の2つのエントリを定義しました。
ErrorLog ${Apache_LOG_DIR}/error.log
CustomLog ${Apache_LOG_DIR}/access.log combined
これにより、var/log/Apache2
にエラーログとアクセスログが生成されます。
PHPエラーをPHPエラーログに記録します。/etc/php5/Apache2/php.ini
に次のように設定しました。
display_errors = On
log_errors = On
error_log = /var/log/php-errors.log
log_errors_max_len = 0
error_reporting = E_ALL | E_STRICT
ログファイル/var/log/php-errors.log
が生成されましたが、ログに記録されたのは、一部のモジュールがすでにロードされているという2つの警告だけでした。仮想ホスト定義でログディレクティブをコメントアウトしようとしましたが、何も変更されませんでした。すべてのエラーは引き続きApacheログに記録されます。
ここで何が欠けていますか?
そのファイルに書き込むには、アクセス許可が十分でない可能性があります。また、ディレクトリにも到達可能であることを確認する必要があります。
それが私のシステムにどのようにあったかの例(これは標準のDebian wheezyインストールでした):
$ ls -ld /var/log/Apache2/
drwxr-x--- 2 root adm 4096 Sep 4 15:59 /var/log/Apache2/
$ ls -ld /var/log/Apache2/php-error.log
-rw-r--r-- 1 www-data www-data 0 Jul 23 11:07 /var/log/Apache2/php-error.log
php-error.log
を含むディレクトリに到達できなかったため、これは機能しませんでした。幸い、mod_php(またはApache2?)はフォールバックして、VirtualHostsエラーログに書き込みます。
私の場合、chmod o+rx /var/log/Apache2/
を適用することで簡単に修正できましたが、セキュリティ上の考慮事項は異なる場合があります。修正後:
$ ls -ld /var/log/Apache2/
drwxr-xr-x 2 root adm 4096 Sep 4 15:59 /var/log/Apache2/
そして、その変更でそれは機能しました。
追記:まず、あなたと同じ問題が発生し、1日以内に解決できませんでした。Google検索では何も表示されませんでした。serverfaultで質問を書くことを考えました。タイトルを準備しているときに提案がありました。セカンドヒット。質問が重複していることに気づいたので、コメントを書こうと思ったのですが、もっと書きたかったので、問題は解決しないが自分の視点にもつながる答えを書こうと思いました。他の誰かが助けてくれるかもしれませんそして答えを準備している間に私は解決策を発見しましたこれは...まあ、ここでは何でも絶対に素晴らしいです.serverfault/stackexchangeは私が他の人の助けを借りて暗黙のうちに自分で解決策を見つけるのを助けました。できません良くなると思います(自分で解決する以外に