在 PHP 中查詢錯誤日誌位置

Subodh Poudel 2023年1月30日
  1. 在 PHP 中使用 php --info 命令定位錯誤日誌的檔案位置
  2. 使用 phpinfo() 函式定位 error_log 指令以查詢 PHP 中的錯誤日誌
  3. 在 Windows 中使用 XAMMP 控制面板檢視 PHP 中的錯誤日誌
在 PHP 中查詢錯誤日誌位置

我們將介紹一種使用 php --info 命令在 apache2 模組中定位和檢視 PHP 中錯誤日誌的方法。我們可以在 Windows 和 Linux 系統中使用此命令。此方法將定位系統中 PHP 錯誤日誌檔案的位置。

我們還將介紹另一種使用 phpinfo() 函式在 Windows 系統中定位 PHP 中錯誤日誌的方法。此方法有助於查詢 error_log 指令及其在系統中的位置。

本文將介紹另一種使用 XAMPP 控制面板檢視 PHP 錯誤日誌的方法。此方法適用於 apache 網路伺服器。

在 PHP 中使用 php --info 命令定位錯誤日誌的檔案位置

我們可以使用 php --info 命令在 apache 模組中定位 PHP 中錯誤日誌的檔案位置。對於 Windows,使用命令提示符中的命令 php --info | findstr /r /c:"error_log" 。在 Linux 的情況下,使用命令 php --info | grep error。這些命令將在終端中輸出錯誤日誌位置。

我們可以使用 cat 命令來檢視 PHP 中的錯誤日誌。cat 命令代表連線,它顯示 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() 函式來檢查 error_log 指令在 Windows 中的 PHP 中的位置。我們也可以使用這種方法來查詢 Linux 系統中的錯誤日誌位置。找到錯誤日誌位置後,我們可以導航檔案結構並檢視錯誤日誌。例如,在 PHP 檔案中編寫函式 phpinfo(),然後在瀏覽器中開啟該檔案。找到一個指令 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 中使用 XAMMP 控制面板檢視 PHP 中的錯誤日誌

我們可以使用 XAMMP 控制面板在 PHP 中檢視 Windows 中 apache 模組的錯誤日誌。例如,開啟 xammp 應用程式並找到 apache 模組。在操作列中,找到日誌按鈕。單擊日誌按鈕,會出現一些選項。選擇選項 Apache (error.log)。然後 error 文字檔案開啟,其中包含錯誤日誌。

下面的輸出部分顯示了 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