wordpressでプラグイン等インストールしていると、php関連のエラーがたまに表示されることがある。(以前、wp-contactformをインストールした際、セーフモード関係のエラーが出力された。)

出力される際ファイル名とパス等が表示されるが、アカウント名等も含まれるためセキュリティ的によろしくない。
(たとえば、xreaの場合、/virtual/アカウント名/public_html)

そこで、出力されるエラーを画面には表示させず、ログとして保存するように変更してみた。

wordpressのホームページアドレスにある.htaccessに下記の3行を追加することでうまくいった。

php_flag display_errors off
php_flag log_errors on
php_value error_log “エラーログ名”
(エラーログファイルに書き込み権限を与えておくことが必要)

自分の環境の場合、logディレクトリを作成し、その配下にphp_error.logを作成し書き込み権限を与えた。

さらに、このままでは閲覧可能なのでlogディレクトリに.htaccessを作成し
deny from allとしてやった。

なので最後の行はこんな感じ
php_value error_log “./log/php_error.log”

動作確認として、wp-contactformをエラーが出てたころの状態に戻し確認。

見事エラーがログに書き込まれた。

あと、.htaccessだが、xreaサーバの場合上書き保存しても更新されなかったので削除してからアップロードした。

タグ: