centos docker容器化部署nginx php项目(详细版)

   日期:2024-12-26    作者:msffu 移动:http://mip.riyuangf.com/mobile/quote/51223.html

一、nginx和php的一些原理

1、nginx 是一个 web 服务器,它只能处理静态文件,无法处理 PHP Python 等具体程序语言的请求。所以,原理是这样,用户统一先请求到 nginx,nginx 会再把请求转发给 php-fpm。

2、php-fpm是处理 PHP 请求的一个东西,实现了 FastCGI 协议的一个东西,它叫PHP FastCGI 管理器。

3、 FastCGI 是什么?是一种与 Web 服务器通信的协议,规定了要传什么数据,具体什么格式。

二、前提条件

centos,安装了docker环境,当然你也可以安装宝塔,他俩不冲突,宝塔里可以方便的看到docker的一些东西。

php 镜像有fpm和cli两个版本。php-cli是命令行版本,而php-fpm是作为apache或者nginx等服务器软件处理PHP文件的扩展。这里选择fpm。

三、下载php和nginx镜像

 

四、创建并运行PHP容器

 

给容器取个名字
php容器的端口默认是9000,映射到宿主机的9000端口
把宿主机的PHP源代码目录 挂载到容器内的 。未来在容器内访问 就相当于访问宿主机的 ,容器的删除不会影响到源代码。
后台静默运行
镜像名

:报错Error response from daemon: driver failed programming external connectivity on endpoint XXX(端口映射或启动容器时报错

解决方法:输入指令 systemctl restart docker 重启docker服务及可重新生成自定义链DOCKER

查php容器在docker的内网地址

docker inspect 获取Docker容器或者Docker镜像的元数据

 

我的是,这个如果你安装了宝塔的话也可以再宝塔里看到,这个ip下边要用。

也可以直接通过查看元数据里的字段来获取ip

 

五、创建并运行nginx容器

1、 创建一个存放配置文件的目录。这个目录等下要挂载到容器里。

 

2、 进入目录并创建一个配置文件,并在里面填入如下内容。比如 ,一个站点一个配置文件。

 

创建并启动 nginx 容器

 

-v /docker/www:/www 把宿主机的源码目录 /docker/www 挂载到容器内的 /www 目录。容器内访问 /www 就相当于访问 /docker/www
-v /docker/nginx/conf.d:/etc/nginx/conf.d 把宿主机的配置目录,挂载到容器内nginx的配置目录。nginx 会自动去加载这目录内所有的配置文件。/opt/docker/nginx/conf.d 里建议每个站点对应一个配置文件。

六、验证

1、 看是否运行了刚才的两个容器

2、 目录里上传ThinkPHP的最新代码

3、访问你的域名或IP看是否可以访问。注意我绑定了三个域名,localhost可以让我通过ip直接访问到

七、链接宿主机mysql

只需要注意ip不是127.0.0.1就可以了,ip为172.17.0.1

感兴趣的可以了解另一篇文章

《Docker容器的程序连接宿主机的MySQL》

八、安全


特别提示:本信息由相关用户自行提供,真实性未证实,仅供参考。请谨慎采用,风险自负。


举报收藏 0评论 0
0相关评论
相关最新动态
推荐最新动态
点击排行
{
网站首页  |  关于我们  |  联系方式  |  使用协议  |  隐私政策  |  版权隐私  |  网站地图  |  排名推广  |  广告服务  |  积分换礼  |  网站留言  |  RSS订阅  |  违规举报  |  鄂ICP备2020018471号