【Docker系列】单独部署nginx容器和php-fpm容器容易忽略的问题

以往大部分时间都是习惯了nginx 和php-fpm在同一台机器上,当在docker把ngnx 和php-fpm单独分成各自的容器以后还是有些细节要注意。

1.运行nginx容器的时候并且加了-v挂载配置文件目录的时候要先把配置文件copy出来 ,否则nginx会启动失败, 因为挂在了配置文件目录, 但是你的宿主机上并没有这些配置。  copy方法就是 先临时启动一个nginx容器, 比如 docker run -d –name tmp-nginx  nginx:latest  。然后docker cp tmp-nignx:/xxx /宿主机的目录  xxx一定是配置文件的目录 ,因为挂载目录可以在宿主机随时修改配置文件, 如果单独挂载配置文件的话,在宿主机修改了以后,不能实时同步到容器里面。
上面这步做完之后, 然后在docker run的时候 要加上 –link php-fpm:php-fpm   php-fpm容器名字:标签   ,当然执行这个之前php-fpm容器要确保已经在运行了,并且开放了9000端口。  –link已经不建议使用了, 最好用docker network 创建一个网络 ,然后把nginx容器和php-fpm容器都添加到这个网络里面。

2.nginx.conf 里面配置fastcgi_pass的时候,默认是127.0.0.1:9000 ,需要改成php-fpm容器的名字:9000 , 比如:fastcgi_pass   php-fpm72:9000

 

 

3.php脚本文件必须在php-fpm容器能访问到的地方,这点很重要。。

4.php-fpm 里面是默认的listen 127.0.0.1:9000 需要改成 0.0.0.0:9000

发表评论

邮箱地址不会被公开。 必填项已用*标注