PHP 错误日志在哪里看?Apache / Nginx / PHP-FPM 一次讲清

PHP 程序明明报错了,页面却一片空白?

接口直接 500,却 什么错误信息都没有

很多人不是不会改 Bug,

而是------根本不知道 PHP 错误日志在哪里看

这篇文章,一次把 Apache / Nginx / PHP-FPM / phpstudy 下的 PHP 错误日志位置和排查思路讲清楚。


一、先搞清一个关键点:PHP 错误到底"记在哪里"?

PHP 错误日志 不一定只有一个地方,取决于:

  • 你用的是 Apache 还是 Nginx
  • PHP 是模块模式,还是 PHP-FPM
  • PHP 配置里 error_log 写没写
  • 本地还是线上环境

所以正确思路是:

不要猜日志位置,要按环境去找


二、最通用的方法:先看 php.ini 里的 error_log

不管什么环境,第一步都一样。

1️⃣ 找到当前使用的 php.ini

在 PHP 文件里写一行:

复制代码
<?php phpinfo(); ?>

搜索关键词:

复制代码
Loaded Configuration File

记住这个路径。


2️⃣ 查看 error_log 配置

在 php.ini 里搜索:

复制代码
error_log

常见情况:

复制代码
error_log = /var/log/php_errors.log

👉 这个路径就是 PHP 最核心的错误日志

如果是空的:

复制代码
error_log =

说明:

  • PHP 错误可能走 Web 服务器日志
  • 或直接被丢弃(新手最容易踩坑)

三、Apache + PHP 错误日志在哪里看?

常见环境:Apache + mod_php

这种情况下:

PHP 错误通常写进 Apache 错误日志

常见位置👇

Linux(CentOS / Ubuntu)
复制代码
/var/log/apache2/error.log
# 或
/var/log/httpd/error_log
Windows / phpstudy
复制代码
phpstudy/Apache/logs/error.log

调试建议

当你看到:

  • 页面空白
  • 接口 500

👉 第一时间 tail Apache error.log

复制代码
tail -f error.log

四、Nginx + PHP-FPM 错误日志怎么看?(最容易混)

这是线上环境最常见、也最容易搞错的


1️⃣ Nginx 错误日志(不是 PHP 错误)

复制代码
/var/log/nginx/error.log

这里常见的是:

  • 502 Bad Gateway
  • upstream prematurely closed connection

👉 只能说明 PHP-FPM 有问题,不是代码错在哪


2️⃣ PHP-FPM 错误日志(重点)

打开 PHP-FPM 配置:

复制代码
php-fpm.conf
# 或
www.conf

查找:

复制代码
error_log = /var/log/php-fpm/error.log

常见路径:

复制代码
/var/log/php-fpm/error.log
/var/log/php7.4-fpm.log

👉 这里才是 PHP 代码 Fatal Error 的地方


3️⃣ PHP-FPM 子进程错误(很多人不知道)

www.conf 中:

复制代码
php_admin_value[error_log] = /var/log/php-fpm/www-error.log

👉 有些 Fatal Error 只会出现在这里


五、phpstudy 如何查看 PHP 错误日志?(新手必看)

phpstudy 是很多人学习 PHP 的第一站,但坑也最多。

必查 3 个地方 👇

1️⃣ PHP 错误日志
复制代码
phpstudy/PHPTutorial/php/php7.x/logs/php_error.log

2️⃣ Apache / Nginx 错误日志
复制代码
phpstudy/PHPTutorial/Apache/logs/error.log
phpstudy/PHPTutorial/Nginx/logs/error.log

3️⃣ phpstudy 面板里的"日志"按钮

👉 有些错误只在面板汇总里显示


六、为什么"页面不报错,日志却有错误"?

这是 PHP 初学者 必踩坑之一

原因通常是:

复制代码
display_errors = Off
log_errors = On

👉 这是生产环境推荐配置

开发环境调试建议:

复制代码
display_errors = On
error_reporting = E_ALL

记住:

页面不显示 ≠ 没有错误

真相永远在日志里


七、PHP 出现 500 错误,正确排查顺序(很重要)

当你遇到:

  • 500 Internal Server Error
  • 接口直接挂掉

不要乱改代码,按这个顺序:

1️⃣ 看 Web 服务器 error.log

2️⃣ 看 PHP-FPM error.log

3️⃣ 看 PHP 自己的 error_log

4️⃣ 再去看代码逻辑

👉 90% 的问题在前 3 步就定位了


八、一个非常实用的小建议(老程序员经验)

在每个项目里,主动指定 PHP 错误日志路径

复制代码
error_log = /www/logs/project_php_error.log

好处是:

  • 不和系统日志混
  • 排错效率翻倍
  • 线上问题更好回溯

最后一句话

PHP 错误不可怕,看不到错误才可怕。

学会看日志,你已经超过一半的 PHP 新手了。

相关推荐
不正经的小寒3 小时前
PHP 8.4 核心特性
php
不正经的小寒6 小时前
PHP 8.3 核心特性
php
tonydf8 小时前
Nginx爆新的RCE漏洞!别担心,平滑升级即可。
后端·nginx
曹牧8 小时前
Nginx 504
运维·nginx
安妮的小熊呢8 小时前
CRMEB开源商城系统 & 标准版系统(PHP)开发规范
开发语言·javascript·php
在角落发呆9 小时前
跨越网络鸿沟:传统文件传输与现代内网穿透的奇妙交响
开发语言·php
顧棟10 小时前
Apache-doris 集群扩缩容迁移方案
apache
rockmelodies11 小时前
CentOS Stream 源码编译安装 Nginx 1.31.0(静态依赖版)
运维·chrome·nginx
minji...12 小时前
Linux 网络基础之网络IP层(十)IP 协议,网段划分,IP地址相关问题
linux·运维·服务器·网络·tcp/ip·智能路由器·php
顧棟12 小时前
Apache-doris-2.0.2原地滚动升级3.1.4方案
apache