Nginx+PHP-fpm 出现 File not found( Primary script unknown) - V2EX
V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
imsuwj
V2EX    PHP

Nginx+PHP-fpm 出现 File not found( Primary script unknown)

  •  
  •   imsuwj 2015-05-23 01:18:12 +08:00 9427 次点击
    这是一个创建于 3813 天前的主题,其中的信息可能已经有所发展或是发生改变。
    ```
    server {
    listen 80;
    server_name localhost;
    root /home/user/www;
    index index.html index.htm index.php;
    location ~ \.php$ {
    fastcgi_index index.php;
    fastcgi_pass unix:/run/php-fpm/php-fpm.sock;
    fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;
    }
    ```
    LOG的错误是
    ```
    2015/05/23 00:58:54 [error] 6007#0: *1 FastCGI sent in stderr: "Primary script unknown" while reading response header from upstream, client: 127.0.0.1, server: localhost, request: "GET / HTTP/1.1", upstream: "fastcgi://unix:/run/php-fpm/php-fpm.sock:", host: "127.0.0.1"
    ```
    路径没错。其他文件都可以访问。
    折腾了一天,不知道如何解决。
    Google出来的都是说fastcgi_param配置错误,然而我改了貌似也不行。
    第 1 条附言    2015-06-02 12:55:12 +08:00
    帖子的问题解决办法:
    尝试了许多解决办法,无果,并不是php.ini、nginx.conf、php-fpm.conf都没有问题。我重新安装了nginx和php-fpm,设置什么的还是和原来一样,然后,可以了。。。还是不知道为什么。

    我在留言里说的那个403 Forbidden错误,确实是文件夹的权限问题。我之前只检查了/home/xxx/www这一层的权限,而/home/xxx的权限没有给到http用户。我把http用户加入和桌面用户xxx相同的users组,文件夹权限设置为751。
    9 条回复    2015-06-01 20:16:53 +08:00
    extreme
        1
    extreme  
       2015-05-23 01:34:18 +08:00
    试试这个:
    删掉这行:fastcgi_param SCRIPT_FILENAME
    然后用http://downloads.yzs.me/fastcgi_params的替换已有的fastcgi_params。
    重启Nginx, PHP FPM。
    kslr
        2
    kslr  
       2015-05-23 01:56:01 +08:00 via Android
    看看PHP.INI末尾有没有限制网站目录的
    fdb713
        3
    fdb713  
       2015-05-23 02:47:37 +08:00
    确保nginx是最新版(1.8.x)
    然后
    include fastcgi_params;
    改成
    include fastcgi.conf
    最后nginx -t检查无误后
    service nginx restart/systemctl restart nginx
    leecade
        4
    leecade  
       2015-05-23 03:05:43 +08:00
    no

    检查权限 nginx / php-fpm 是什么用户
    stanhou
        5
    stanhou  
       2015-05-23 12:58:53 +08:00
    你访问哪个文件出现这提示?“其他文件都可以访问”又是什么意思……
    imsuwj
        7
    imsuwj  
    OP
       2015-05-23 17:08:37 +08:00
    @bjdchwr
    @leecade
    php-fpm和nginx的用户都是http,用户组为http
    我把root路径设为/usr/share/nginx/html的话就没有问题了,/usr/share/nginx/html的所有者为root
    但是我想设置root目录到/home/xxx/www 这里,就会403 Forbidden,www文件夹的权限应该设为什么呢?是保持桌面用户还是设成http用户所有?我试过chown -R http:http www,也还是403错误
    bjdchwr
        8
    bjdchwr  
       2015-05-23 18:23:39 +08:00
    @imsuwj 我的命令是这样的

    chown -R www-data:www-data /root <----我用HTTP当文件传输工具用,所以简单暴力的直接定义到root目录下然后施加IP限制

    貌似UID在我这里是33.。。
    ctexlive
        9
    ctexlive  
       2015-06-01 20:16:53 +08:00
    你贴出来的是全部配置吗?
    “我把root路径设为/usr/share/nginx/html的话就没有问题了”-》从这句话描述,怀疑你的配置文件没贴全,有个默认配置在里面。比如 php那段,有个“root html”。他有默认的路径,可能就是/usr/share/nginx/...
    所以如果全局root到别的目录下, 在php段要注释掉这句话,或者手动添加
    ocation ~ \.php$ {
    root /home/user/www;
    fastcgi_index index.php;
    fastcgi_pass unix:/run/php-fpm/php-fpm.sock;
    fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;
    include fastcgi_params;
    }

    还有,你的php-fpm.d/www.conf必须设置正确的
    -----------------------
    user = nginx
    group = nginx
    listen.owner = nginx #关键和Nginx的运行uid一致
    listen.group = nginx #关键和Nginx的运行gid一致
    listen.mode = 0660 #关键必须赋予读写权限。实在不行,可以赋予777权限测试
    ------------------------
    关于     帮助文档     自助推广系统     博客     API     FAQ     Solana     3330 人在线   最高记录 6679       Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 27ms UTC 04:57 PVG 12:57 LAX 21:57 JFK 00:57
    Do have faith in what you're doing.
    ubao msn snddm index pchome yahoo rakuten mypaper meadowduck bidyahoo youbao zxmzxm asda bnvcg cvbfg dfscv mmhjk xxddc yybgb zznbn ccubao uaitu acv GXCV ET GDG YH FG BCVB FJFH CBRE CBC GDG ET54 WRWR RWER WREW WRWER RWER SDG EW SF DSFSF fbbs ubao fhd dfg ewr dg df ewwr ewwr et ruyut utut dfg fgd gdfgt etg dfgt dfgd ert4 gd fgg wr 235 wer3 we vsdf sdf gdf ert xcv sdf rwer hfd dfg cvb rwf afb dfh jgh bmn lgh rty gfds cxv xcv xcs vdas fdf fgd cv sdf tert sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf shasha9178 shasha9178 shasha9178 shasha9178 shasha9178 liflif2 liflif2 liflif2 liflif2 liflif2 liblib3 liblib3 liblib3 liblib3 liblib3 zhazha444 zhazha444 zhazha444 zhazha444 zhazha444 dende5 dende denden denden2 denden21 fenfen9 fenf619 fen619 fenfe9 fe619 sdf sdf sdf sdf sdf zhazh90 zhazh0 zhaa50 zha90 zh590 zho zhoz zhozh zhozho zhozho2 lislis lls95 lili95 lils5 liss9 sdf0ty987 sdft876 sdft9876 sdf09876 sd0t9876 sdf0ty98 sdf0976 sdf0ty986 sdf0ty96 sdf0t76 sdf0876 df0ty98 sf0t876 sd0ty76 sdy76 sdf76 sdf0t76 sdf0ty9 sdf0ty98 sdf0ty987 sdf0ty98 sdf6676 sdf876 sd876 sd876 sdf6 sdf6 sdf9876 sdf0t sdf06 sdf0ty9776 sdf0ty9776 sdf0ty76 sdf8876 sdf0t sd6 sdf06 s688876 sd688 sdf86