PHP でエラーログの場所を見つける

Subodh Poudel 2023年1月30日
  1. php --info コマンドを使用して、PHP のエラーログのファイルの場所を特定する
  2. phpinfo() 関数を使用して error_log ディレクティブを見つけ、PHP でエラーログを見つける
  3. Windows の PHP で XAMMP コントロールパネルを使用してエラーログを表示する
PHP でエラーログの場所を見つける

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 Poudel
Subodh Poudel avatar Subodh Poudel avatar

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

関連記事 - PHP Error