在 Ubuntu 上运行 PHP 出现白屏(White Screen of Death,WSOD),通常不是“没反应”,而是错误被隐藏了。下面按「原因 → 排查 → 解决」给你系统说明。
这是白屏的第一大原因。
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
例如:
tail -f /var/log/apache2/error.log
# 或
tail -f /var/log/php8.1-fpm.log
白屏 + 日志中有:
PHP Fatal error: Allowed memory size exhausted
memory_limit = 256M
如果浏览器直接下载 .php 或白屏:
sudo a2enmod php8.1
sudo systemctl restart apache2
确保有:
location ~ \.php$ {
include snippets/fastcgi-php.conf;
fastcgi_pass unix:/run/php/php8.1-fpm.sock;
}
sudo chown -R www-data:www-data /var/www/html
sudo chmod -R 755 /var/www/html
session_start() 前有输出新建 test.php:
<?php
phpinfo();
如果也白屏 → 环境问题
如果正常 → 代码问题
在 PHP 文件最顶部加:
<?php
ini_set('display_errors', 1);
error_reporting(E_ALL);
如果你愿意,可以告诉我:
我可以直接帮你定位到具体配置或代码问题。