温馨提示×

ubuntu php为何白屏错误

小樊
41
2026-09-13 09:53:24
栏目: 编程语言

在 Ubuntu 上运行 PHP 出现白屏(White Screen of Death,WSOD),通常不是“没反应”,而是错误被隐藏了。下面按「原因 → 排查 → 解决」给你系统说明。


一、最常见原因(90% 情况)

1️⃣ PHP 报错被关闭(display_errors = Off)

这是白屏的第一大原因

检查方式

php -i | grep display_errors

解决

修改 php.ini(路径可能为):

/etc/php/8.1/apache2/php.ini
/etc/php/8.1/cli/php.ini
/etc/php/8.1/fpm/php.ini

改为:

display_errors = On
error_reporting = E_ALL

重启服务:

sudo systemctl restart apache2
# 或
sudo systemctl restart php8.1-fpm

2️⃣ 致命错误(Fatal Error)

例如:

  • 调用不存在的函数
  • 引入文件失败
  • 超出内存限制

查看真实错误

tail -f /var/log/apache2/error.log
# 或
tail -f /var/log/php8.1-fpm.log

3️⃣ 内存不足(Allowed memory size exhausted)

白屏 + 日志中有:

PHP Fatal error: Allowed memory size exhausted

解决

memory_limit = 256M

二、Web 服务器相关问题

4️⃣ Apache / Nginx 未正确解析 PHP

如果浏览器直接下载 .php 或白屏:

Apache 检查

sudo a2enmod php8.1
sudo systemctl restart apache2

Nginx 检查

确保有:

location ~ \.php$ {
    include snippets/fastcgi-php.conf;
    fastcgi_pass unix:/run/php/php8.1-fpm.sock;
}

5️⃣ 文件权限问题

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

三、代码层原因

6️⃣ 输出前有误(常见框架)

  • session_start() 前有输出
  • BOM 头
  • 引入文件失败

快速测试

新建 test.php

<?php
phpinfo();

如果也白屏 → 环境问题
如果正常 → 代码问题


四、临时调试技巧(立刻看到错误)

在 PHP 文件最顶部加:

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

五、快速自检清单 ✅

  • [ ] display_errors = On
  • [ ] 查看 error.log
  • [ ] PHP 模块已启用
  • [ ] 文件权限正确
  • [ ] 内存足够

如果你愿意,可以告诉我:

  • Ubuntu 版本
  • PHP 版本
  • Apache 还是 Nginx
  • 白屏页面是完全空白还是部分内容

我可以直接帮你定位到具体配置或代码问题。

0