V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
V2EX 提问指南
yzql2018
V2EX  ›  问与答

nginx 转发 PHP -fpm 403 错误求解惑

  •  1
     
  •   yzql2018 · 2022-12-15 15:03:03 +08:00 · 851 次点击
    这是一个创建于 734 天前的主题,其中的信息可能已经有所发展或是发生改变。

    Nginx 下虚拟主机配置如下:

    server {
            listen        80;
            server_name  ectest.local.com;
            root   "D:/Dropbox/CodeRoot/Shop/ecstore-V0.8/";
    
            location / {
                index index.php index.html error/index.html;
                error_page 400 /error/400.html;
                error_page 403 /error/403.html;
                error_page 404 /error/404.html;
                error_page 500 /error/500.html;
                error_page 501 /error/501.html;
                error_page 502 /error/502.html;
                error_page 503 /error/503.html;
                error_page 504 /error/504.html;
                error_page 505 /error/505.html;
                error_page 506 /error/506.html;
                error_page 507 /error/507.html;
                error_page 509 /error/509.html;
                error_page 510 /error/510.html;
                include D:/Dropbox/CodeRoot/Shop/ecstore-V0.8//nginx.htaccess;
                autoindex  on;
            }
    		
    		
            location ~ \.php(.*)$ {
                fastcgi_pass   127.0.0.1:9004;
                fastcgi_index  index.php;
                fastcgi_split_path_info  ^((?U).+\.php)(/?.+)$;
                fastcgi_param  SCRIPT_FILENAME  $document_root$fastcgi_script_name;
                fastcgi_param  PATH_INFO  $fastcgi_path_info;
                fastcgi_param  PATH_TRANSLATED  $document_root$fastcgi_path_info;
                include        fastcgi_params;
            }
    }
    
    

    这个配置解析正常的没有 get 参数的网址没有问题。现在有一个后台地址: http://ectest.local.com/shopadmin/index.php?ctl=passport 。正常情况下这个地址应该解析到后台的 passport 控制器文件。

    现在访问上面的网址,会直接报 403 Forbidden 错误,在 index.php 程序里打印输出也无法输出。开了 Nginx 错误日志,日志里面也没有 403 的信息,只有 access.log 有 403 请求错误。

    请教各位大佬应该如何改动虚拟主机配置使得这个网址正确解析。

    5 条回复    2022-12-19 09:37:02 +08:00
    bjzhush
        1
    bjzhush  
       2022-12-15 16:50:59 +08:00
    第一步先把 index.php 内容 换成 exit ('hi ); 根据这个能定位到是 NGINX 报 403 还是 PHP 报 403
    yzql2018
        2
    yzql2018  
    OP
       2022-12-15 17:07:10 +08:00 via iPhone
    @bjzhush 试过了,完全进不去 index.php 文件,我感觉是 nginx location 配置有问题,但又不知道怎么修改
    bjzhush
        3
    bjzhush  
       2022-12-15 23:14:02 +08:00 via iPhone
    用编辑器编辑啊,什么叫进不去呢?
    yzql2018
        4
    yzql2018  
    OP
       2022-12-16 09:33:18 +08:00 via iPhone
    @bjzhush 我是说过访问这个网址,完全运行不到 index.php 里面去
    julyclyde
        5
    julyclyde  
       2022-12-19 09:37:02 +08:00
    nginx 开 debug 日志吧
    关于   ·   帮助文档   ·   博客   ·   API   ·   FAQ   ·   实用小工具   ·   3264 人在线   最高记录 6679   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 32ms · UTC 11:47 · PVG 19:47 · LAX 03:47 · JFK 06:47
    Developed with CodeLauncher
    ♥ Do have faith in what you're doing.