PHP でエラーログの場所を見つける
-
php --info
コマンドを使用して、PHP のエラーログのファイルの場所を特定する -
phpinfo()
関数を使用してerror_log
ディレクティブを見つけ、PHP でエラーログを見つける - Windows の PHP で XAMMP コントロールパネルを使用してエラーログを表示する
php --info
コマンドを使用して、apache2
モジュールで PHP のエラーログを見つけて表示する方法を紹介します。このコマンドは、Windows システムと Linux システムの両方で使用できます。このメソッドは、システム内の PHP エラーログファイルの場所を特定します。
また、phpinfo()
関数を使用して、Windows システムで PHP のエラーログを見つける別の方法を紹介します。このメソッドは、error_log
ディレクティブとシステム内でのその場所を見つけるのに役立ちます。
この記事では、XAMPP コントロールパネルを使用して PHP エラーログを表示する別の方法を紹介します。この方法は、ApacheWeb サーバーで機能します。
php --info
コマンドを使用して、PHP のエラーログのファイルの場所を特定する
php --info
コマンドを使用して、apache モジュールで PHP のエラーログのファイルの場所を見つけることができます。Windows の場合は、コマンドプロンプトのコマンド php --info | findstr /r /c:"error_log"
を使用します。Linux の場合は、コマンド php --info | grep error
を使用します。これらのコマンドは、ターミナルにエラーログの場所を出力します。
cat
コマンドを使用して、PHP でエラーログを表示できます。cat
コマンドは concatenate の略で、Linux / Unix システムのファイルの内容を表示します。error.log
ファイルにはエラーログが含まれています。ファイルは var/log/apache2
ディレクトリにあります。たとえば、ターミナルを開き、コマンド sudo cat /var/log/apache2/error.log
を記述します。このコマンドは、ターミナルの error.log
ファイルの内容を表示します。これには、PHP で発生したエラーと通知のリストが含まれています。
サンプルコード:
cat /var/log/apache2/error.log
出力:
[Mon May 10 13:59:14.803938 2021] [php7:error] [pid 185143] [client ::1:56320] PHP Parse error: syntax error, unexpected '<', expecting end of file in /var/www/html/index.php on line 21
[Mon May 10 14:01:00.048212 2021] [php7:error] [pid 185108] [client ::1:56340] PHP Fatal error: Uncaught Error: Call to undefined function php_func() in /var/www/html/index.php:8\nStack trace:\n#0 {main}\n thrown in /var/www/html/index.php on line 8, referer: http://localhost/index.php
phpinfo()
関数を使用して error_log
ディレクティブを見つけ、PHP でエラーログを見つける
phpinfo()
関数を使用して、Windows の PHP で error_log
ディレクティブの場所を確認できます。この方法を使用して、Linux システム内のエラーログの場所を見つけることもできます。エラーログの場所が見つかったら、ファイル構造をナビゲートしてエラーログを確認できます。たとえば、関数 phpinfo()
を PHP ファイルに記述し、ブラウザでファイルを開きます。ディレクティブ error_log
を見つけて、そのすぐ横にあるディレクティブの場所を確認します。ファイルの場所に移動すると、php_error_log
という名前のテキストファイルがそこに表示されます。ファイルを開いて、PHP のエラーログを表示します。場所が phpinfo
ファイルに表示されない場合は、xammp
フォルダーをナビゲートし、apache
フォルダーをクリックします。apache
フォルダ内には logs
フォルダがあり、その中にはエラーログを含むテキストファイル error
があります。
以下の例は、xammp/apache/logs
の場所にある error
ファイルにあるエラーログを表示します。
サンプルコード:
# php 7.x
<?php
phpinfo();
?>
cd xampp/apache/logs/
出力:
[Tue Apr 27 10:53:49.699720 2021] [php7:error] [pid 13372:tid 1900] [client ::1:51930] PHP Fatal error: Uncaught Error: Call to a member function prepare() on null in C:\\xampp\\htdocs\\upload.php:20\nStack trace:\n#0 {main}\n thrown in C:\\xampp\\htdocs\\upload.php on line 20, referer: http://localhost/upload.php
[Tue Apr 27 10:54:06.232963 2021] [php7:error] [pid 13372:tid 1908] [client ::1:51934] PHP Fatal error: Uncaught PDOException: SQLSTATE[HY093]: Invalid parameter number: no parameters were bound in C:\\xampp\\htdocs\\upload.php:20\nStack trace:\n#0 C:\\xampp\\htdocs\\upload.php(20): PDOStatement->execute()\n#1 {main}\n thrown in C:\\xampp\\htdocs\\upload.php on line 20, referer: http://localhost/upload.php
Windows の PHP で XAMMP コントロールパネルを使用してエラーログを表示する
XAMMP コントロールパネルを使用して、Windows の apache モジュールの PHP のエラーログを確認できます。たとえば、xammp アプリケーションを開き、apache モジュールを見つけます。アクション列で、[ログ]ボタンを見つけます。[ログ]ボタンをクリックすると、いくつかのオプションが表示されます。オプション Apache (error.log)
を選択します。次に、エラーログを含むエラー
テキストファイルが開きます。
以下の出力セクションは、error
テキストファイルのエラーログを示しています。このファイルには、発生したランダムエラーが含まれています。
出力:
[Tue Apr 27 10:53:49.699720 2021] [php7:error] [pid 13372:tid 1900] [client ::1:51930] PHP Fatal error: Uncaught Error: Call to a member function prepare() on null in C:\\xampp\\htdocs\\upload.php:20\nStack trace:\n#0 {main}\n thrown in C:\\xampp\\htdocs\\upload.php on line 20, referer: http://localhost/upload.php
[Tue Apr 27 10:54:06.232963 2021] [php7:error] [pid 13372:tid 1908] [client ::1:51934] PHP Fatal error: Uncaught PDOException: SQLSTATE[HY093]: Invalid parameter number: no parameters were bound in C:\\xampp\\htdocs\\upload.php:20\nStack trace:\n#0 C:\\xampp\\htdocs\\upload.php(20): PDOStatement->execute()\n#1 {main}\n thrown in C:\\xampp\\htdocs\\upload.php on line 20, referer: http://localhost/upload.php
Subodh is a proactive software engineer, specialized in fintech industry and a writer who loves to express his software development learnings and set of skills through blogs and articles.
LinkedIn