php 部署后白屏通常由致命错误、语法错误或权限问题导致,默认配置下错误被隐藏。排查核心是开启错误显示并检查日志。适用条件为已部署的 php 环境,且无法通过浏览器直接看到报错信息。

开启错误显示定位源头
修改 php.ini 或入口文件,强制输出错误信息,这是最直接的手段。

<?php
// index.php 首行
error_reporting(E_ALL);
ini_set('display_errors', '1');
ini_set('log_errors', '0');
try {
require_once 'app/bootstrap.php';
} catch (Exception $e) {
echo "<pre class="brush:php;toolbar:false;">" . htmlspecialchars($e->getMessage()) . "";
exit(1);
}
?>
执行后若页面出现红色报错文本,说明代码存在语法或运行时错误;若仍白屏,则可能是输出缓冲未刷新或权限拒绝。
立即学习“PHP免费学习笔记(深入)”;
检查日志与权限边界
当 display_errors 关闭时,错误写入日志文件。需确认日志路径及 Web 用户可读性。

# 查看最近错误日志 sudo tail -n 50 /var/log/php-fpm/www-error.log # 检查文件权限 ls -l /var/www/html/index.php # 确保所有者为 www-data 或 nginx/apache 用户 chown -R www-data:www-data /var/www/html
若日志中有 Permission denied,需调整目录权限;若有 Fatal error,需根据堆栈修复代码。无日志则检查 php-fpm 服务状态。
验证缓存与依赖完整性
排除代码逻辑后,检查 OPcache 或框架缓存是否导致旧代码生效。清除缓存并重启服务可解决部分静默失败。



















