我不生产代码
我只是代码的搬运工

Docker容器,部署Nginx+PHP环境,php文件不执行返回404 Not Found

今天在docker容器中部署nginx + php环境,在分别安装好nginx、php容器后,发现在浏览器中访问php文件时,返回File not found.,并且状态码为404,但是返回的内容并不是 nginx 配置的404页面。

在网上查询了一下,有的说需要将  server 下面的 location 中的

fastcgi_param  SCRIPT_FILENAME  /scripts$fastcgi_script_name;

改为:

fastcgi_param  SCRIPT_FILENAME  $document_root$fastcgi_script_name;

然而改为以后重启 nginx 并没有什么效果,仍然返回 File not found. 。

最后在一篇文件 docker配置nginx+php各种坑 中发现,说是高版本 nginx 不再支持 $document_root ,需要把 $document_root 改为 php 容器内web文件的路径,当把 nginx 配置文件的 $document_root 改成 php 容器中 web文件 的绝对路径后重启 nginx,php文件居然真的可以正常访问了。

容器中安装的 nginx 容器版本为 1.19.2,在 nginx 的配置文件 fastcgi_params 中,存在变量 $document_root,所以还不太清楚是否真的高版本 nginx 不再支持 $document_root 变量还是需要在nginx 容器的配置文件中写死 php 容器中web文件的绝对路径。

参考文件:http://www.cocoachina.com/articles/33348

本文章为本站原创,如转载请注明文章出处:https://www.sviping.com/archives/42

分享到:
上一篇: 二叉树算法的PHP实现 下一篇: docker-compose搭建 Nginx + PHP + MySQL 环境
12