新 location 指定新服务器路径 可以访问 html 但无法访问 php

文章讲述了作者在部署HTTP服务器并使用Nginx时遇到的问题,即在/G1目录下的PHP文件无法正常访问。作者发现原因是Nginx的默认配置只匹配根目录的PHP文件。为了解决这个问题,作者在/G1的location块内添加了子location来匹配PHP文件,并调整了fastcgi_param配置,从而解决了404错误,使得/G1路径下的PHP文件可以正常运行。
摘要由CSDN通过智能技术生成

今天部署了一个 http 服务器,使用了 nginx, 不是非常熟悉,按照网上一些文章顺利将 nginx 安装完毕,想增加一个 location 来重定向项目路径上的php代码,按照一些配置说明,增加下述配置即可:

        location /G1 {
                alias /data/xxxxxx.G1/Server/;
                index index.html index.html;
        }

但是发现 /G1 目录下的 index.html 能正常访问,但是该路径下的 test.php 出现 404 错误码,翻了一些资料得知,应该被下述规则成功匹配:

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

这个是 nginx 的默认配置,在根目录下/ 的php文件访问时没问题的,但是在/G1下就无法访问其php文件,主要原因时被上述规则匹配,而该规则只能匹配根目录/下的php文件,所以如果将php文件部署到 /G1 下,则出现 404 找不到的错误,查找了很多资料,终于找到正确的配置:

        location /G1 {
                alias /data/xxxxxx.G1/Server/;
                index index.html index.html;
                location ~ \.php$ {
                        include snippets/fastcgi-php.conf;
                        fastcgi_param SCRIPT_FILENAME $request_filename;
                        fastcgi_pass unix:/var/run/php/php7.3-fpm.sock;
                }
        }

是需要在 /G1 下增加一个子的 location 去匹配 php 文件,而且还必须 增加 fastcgi_param,

这个也许是一个非常简单的问题,对于熟悉 nginx的运维老司机,但由于不熟悉 nginx 的小白来说,写下这篇文章记录下,痛苦的解决问题过程,也希望能够帮助到一些遇到同样问题的朋友。

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值