温馨提示×

debian php为什么空白页

小樊
45
2026-09-23 09:57:24
栏目: 编程语言

在 Debian 上运行 PHP 出现空白页(White Screen of Death,WSOD),通常不是 PHP 本身“挂了”,而是错误被隐藏或脚本提前终止。下面按最常见原因给你排查清单。


一、最常见原因

1️⃣ 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

2️⃣ 致命错误导致脚本中断

如:

  • 调用未定义函数
  • 引入文件不存在
  • 类名写错
  • 语法错误(PHP 8 更严格)

✅ 临时调试: 在 PHP 文件最顶部加:

<?php
error_reporting(E_ALL);
ini_set('display_errors', 1);

3️⃣ 文件权限问题(Debian 特有)

Apache/Nginx 用户通常是:

  • apache2 → www-data
  • nginx → www-data

✅ 检查:

ls -l /var/www/html

✅ 修复:

chown -R www-data:www-data /var/www/html
chmod -R 755 /var/www/html

4️⃣ PHP 模块未安装 / 未启用

例如:

  • php-mysql 没装
  • 用了 mbstring 但没启用

✅ 检查:

php -m

✅ 安装示例:

apt install php-mysql php-mbstring

5️⃣ Web 服务器未解析 PHP

空白页 + 源代码可见 = 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;
}

6️⃣ 输出前有空格 / BOM

<?php
// 前面有空格或 BOM

会导致 header / session 报错,直接空白。

✅ 用编辑器去掉 BOM(VS Code / Notepad++)


二、快速定位方法(强烈推荐)

方法 1:命令行直接跑

php index.php

如果能看到错误,说明是 Web 环境配置问题。

方法 2:查看日志

tail -f /var/log/apache2/error.log
# 或
tail -f /var/log/nginx/error.log

三、如果你是某种场景

你可以直接告诉我:

  • Debian 版本(11 / 12?)
  • PHP 版本(7.4 / 8.1 / 8.2?)
  • Web 服务(Apache / Nginx?)
  • 框架(原生 / Laravel / ThinkPHP?)

我可以给你精确的一步到位解决方案。

0 踩