在 Debian 上运行 PHP 出现空白页(White Screen of Death,WSOD),通常不是 PHP 本身“挂了”,而是错误被隐藏或脚本提前终止。下面按最常见原因给你排查清单。
Debian 默认可能:
display_errors = Off
error_reporting = E_ALL & ~E_DEPRECATED
✅ 解决: 编辑 php.ini(先查路径)
php --ini
修改:
display_errors = On
error_reporting = E_ALL
重启服务:
systemctl restart apache2
# 或
systemctl restart php-fpm
如:
✅ 临时调试: 在 PHP 文件最顶部加:
<?php
error_reporting(E_ALL);
ini_set('display_errors', 1);
Apache/Nginx 用户通常是:
www-datawww-data✅ 检查:
ls -l /var/www/html
✅ 修复:
chown -R www-data:www-data /var/www/html
chmod -R 755 /var/www/html
例如:
php-mysql 没装mbstring 但没启用✅ 检查:
php -m
✅ 安装示例:
apt install php-mysql php-mbstring
空白页 + 源代码可见 = PHP 没执行
✅ Apache 检查:
a2enmod php8.2
systemctl restart apache2
✅ Nginx 检查:
location ~ \.php$ {
include snippets/fastcgi-php.conf;
fastcgi_pass unix:/run/php/php8.2-fpm.sock;
}
<?php
// 前面有空格或 BOM
会导致 header / session 报错,直接空白。
✅ 用编辑器去掉 BOM(VS Code / Notepad++)
php index.php
如果能看到错误,说明是 Web 环境配置问题。
tail -f /var/log/apache2/error.log
# 或
tail -f /var/log/nginx/error.log
你可以直接告诉我:
我可以给你精确的一步到位解决方案。