docker部署php+nginx环境

使用docker安装好php和nginx后,配置nginx运行php-fpm中间也花费了不少时间,坑也比较多下面说下我的部署过程

1.拉取官方镜像

docker pull nginx
docker pull bitnami/php-fpm
复制代码

2.使用php-fpm镜像开启php-fpm应用容器

docker run -d --name myFpm -v /var/www/html:/usr/share/nginx/html bitnami/php-fpm
复制代码

-d 后台运行容器的意思 -v 指定宿主机与容器的映射关系。/var/www/html为宿主机的项目目录(自定义的),/usr/share/nginx/html为nginx服务器项目默认的路径。

3.开启nginx容器

docker run -d --name myNginx -p 8080:80 -v /var/www/html:/usr/share/nginx/html nginx
复制代码

-p : 该参数设置端口对应的关系。所有访问宿主机8080端口的URL会转发到nginx容器的80端口。

4.查看php-fpm的ip地址,配置nginx用

docker inspect myFpm | grep IPAddress

5.修改nginx配置

进入容器
docker exec -it myNginx /bin/bash
复制代码

-i : --interactive,交互模式。 -t : --tty,开启一个伪终端。 /bin/bash : 必须写,否则会报错。这是开始伪终端时,进入bash界面,也就是命令行界面。

查看对应的配置文件位置
/etc.nginx.conf.d/default.conf
复制代码

6.复制配置文件到usr路径下

进入usr目录下
/usr/share/nginx/html
复制代码

若没有nginx文件夹,自己创建mkdir nginx

复制nginx容器中的默认配置

docker cp myNginx:etc/nginx/conf.d/default.conf ./default.conf
复制代码
这样就在当前路径下生成了一个默认配置

vim default.conf编辑

location ~ \.php$ {
        fastcgi_pass   你的php-fpmIP 地址:9000;
        fastcgi_index  index.php;
       fastcgi_param  SCRIPT_FILENAME  /scripts$fastcgi_script_name;
        fastcgi_param  SCRIPT_NAME      $fastcgi_script_name;
        include        fastcgi_params;
    }
复制代码

保存退出 然后同步配置到容器中

docker cp ./default.conf myNginx:/etc/nginx/conf.d/default.conf
复制代码

进入nginx容器重新加载配置

docker exec -it myNginx /bin/bash
service nginx reload
复制代码

大功告成了吗,不存在的

访问127.0.0.1:8080/info.php

出现 file not found,美滋滋.

注意nginx中的配置

location ~ \.php$ {
        fastcgi_pass   172.17.0.2: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;
    }


复制代码
fastcgi_param  SCRIPT_FILENAME  /usr/share/nginx/html$fastcgi_script_name; 
复制代码
 这一条要改成这样,/scripts是一个目录名,也就是你站点的根目录,比如说,你访问/index.php这个文件,其实就是访问操作系统中/scripts/index.php这个文件,但是文件并不存在,要改成当前的nginx服务器路径.
复制代码

然后同步容器中的配置,访问访问127.0.0.1:8080/info.php 出现php扩展页面,好了大功告成

转载于:https://juejin.im/post/5b20cf9ef265da6dfd1a7fcb

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值