docker 安装 web 服务器,打开 PHP 是下载模式

2022-09-15 09:29:59 +08:00
 nbweb

docker 新手,想试一下在 docker 里安装 web 服务器,docker+nginx+php+mariadb 。

一,nginx 能正常安装,可以访问 html 页面

docker run \
--name nginx \
-d -p 80:80 \
-v /var/www/html:/usr/share/nginx/html \
-v /usr/local/etc/nginx:/etc/nginx \
 nginx

二,安装 php 如下

docker run \
--name php81 \
-v /var/www/html:/var/www/html \
php:fpm

三,nginx 里的配置,就是 fastcgi_pass 这里,怎么都搞不定

    location ~ \.php$ {
       fastcgi_pass   php81:9000;
       fastcgi_index  index.php;
       fastcgi_param  SCRIPT_FILENAME  /var/www/html/$fastcgi_script_name;
       include        fastcgi_params;
   }

请问一下,两个容器之间怎么通信?就是把 php 的通信端口传到 nginx 里面,让 nginx 可以解析 php ?现在访问 php 文件,是下载模式,不是解析模式。

1093 次点击
所在节点    Docker
7 条回复
xiancai
2022-09-15 10:09:47 +08:00
不在一个命名空间下,没有办法用 php81 解析到目的地址的,可以指定网络模式为 host ,共享主机,将 php81 指定到宿主机
nbweb
2022-09-15 10:17:15 +08:00
@xiancai 我现在把两个容器都改到 host 下面了,fastcgi_pass 127.0.0.1:9000;是这样设置的,还是下载模式,昨天折腾一下午了。

再次请教,谢谢。
nbweb
2022-09-15 10:24:10 +08:00
@xiancai 可以了,谢谢。
wdssmq
2022-09-15 11:08:25 +08:00
# 创建网络
docker network create -d bridge net_web

# run 命令里带上:

--net=net_web \

感觉还是 bridge 模式科学一些,
julyclyde
2022-09-15 12:26:38 +08:00
本来没啥问题,非要加个 docker
iwh718
2022-09-15 12:59:36 +08:00
用 172
julyclyde
2022-09-16 09:09:55 +08:00
@nbweb 下载模式说明 location 匹配没成功
不是 pass 给谁的问题

这是一个专为移动设备优化的页面(即为了让你能够在 Google 搜索结果里秒开这个页面),如果你希望参与 V2EX 社区的讨论,你可以继续到 V2EX 上打开本讨论主题的完整版本。

https://www.v2ex.com/t/880150

V2EX 是创意工作者们的社区,是一个分享自己正在做的有趣事物、交流想法,可以遇见新朋友甚至新机会的地方。

V2EX is a community of developers, designers and creative people.

© 2021 V2EX