温馨提示×

ubuntu php配置为何空白

小樊
62
2026-09-07 11:36:39
栏目: 编程语言

在 Ubuntu 上配置 PHP 后出现**“空白页面 / 空白输出”,通常不是 PHP 没装,而是运行方式或配置环节断了**。下面按最常见原因逐一排查(90% 的问题都在前 3 条)。


一、最常见原因(先看这个)

1️⃣ 直接用浏览器访问了 PHP 文件,但没走 Web 服务器

如果你是这样访问的:

file:///var/www/html/index.php

❌ 这是错误的,PHP 不会执行,页面可能空白或显示源码。

✅ 正确方式:

http://localhost/index.php

前提是你装了 Apache / Nginx,并且服务在运行。


2️⃣ Web 服务器未安装或未启动

Apache

sudo apt install apache2
sudo systemctl start apache2
sudo systemctl enable apache2

测试:

curl http://localhost

Nginx + PHP-FPM

sudo apt install nginx php-fpm
sudo systemctl start nginx php8.1-fpm

3️⃣ PHP 未与 Web 服务器关联(关键)

Apache 必须启用 PHP 模块

sudo apt install libapache2-mod-php
sudo a2enmod php
sudo systemctl restart apache2

测试文件:

<?php phpinfo(); ?>

放到 /var/www/html/info.php,访问:

http://localhost/info.php

二、PHP 本身配置问题

4️⃣ 错误被隐藏(空白但其实是报错)

编辑 php.ini(路径可能不同):

php --ini

确保:

display_errors = On
error_reporting = E_ALL

Apache 用户通常:

sudo nano /etc/php/8.1/apache2/php.ini

改完重启:

sudo systemctl restart apache2

5️⃣ 文件权限问题

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

三、Nginx 特有坑(很重要)

6️⃣ Nginx 没配置 PHP 解析

/etc/nginx/sites-available/default 中必须有:

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

然后:

sudo nginx -t
sudo systemctl restart nginx

四、快速自测清单 ✅

你可以用这个顺序自查:

php -v                      # PHP 是否安装
curl http://localhost       # Web 服务是否运行
访问 info.php               # PHP 是否执行
查看 /var/log/apache2/error.log

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

  • Ubuntu 版本(22.04?20.04?)
  • 用的 Apache 还是 Nginx
  • 是 网页空白 还是 命令行空白

我可以帮你精确定位。

0 踩