发布于 1970-01-01 08:00
  • 5 个回答
    • 3个步骤实现关联:

      1. nginx容器启动时候,通过--link参数,--link php-fpm:php-fpm,共享php-fpm容器的网络。

      2. nginx.conf配置,设置代理,fastcgi_pass php-fpm:9000;#此处为关键!!其中php-fpm为php容器的名称,见启动php容器docker run --name指定的值。

      3. php容器监听所有9000的访问listen = 9000,默认只监听本机listen = 127.0.0.1:9000 <---------估计你是这步导致访问不了php容器

      推荐一下这篇文章《Docker多容器部署LNMP环境》,里面有nginx/php/mysql三者间关系及容器通信方法分析

      2022-11-17 03:23 回答
    • 直接访问nginx就能访问到,nginx会转发请求。

      2022-11-17 03:23 回答
    • 你的配置中:

      fastcgi_param  SCRIPT_FILENAME  /var/www/html/$fastcgi_script_name;
      

      改成:

      fastcgi_param  SCRIPT_FILENAME  /var/www/XX/$fastcgi_script_name;

      试试;

      2022-11-17 03:23 回答
    • 看下我写的这篇文章 https://icewing.cc/docker-use...

      简单的说,Nginx 通过 fastcgi_param 传递各种参数给 FPM 进程,而其中非常重要的一行就是 fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;

      SCRIPT_FILENAME 指定了要执行的 php 文件的路径,这个路径一定是在 fpm 容器中能够找到的路径,而不是宿主机中的路径。给你一个简单的解决方案——如果宿主机中的目录是 /var/www/html,那么容器中的路径也改名叫 /var/www/html ,这样就不会出现容器内外 php 文件路径不一致的问题了。

      2022-11-17 03:23 回答
    • 首先,容器间连接使用的是--link参数,而不是通过IP,也不是通过-p映射端口。
      其次,Nginx搭配PHP的最佳实际是,两个容器挂载相同的数据卷(也就是代码目录)。

      建议先熟悉一下Docker的基础使用方法。
      https://docs.docker.com/

      2022-11-17 03:23 回答
    撰写答案
    今天,你开发时遇到什么问题呢?
    立即提问
    PHP1.CN | 中国最专业的PHP中文社区 | PNG素材下载 | DevBox开发工具箱 | json解析格式化 |PHP资讯 | PHP教程 | 数据库技术 | 服务器技术 | 前端开发技术 | PHP框架 | 开发工具 | 在线工具
    Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved 京公网安备 11010802041100号 | 京ICP备19059560号-4 | PHP1.CN 第一PHP社区 版权所有