当前位置: 首页 > news >正文

Alibaba Cloud Linux 3 +Docker 部署 ThinkPHP6 (宝塔环境)-问题篇

上篇文章介绍了具体的操作步骤,这里总结记录一下部署过程中遇到的问题:

这里注明一下,所有操作容器的命令要在项目目录(tp6)下运行,目录结构如下图:

宿主机(安装宝塔面板)

 ├─ /www/wwwroot/tp6 (项目目录)

      ├─app

      ├─config

      ├─public

      ├─vender

       ... ...

      ├─think

      ├─Dockerfile

      ├─docker-composer.yml

一、Nginx 报 “502 Bad Gateway”

步骤1:检查 PHP-FPM 是否正常运行并监听 9003 端口

首先需要找到运行 PHP-FPM 的容器,并确认其内部端口:

执行命令:

#列出所有运行中的容器

[root@iZ2ze8he63z0zt6g8kiae2Z tp6]# docker ps

#输出结果

CONTAINER ID   IMAGE                       COMMAND                  CREATED       STATUS       PORTS                                                 NAMES
7205b7c455d3   tp6-tp6-php-fpm             "docker-php-entrypoi…"   7 hours ago   Up 7 hours   9000/tcp, 0.0.0.0:9003->9003/tcp, :::9003->9003/tcp   tp6-tp6-php-fpm-1

关键信息:

  • 容器名称(如tp6-tp6-php-fpm-1

  • 端口映射(如9003:9000表示宿主机 9003 映射到容器内 9000 端口)

步骤 2:检查容器内 PHP-FPM 是否监听正确端口

进入容器内部,确认 PHP-FPM 实际监听的端口(通常是 9000,而非宿主机的 9003):

# 进入容器(替换容器ID或名称)
[root@iZ2ze8he63z0zt6g8kiae2Z tp6]# docker exec -it tp6-tp6-php-fpm-1 bash# 在容器内执行,检查PHP-FPM监听端口
root@7205b7c455d3:/var/www/html# netstat -tlnp | grep php-fpm

运行结果:

tcp6       0      0 :::9000                 :::*                    LISTEN      1/php-fpm: master p 

根据运行结果,就可以确定Docker内部实际监听的端口是9000

在我们的Docker中,有一段代码如下图红框中部分就是用来修改 PHP-FPM 的监听端口,从默认的 9000 端口改为 9003 端口。

  • s/listen = 9000/listen = 9003/ 是替换规则,意思是将所有 "listen = 9000" 字符串替换为 "listen = 9003" ,这里是完全匹配的原则。

再看看容器内的www.conf中的内容,

# 进入容器(替换容器ID或名称)
[root@iZ2ze8he63z0zt6g8kiae2Z tp6]# docker exec -it tp6-tp6-php-fpm-1 bash//编辑www.conf文件
root@7205b7c455d3:/usr/local/etc/php-fpm.d# vim /usr/local/etc/php-fpm.d/www.conf

如下图:

这里可以看到文件 中是 listen = 127.0.0.1:9000,按照匹配规则,肯定是修改不掉这部分的,所以,我们先临时修改一下(即:进入www.conf文件,修改内容 为 listen = 9003 保存退出)

ctrl + PQ键退出容器

# 重启容器(会自动加载修改后的配置)
[root@iZ2ze8he63z0zt6g8kiae2Z tp6]# docker restart tp6-tp6-php-fpm-1

等待5秒,再次进入容器,检查PHP-FPM监听的端口

# 进入容器(替换容器ID或名称)
[root@iZ2ze8he63z0zt6g8kiae2Z tp6]# docker exec -it tp6-tp6-php-fpm-1 bash# 在容器内执行,检查PHP-FPM监听端口
root@7205b7c455d3:/var/www/html# netstat -tlnp | grep php-fpm

运行结果:

还是9000,可能存在多个配置文件:

#容器内直接搜索配置文件中的 listen 配置,查看都有哪些配置文件监听了9000端口
grep -r "listen = " /usr/local/etc/php-fpm.d/

运行结果:

这里看到以.conf结尾的文件有两个一个www.conf,一个是zz-docker.conf,zz-docker.conf文件中监听了9000端口,我们把这个也修改一下试试。

#修改配置文件listen = 9000 为 listen = 9003
vim /usr/local/etc/php-fpm.d/zz-docker.conf

退出容器,重启容器

ctrl + PQ键退出容器

#重启容器

docker restart tp6-tp6-php-fpm-1

等待5秒,再次进入容器,检查PHP-FPM监听的端口

​
# 进入容器(替换容器ID或名称)
[root@iZ2ze8he63z0zt6g8kiae2Z tp6]# docker exec -it tp6-tp6-php-fpm-1 bash# 在容器内执行,检查PHP-FPM监听端口
root@7205b7c455d3:/var/www/html# netstat -tlnp | grep php-fpm​

运行结果如下图:

监听接口正确了,我们再尝试打开网址,这时候显示404错误。

十月一了,放假休息,放假回来我再补充404错误的解决步骤!

http://www.dtcms.com/a/426739.html

相关文章:

  • LeetCode 刷题【93. 复原 IP 地址】
  • Python类和对象----实例属性,类属性(这是我理解类和对象最透彻的一次!!)
  • 文档解析Logics-Parsing
  • 网站设计报价.doc网页端
  • IDEA中Add New Configuration找不到Tomcat
  • 学习笔记092——Windows如何将 jar 包启动设置成系统服务
  • React前端框架有哪些?
  • 文昌市建设局网站无锡工厂网站建设
  • 龙岗网站建设-信科网络深圳房地产论坛家在深圳
  • Ceph 分布式存储学习笔记(三):块存储和对象存储管理
  • Ubuntu22.4安装Samba服务器
  • 服务器安装Java与nginx与nacos
  • Navicat导入Excel至瀚高数据库
  • 网站的制作与调试微网站服务合同
  • JavaScript调试工具有哪些?常见问题与常用调试工具推荐
  • 网站项目建设策划方案超级外链发布
  • 使用 Lens连接阿里云k8s集群
  • UNIX下C语言编程与实践24-UNIX 标准文件编程库:无格式读写函数族(字符、行、块)的使用
  • mysql中的日志
  • Spring Cloud Nacos 配置中心详解:从基础使用到 MyBatis 整合(含多文档配置)
  • 去出海做产品吧,亚马逊爆款产品 属于电子类的消费产品。用全志A733完胜--
  • 设计配色网站租房合同范本下载word
  • 安卓生态进化史:从手机系统到全场景智能
  • 自适应网站开发工具网站优化排名提升
  • 中国建材网:重构建材行业生态的数字力量
  • 【有源码】基于Hadoop+Spark的豆瓣电影数据分析与可视化系统-基于大数据的电影评分趋势分析与可视化系统
  • 模板匹配算法原理
  • Matplotlib子图布局与响应式设计实战:GridSpec与CSS框架深度结合
  • 【图像处理进阶】边缘检测算法深度优化与复杂场景实战
  • yolov12 onnx导出tensorrt