PHP版本不兼容是页面空白的主因,需分别验证CLI与FPM版本,开启错误显示定位Fatal error,再通过系统工具或面板切换版本并确认Nginx正确连接新php-fpm。
页面空白大概率是 PHP 版本不兼容触发了致命错误,但错误被静默屏蔽了——不是代码挂了,是 PHP 拒绝执行且不告诉你原因。
检查是否因 PHP 版本导致的白屏
线上站点突然空白,第一反应不是改代码,而是确认当前实际运行的 PHP 版本和项目依赖是否匹配。比如 Laravel 10 要求 PHP >= 8.1,若服务器只装了 PHP 7.4,composer install 可能成功(因本地没校验),但运行时一碰到 mixed 类型声明或构造函数属性提升就直接 Fatal error,而默认配置下这类错误不会输出到页面。
- 通过 SSH 登录服务器,执行
php -v确认 CLI 使用的版本 - 新建一个
info.php放到 Web 根目录,内容为,用浏览器访问它,确认 Web Server(如 Nginx/Apache)加载的是哪个php-fpm实例及其版本 - 注意:CLI 和 FPM 的 PHP 版本可能不同,必须分别验证
让错误显示出来才能定位问题
白屏本质是错误被压制。在 php.ini 或项目入口(如 public/index.php)顶部临时开启错误报告:
<?php
error_reporting(E_ALL);
ini_set('display_errors', '1');
ini_set('display_startup_errors', '1');
// 然后再引入框架启动逻辑
如果此时出现具体错误(如 ParseError: syntax error, unexpected token "enum"),基本锁定是 PHP 版本过低(enum 是 PHP 8.1+ 特性)。
立即学习“PHP免费学习笔记(深入)”;