在 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