“Ubuntu 下 PHP‑FPM 无法解析(访问 PHP 文件变成下载 / 空白 / 404 / 源码)”是非常常见的问题,通常不是 PHP 本身坏了,而是 Web 服务器没有把 PHP 请求交给 PHP‑FPM。下面按最常见原因 → 排查步骤给你一个系统清单。
location / {
root /var/www/html;
index index.html;
}
❌ 没有 PHP 处理规则
✅ 正确示例(Nginx + PHP‑FPM):
location ~ \.php$ {
include snippets/fastcgi-php.conf;
fastcgi_pass unix:/run/php/php8.2-fpm.sock;
}
修改后:
sudo nginx -t
sudo systemctl reload nginx
systemctl status php8.2-fpm
如果没运行:
sudo systemctl start php8.2-fpm
sudo systemctl enable php8.2-fpm
查看 sock 是否存在:
ls /run/php/
说明 Web 服务器没识别 PHP
location ~ \.php$proxy_fcgi / php_modulesudo apt install php8.2-fpm libapache2-mod-fcgid
sudo a2enmod proxy_fcgi setenvif
sudo a2enconf php8.2-fpm
sudo systemctl restart apache2
错误示例:
libapache2-mod-php(但用的是 FPM)ls -l /run/php/php8.2-fpm.sock
www.conf 中:
listen.owner = www-data
listen.group = www-data
修改后:
sudo systemctl restart php8.2-fpm
/var/www/html/info.php
<?php
phpinfo();
访问:
http://服务器IP/info.php
tail -n 50 /var/log/nginx/error.log
tail -n 50 /var/log/php8.2-fpm.log
你可以直接贴:
我可以一步一步帮你改到能解析 ✅