阿里云
阿里云多端小程序中小企业获客首选
发表主题 回复主题
  • 739阅读
  • 0回复

[环境部署]使用Docker快速搭建Nginx PHP-FPM环境

级别: 论坛版主
发帖
371
云币
447

fIx|0,D&7L  
实战 \KpJIHkBRy  
1、下载nginx官方镜像和php-fpm镜像 KU+u.J  
docker pull nginx '5T:*Yh  
docker pull bitnami/php-fpm HH(2  
E'8XXV^I?P  
'{JMWNY  
笔者未进行更改docker源,依然是官方源。 }L{GwiDMDl  
当然,你可以使用中国源。 V~o'L#a  
l!j=em@  
2、使用php-fpm镜像开启php-fpm应用容器 +\PLUOk  
docker run -d --name myFpm -p  -v /var/www/html:/usr/share/nginx/html bitnami/php-fpm /!"sPtIh  
-d : 该参数为后台运行之意 4_CXs.v1  
-v : 指定宿主机与容器的映射关系。/var/www/html为宿主机的项目目录(定义的),/usr/share/nginx/html为nginx服务器项目默认的路径。 Gh{9nM_\"  
3、使用nginx镜像开启nginx应用容器 UAI'tRY N_  
docker run -d --name myNginx -p 8080:80 -v /var/www/html:/usr/share/nginx/html nginx ;uZq_^?:9&  
-p : 该参数设置端口对应的关系。所有访问宿主机8080端口的URL会转发到nginx容器的80端口。 2ss*&BR.  
4、查看对应的IP信息 @WKJ7pt`'N  
首先查看是否启动成功 ^q}phj3E  
docker ps -a )T(1oK(g  
5HAAaI  
TPN1Rnt0`  
可以看到,上述在STATUS一栏中显示UP,其含义为正在运行。 YB{'L +Wbw  
8k Sb92  
查看IP信息 ldaT: er9  
docker inspect myFpm | grep "IPAddress" raP9rEs  
<\ ".6=E#W  
RM25]hx  
5、修改nginx的相关配置 -7I %^u  
在容器中是没有vim命令的,所以不能在容器中直接修改配置文件。所以我们必须通过变通的方式去解决这个问题,否则只能在每个容器中安装vim。 #K> Ue>hx  
[A;0I jKam  
首先登录到对应的容器中,查看配置信息路径,这在之后修改时会用到。 X4bZ4U*  
docker exec -it myNginx /bin/bash 8*]dA ft  
@_#]7  
$D*Yhv!/  
-i : –interactive,交互模式。 @[ '?AsO  
-t : –tty,开启一个伪终端。 (. $e@k=  
/bin/bash : 必须写,否则会报错。这是开始伪终端时,进入bash界面,也就是命令行界面。 _tnoq;X[  
查看对应的配置文件位置 QA~Lm  
jyRz53  
/etc/nginx/conf.d/default.conf HNX/#?3  
s*e1m%  
y(**F8>?xE  
退出命令行,不要使用exit,因为exit会让容器停止。这里使用ctrl + p + q来退出容器。 !3*%-8bp  
使用专用的复制命令将配置文件复制到宿主机,然后在宿主机进行编辑(这就是变通的方法) 7z+Ngt' !  
OK:YnSk"  
docker cp myNginx:/etc/nginx/conf.d/default.conf ./default.conf (%]M a  
这里用到了上一步查询到的配置文件路径信息 |@MGGAk  
'81WogH:  
在宿主机修改配置文件的php部分,内容如下: OL@' 1$/A  
location ~ \.php$ { #4& <d.aw'  
   fastcgi_pass   172.17.0.2:9000; R+=Xr<`%U|  
   fastcgi_index  index.php;  pm*i!3g'  
   fastcgi_param  SCRIPT_FILENAME  /usr/share/nginx/html$fastcgi_script_name; P#2#i]-  
   fastcgi_param  SCRIPT_NAME      $fastcgi_script_name; B,{Q[  
   include        fastcgi_params; W=!D[G R  
} chU,));F  
再次使用复制命令将其复制到容器中,然后再次进入容器中,将nginx配置文件重新载入 8-Z|$F"  
docker cp ./default.conf myNginx:/etc/myNginx:/etc/nginx/conf.d/default.conf O6\t_.  
进入到nginx容器中重新载入配置文件 hh^_Z| 5  
docker exec -it myNginx /bin/bash IOH6h=  
service nginx reload TmgSV#G  
成功了 ek0,@Vg9  
2D{`AJ  
转载:Linux运维日志
本人不是云栖社区工作人员。
无论您在使用中遇到什么问题,不要出言不逊!谢谢合作!
发表主题 回复主题
« 返回列表上一主题下一主题

限100 字节
如果您提交过一次失败了,可以用”恢复数据”来恢复帖子内容
 
验证问题: 85 + 15 = ?
上一个 下一个
      ×
      全新阿里云开发者社区, 去探索开发者的新世界吧!
      一站式的体验,更多的精彩!
      通过下面领域大门,一起探索新的技术世界吧~ (点击图标进入)