分享主题:linux,nginx,php,mysql

docker nginx无法解析php,直接把php文件下载了,File not find提示找不到页面

docker教程 adminqaz 73℃ 0评论 现在加入小程序俱乐部QQ群:483987340

架设nginx, php, mysql还是有许多坑的,
即使使用官方的镜像,
也有好多问题。

其中一个是
nginx容器能够正常访问html文件,
但是无法解析php类型的文件,
主要有以下一些原因,
有需要的朋友可以参考:

docker php7.4.1

1) 直接下载php文件

访问php脚本时,
把php文件下载了,

原因是nginx的配置文件里,
没有正确配置php的解析项。

在lnmp环境里,
nginx配置解析php-fpm时,
通常使用 127.0.0.1:9000
但是在docker容器里,
却不一定,
除非你的php和nginx在同一个容器里。

如果在不同的容器,
nginx配置文件中需要写成类似下面的
php:9000
其中php表示你的php(php-fpm)容器名称
还要使用–network指定nginx和php使用相同的网络。

2) nginx无法upstream

提示下面错误
*10 connect() failed (111: Connection refused) while connecting to upstream

这个原因是php(php-fmp)容器没有运行,或者端口错误。

一些朋友不使用官方的php镜像,
而是使用自己制作的php-fpm镜像,
启动php容器后,
会自动退出,
nginx就无法upstream到php-fpm去解析。

解决的方法是:
使用docker ps -a
查看你的php-fpm容器状态,
看看是up 还是exit,
端口是否跟nginx配置文件中的一致(比如9000端口),

如果php-fpm容器是exit状态,
需要重启php-fpm容器。

3) php容器找不到页面文件

还有一种情况,
nginx容器能够解析html,
但是upstream到php-fpm容器时,
提示找不到文件,
File not find

出现这种情况的原因是:
nginx容器和php-fpm容器,
使用了不同的html映射目录或数据卷。

解决的方法是:
nginx容器的html映射到宿主目录,
在php-fpm(php)容器也要做相同的映射。

猛击这里
观看子恒老师《零基础lnmp安装指南》系列
了解实现过程和下载相关源代码

秦子恒公众号

来源:秦子恒博客,欢迎转载分享,请保留出处

docker nginx无法解析php,直接把php文件下载了,File not find提示找不到页面链接:https://www.qinziheng.com/docker%e6%95%99%e7%a8%8b/8850.htm

现在就加入微信开发QQ群2:483987340,跟同行探讨微信公众平台开发。群满就关闭,你得等到下一个群开通才能加入……

喜欢 (0)
发表我的评论
取消评论
表情

Hi,您需要填写昵称和邮箱!

  • 昵称 (必填)
  • 邮箱 (必填)
  • 网址