这篇文章给大家介绍Docker中怎么部署LNMP环境,内容非常详细,感兴趣的小伙伴们可以参考借鉴,希望对大家能有所帮助。整个流程:客户端http请求服务器80端口,该端口被映射到Nginx容器80端口,进入Nginx处理。Nginx分析请求,如果是静态资源,直接服务器读取内容;如果是PHP脚本,通过PHP容器调用服务器获取脚本,然后FastCGI处理。FastCGI解析PHP脚本,必要时访问MySQL容器读写数据。具体步骤Dockerfile:MySQL镜像
继承自官方的MySQL5.7
镜像,相对独立解耦的模块,无其它额外处理,见mysql/Dockerfile。PHP镜像
继承自官方的centos7
镜像,PHP源码按需编译安装,方便后续扩展管理或者配置。通过sed
修改php.in
监听所有9000
端口(此处为关键!!因为提供Nignx容器访问支持PHP脚本,PHP容器对于Nginx容器不是localhost
),完整见php7/Dockerfile。Nginx镜像
继承自官方的centos7
镜像,Nginx源码按需编译安装,方便后续更改或者配置。通过sed
修改nginx.conf
增加对PHP脚本的支持,完整见nginx/Dockerfile。构建镜像:启动容器:整个流程可以看到,Nginx、PHP、MySQL三者的关系:
Nginx容器---->
PHP容器,PHP容器---->
MySQL容器。即容器之间是有关联的,两两容器的数据通信通过容器启动命令docker run
加参数--link
解决。测试 PHP & MySQL:vi /var/www/html/test.php客户端浏览:
http://192.168.8.36/test.php
![Docker运行PHP及输出MySQL表][1]
[1]: https://cache.if98.com/upload/information/20210524/347/781130.pngQ&ANginx如何支持PHP脚本?
Nginx容器启动时候,通过--link php7:php7
参数共享PHP容器的网络,配置nginx.conf
文件(见nginx/Dockerfile),当处理PHP脚本时,转给PHP容器解析:PHP如何读取MySQL数据?
PHP容器启动时候,通过--link mysql:mysql
参数,与MySQL容器共享网络,类似两者处于同一台机器,因此PHP代码连接的时候使用$conn = new PDO('mysql:host=mysql;port=3306;dbname=mysql;charset=utf8', 'root', '123456');
就可以连接上MySQL(其中host=mysql
的mysql
为MySQL容器的名称,见启动MySQL容器docker run --name
指定的值)。关 香港云主机于Docker中怎么部署LNMP环境就分享到这里了,希望以上内容可以对大家有一定的帮助,可以学到更多知识。如果觉得文章不错,可以把它分享出去让更多的人看到。
相关推荐: Win7重装系统提示“Windows安装无法继续”怎么解决
这篇文章主要介绍“Win7重装系统提示“Windows安装无法继续”怎么解决”的相关知识,小编通过实际案例向大家展示操作过程,操作方法简单快捷,实用性强,希望这篇“Win7重装系统提示“Windows安装无法继续”怎么解决”文章能帮助大家解决问题。在提示“Wi…
免责声明:本站发布的图片视频文字,以转载和分享为主,文章观点不代表本站立场,本站不承担相关法律责任;如果涉及侵权请联系邮箱:360163164@qq.com举报,并提供相关证据,经查实将立刻删除涉嫌侵权内容。