温馨提示×

ubuntu php配置为何白屏

小樊
43
2026-09-19 13:57:50
栏目: 编程语言

Ubuntu 下 PHP 页面白屏(White Screen of Death,WSOD)通常不是“没反应”,而是错误被隐藏了,所以你只看到一片空白。下面按最常见原因 → 排查方法 → 解决办法来说明。


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

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

这是白屏的第一原因。

检查方式

在 PHP 文件最前面加:

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

如果刷新后出现错误,说明就是这个问题。

永久解决(Ubuntu)

编辑 php.ini(路径取决于 PHP 版本):

sudo nano /etc/php/8.1/apache2/php.ini
# 或 fpm
/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)

例如:

  • 调用不存在的函数
  • 引入文件失败
  • 类未定义
  • 内存耗尽

查看错误日志(非常关键)

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

二、Web 服务器相关

3️⃣ Apache 没装 PHP 模块

php -v

有输出,但网页白屏?

检查:

sudo apt list --installed | grep libapache2-mod-php

没有就装:

sudo apt install libapache2-mod-php
sudo a2enmod php8.1
sudo systemctl restart apache2

4️⃣ Nginx + PHP-FPM 配置错误(白屏常见)

如果你用 Nginx:

确保:

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

否则 PHP 不会执行,直接白屏或下载文件。


三、文件 & 权限问题

5️⃣ 文件权限错误

ls -l /var/www/html

建议:

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

6️⃣ 文件编码 / BOM 问题

Windows 编辑的 PHP 文件可能带 BOM,导致白屏。

解决:

  • 用 VS Code
  • 右下角编码 → 改为 UTF-8 without BOM

四、框架白屏(Laravel / ThinkPHP 等)

如果是框架:

  • 白屏 = 报错被框架拦截
  • 看:
storage/logs/laravel.log

.env 中:

APP_DEBUG=true

五、快速自查清单 ✅

✅ 是否开了 display_errors
✅ 是否看了 error.log
✅ Apache/Nginx 是否支持 PHP
✅ 文件是否存在 / 权限是否正常
✅ 是否是框架错误被隐藏


六、我可以进一步帮你

你可以直接贴:

  1. Ubuntu 版本
  2. PHP 版本
  3. Apache 还是 Nginx
  4. 白屏的 PHP 代码或框架名

我可以 精准定位是哪一行导致白屏。

0 踩