linux 路由访问不了php文件,linux系统nginx服务器不能访问php文件问题

今天在部署网站时html能访问,php文件不能访问,点击浏览器提示下载。

配置Nginx服务器之后,打开域名,是直接下载而不是直接打开网页,是因为配置的Nginx无法解析PHP的原因。

根据我出现的问题,我的解决办法如下:

1、打开nginx.conf配置文件,

b96b843e57af3041064a0037c98aa591.png

那个127.0.0.1的端口号9000是nginx与fastcgi交互的id和端口号,也就是fastcgi监听的端口。

location ~ .php$ 表示匹配到php文件就进行fastcgi操作。

location / {}表示请求根路径时, 都会走这里。第一个uri表示index.php(入口文件),第二个

uri表示index.php(入口文件),第二个uri表示真实路径,/index.php 表示前面都没有的话访问index.php,$args:所有参数。如果要处理url美化时,必须要配置这里。

2.检查127.0.0.1:9000端口是否处于监听状态,执行 netstat -antp | grep 9000 ,如果没有被监听,说明需要启动。

3.执行 php-cgi -b 127.0.0.1:9000 &   启动之后,在执行netstat -antp结果:

50747c7da81f8c4c6bf9a9118fab634d.png

4。重启nginx,systemctl restart nginx 问题解决。

5,如果出现 No input file specified.报错,则把/script修改为$document_root

如果thinkphp5这样支持”/index.php/Home/Index/index”这种网址是这么配置的。

# 典型配置

location ~ \.php$ {

root html;

fastcgi_pass 127.0.0.1:9000;

fastcgi_index index.php;

fastcgi_param SCRIPT_FILENAME $DOCUMENT_ROOT$fastcgi_script_name;

include fastcgi_params;

}

# 修改第1,6行,支持pathinfo

location ~ \.php(.*)$ { # 正则匹配.php后的pathinfo部分

root html;

fastcgi_pass 127.0.0.1:9000;

fastcgi_index index.php;

fastcgi_param SCRIPT_FILENAME $DOCUMENT_ROOT$fastcgi_script_name;

fastcgi_param PATH_INFO $1; # 把pathinfo部分赋给PATH_INFO变量

include fastcgi_params;

}

  • 0
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值