You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

localhost子域名Nginx部署WordPress遇File not found问题求助

解决Nginx + PHP-FPM的“Primary script unknown”错误

这个问题我踩过好几次坑了,核心就是Nginx没法把正确的脚本路径传给PHP-FPM,导致PHP找不到要执行的文件,浏览器就会返回“File not found”。结合你给出的日志和配置片段,咱们一步步来排查修复:

先搞懂错误本质

日志里的*Primary script unknown*意思很明确:PHP-FPM收到了Nginx转发的请求,但不知道要执行哪个PHP文件——说白了就是路径没传对。

最常见的配置问题(你的配置里大概率缺这些)

从你给的配置片段来看,你的server块缺少两个关键配置:

1. 必须指定网站根目录

首先要给server块加上root指令,告诉Nginx你的网站文件存在哪里:

server {
    listen 80;
    server_name wasob.localhost;
    # 替换成你实际的网站根目录,比如/var/www/wasob/public
    root /path/to/your/web/root;
    # 设置默认首页,优先找index.php
    index index.php index.html index.htm;

2. 正确配置FastCGI的脚本路径

处理PHP请求的location块里,一定要正确设置fastcgi_param SCRIPT_FILENAME,这是告诉PHP-FPM要执行的脚本完整路径:

# 匹配所有.php结尾的请求
    location ~ \.php$ {
        fastcgi_pass 127.0.0.1:9000;
        fastcgi_index index.php;
        # 重点!用$document_root(就是上面的root目录)拼接请求的脚本路径
        fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;
        # 加载Nginx默认的FastCGI参数(比如请求头这些)
        include fastcgi_params;
    }
}

这里要注意:绝对不能直接写死路径,必须用$document_root变量,不然换目录或者多站点的时候会出问题。

额外检查:文件权限

就算路径配置对了,如果Nginx或PHP-FPM的运行用户没权限读取文件,也会报错。可以用下面的命令调整权限(假设运行用户是www-data):

# 把目录和文件的所有者改成www-data
chown -R www-data:www-data /path/to/your/web/root
# 设置合理的读写权限
chmod -R 755 /path/to/your/web/root

最后重启服务生效

修改完配置后,一定要重启Nginx和PHP-FPM让配置生效:

sudo systemctl restart nginx
# 不同PHP版本命令可能不一样,比如php7.4-fpm、php8.1-fpm
sudo systemctl restart php-fpm

一般按照上面的步骤操作,这个错误就能解决了——毕竟大部分情况都是路径配置不对或者权限问题。

内容的提问来源于stack exchange,提问作者user3681312

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.05.26 08:30:38