docker 连接 webman 错误,已经解决了

owenzhang

已经解决了,得安装php-cli容器
https://gitee.com/owenzhang24/docker_compose_lnmp

问题描述

我是用docker-compose创建LNMP环境
https://gitee.com/owenzhang24/docker_compose_lnmp
这个是我的文件内容

项目搭建成功后,我本地运行镜像,本地127.0.0.1也可以输出nginx的项目index.php的phpinfo内容
比如我另外一篇文章
https://my.oschina.net/owenzhang24/blog/5586043
截图
那说明LNMP环境搭建成功了,
那现在问题了
我开始创建我的webman项目,
截图
进入PHP容器的项目根目录执行php start.php start也是成功的,说明项目也是运行成功了
截图

说明项目也是运行成功了,但我本地浏览器运行http://127.0.0.1:3571 访问不到
nginx容器3571也有映射到本地的3571端口
截图

我想应该是我的nginx配置问题,我的nginx配置如下

  1. docker exec -it lnmp_nginx /bin/sh
  2. vim /etc/nginx/conf.d/default.conf
  3. location / {
        proxy_pass http://127.0.0.1:3571;
        proxy_set_header X-Real-IP $remote_addr;
        proxy_set_header Host $http_host;
    }

    我其他环境,没用用到docker环境,这样nginx配置都是没问题的,
    现在问题是 为什么PHP容器的项目是运行成功了,但我本地还是运行不了

这个问题纠结我2,3天了,还是没解决,好累,我尝试,将项目的env文件
SERVER_LISTEN = http://127.0.0.1:3571
改成本地的局域网ip 的 http://192.168.1.125:3571
或者改成http://0.0.0.0:3571
都不行,很奇怪

请问那位大佬可以帮忙下,有偿的话也是给个100块红包,喝杯下午茶的意思,算帮忙孩纸吧,谢谢!

其实最好是远程看下,我觉得应该是php-fpm的问题,然后我现在把docker-compose文件在添加一个php-cli试下,我真的试过很多方法了,容器通信本地端口,应该没问题的,但我项目3571端口就不行,我觉得还是nginx配置问题,麻烦大佬们!谢谢!

951 3 0
3个回答

nitron

你docker上面不是写着映射的是33571么?
所以到底是3571还是33571,你这暴露跟监听的俗称33571,那你使用3571是肯定不行啊

稚出

1.你的端口一个是33571一个是3571,
2.不是映射nginx容器的端口,是php容器的端口,nginx只需映射80和443端口就行
3.SERVER_LISTEN不用改还是http://0.0.0.0:端口号
4.nginxp配置(文档)

upstream webman {
    server 127.0.0.1:8787;
    keepalive 10240;
}

server {
  server_name 站点域名;
  listen 80;
  access_log off;
  root /your/webman/public;

  location / {
      proxy_set_header X-Real-IP $remote_addr;
      proxy_set_header Host $host;
      proxy_http_version 1.1;
      proxy_set_header Connection "";
      if (!-f $request_filename){
          proxy_pass http://webman;
      }
  }
}

里面的127.0.0.1换成php容器的ip地址,docker inspect 容器 | grep IPAddress 可以查看容器ip

owenzhang

已经解决了,得安装php-cli容器
https://gitee.com/owenzhang24/docker_compose_lnmp
截图

  • owenzhang 2022-11-02

    如果是window本地开发,无需配置nginx配置文件

年代过于久远,无法发表回答
🔝