php エラーログの読み方

Pocket

今回は、phpエラーログの出力と確認方法をご案内します。エラー修正にログをご活用ください。
なお、出力方法は、ご利用のphpがCGI版かモジュール版かで異なります。

phpエラーログの出力設定(CGI版)

コントロールパネル内にあるphp.ini の設定をしてエラーログが出力されるよう設定します。
php.ini が設定できるメニューが、お客様のWebサーバ番号によって異なりますので、以下のページをご確認ください。
>>PHPのご利用方法(ftpXXXの場合)
>>PHPのご利用方法(usersXXXの場合)
※モジュール版phpでは、php.iniを設定変更いただくことができません。

phperror002

error_reporting を「E_ALL &~E_NOICE」へご設定ください。phperror004

設定するボタンを押して確定します。phperror003

phpエラーの出力設定によって、エラー内容がサーバー上にある/logs フォルダの中に生成されるようになりました。
hetemlFTP やFTPソフトを利用してエラー内容をご確認ください。
phperror005

phpエラーログの出力設定(モジュール版)

.htaccess を利用して、エラーログが出力エラーログが出力されるよう設定します。
以下のように.htaccessに記述をし、サーバーにアップロードします。
/home/users/0/hetemlid/:ご利用のサーバーのフルパスです。コントロールパネル>>アカウント情報>>フルパスの項目でご確認ください。
php_erorr.log:任意のファイル名で構いませんが、同じファイル名を記述で指定した場所に設置ください。

php_value error_log "/home/users/0/hetemlid/php_erorr.log"


今回は、ホームディレクトリ(webフォルダと同階層)に設置しました。
phperror004

エラーは『php_erorr.log』に出力されます。phperror004

phpエラーログの読み方

log_errors の設定によってWebサイトへアクセスした結果、phpでエラーが発生すると、エラー内容が記録されるようになりました。
以下のいくつかのエラーログから、エラー箇所の確認方法や各語意の意味について確認ください。

[4-Mar-2014 18:04:32 Asia/Tokyo] PHP Warning:  Unknown: failed to open stream:Permission denied: 
in Unknown on line 0

上記のログにはPermission denied:」が表示されています。
この表記はファイルは存在していますが、パーミッション(権限)がなくファイルの読み込みに失敗していることを示します。
ftp ソフトを利用してサーバー上にアクセスをしファイルのパーミッションが604等になっているか確認をしてください。

[08-Mar-2014 19:00:00] PHP Parse error: syntax error, unexpected T_OBJECT_OPERATOR in /home/
sites/heteml/usersxxx/l/i/a/allhoge/web/hogehoge.com/wp/wp-admin/index.php on line 103

上記のエラーは、php プログラムの構文に誤りがあることを示すsyntax errorエラーが表示されています。
syntax errorの後にあるT_OBJECT_OPERATORは、オブジェクトオポーザー(->)を示すので、index.php103行目にある
-> で記述されたプログラム内容に誤りがないか確認を行ってください。

【ご注意ください】
エラーが常時出ている場合、ログファイルが肥大しファイルの容量が
大きくなりすぎますとFTPで操作できなくなることがございます。エラーが出ないように修正いただくか、
必要な時だけエラーログへ書き出されるようにご対応ください。

Pocket