小鱼
小鱼
发布于 2021-07-06 / 2484 阅读 / 0 评论 / 1 点赞

Docker部署 nginx + php 环境

DOCKER中部署NGINX服务

一、Docker 安装PHP

和安装nginx一样,我们可以先通过命令查找镜像

docker search php

image.png

因为我自己阿里云服务器上已安装php 7.2.11版本,所以我选择了7.2.11-fpm,其他版本的可自行选择

docker pull php:7.2.11-fpm

安装完成后查看镜像列表

docker images

image.png

使用php镜像开启php-frm应用容器

docker run -p 9081:9000 -d --name myphp-fpm -v /home/nginx/www:/usr/share/nginx/html php:7.2.11-fpm

参数说明
-p 9081:9000:将容器的9000端口映射到主机的9081端口
-d 后台运行(守护进程)
--name myphp-fpm:将容器命名为myphp-fpm
-v 将主机中当前目录下的/home/nginx/www挂载到容器的/usr/share/nginx/html目录

查看容器启动情况,看到nginx和php都运行成功

docker ps -a

image.png

二、修改nginx相关配置

进入到nginx-server容器

docker exec -it nginx-server bash
cd /etc/nginx/conf.d/
ls -lat

image.png
注意要使用ctrl + p + q退出容器,要是使用exit的话,容器会停止

由于在容器编辑配置文件比较麻烦,可以先把文件复制到宿主机,然后在宿主机进行编辑

docker cp nginx-server:/etc/nginx/conf.d/default.conf default.conf

在宿主机修改配置文件的php部分,内容如下:

    location ~ \.php$ {
        fastcgi_pass   172.17.0.4:9000; 
        fastcgi_index  index.php;
        fastcgi_param  SCRIPT_FILENAME  /usr/share/nginx/html$fastcgi_script_name;
        fastcgi_param  SCRIPT_NAME      $fastcgi_script_name;
        include        fastcgi_params;
    }

其中容器的IP可通过命令查看,当然也可以设置为本地127.0.0.1:9000
注意fastcgi_param SCRIPT_FILENAME,要和容器的目录(/usr/share/nginx/html)一致

docker inspect myphp-fpm | grep "IPAddress"

image.png

然后使用复制命令将宿主机的文件复制到容器

docker cp nginx-server:/etc/nginx/conf.d/default.conf default.conf

image.png

最后进入容器重启nginx让配置生效

docker exec -it nginx-server bash
service nginx reload

image.png

三、测试php
创建phpinfo文件

![image.png](https://hmeteor.top/upload/2021/07/image-10b0428323cb471f9180a2fa2ddc56ff.png)

浏览器打开 http://localhost:9089/info.php
image.png


评论