使用 docker 部署 nginx1.15.11 + php7.1
本文参考:
docker安装
使用 docker 部署 nginx
- 使用
docker pull nginx:1.15.11获取 nginx-1.15.11 镜像 - 使用
docker run -itd -p 888:80 --name nginx-test nginx:1.15.11创建一个 名为 nginx-test 的 nginx 容器
参数说明:
-i 交互式操作
-t 终端
-d 后台运行
--name 容器名称
-p 端口映射 : 前面是主机端口 : 后面是容器端口
这时可以使用 主机:888 访问到 nginx 欢迎页面
docker run -itd -p 888:80 --name nginx-temp -v D:\temptest\nginx\conf\default.conf:/etc/nginx/conf.d/default.conf -v D:\temptest\nginx\logs:/var/log/nginx -v D:\temptest\nginx\www:/usr/share/nginx/html nginx:1.15.11
参数说明:
-v 挂载目录/文件 : 前面是主机目录/文件 : 后面是容器目录/文件 将本地文件映射到容器中,其中D:\temptest\nginx\*是本地路径,这里的 default.conf 是从 容器中复制出来的(使用docker cp nginx-test:/etc/nginx/conf.d/default.conf D:\temptest\nginx\conf\default.conf)要注意的是 nginx 的不同版本或在不同环境中的配置文件路径可能不同,需要自行查看
使用 docker 部署 php
- 使用
docker pull php:7.4-fpm获取 php:7.4-fpm 镜像 - 使用
docker run -d --name php-test -p 9000:9000 -v D:\temptest\nginx\www:/usr/share/nginx/html php:7.4-fpm创建一个 名为 php-test 的 php 容器
修改并配置 nginx
配置修改如图
-
将 index.php 添加到 index中
-
将 fastcgi_param SCRIPT_FILENAME 修改为 $document_root$fastcgi_script_name
-
将 fastcgi_pass 修改为 172.17.0.3:9000
172.17.0.3这个 IP 地址是通过docker inspect php-test查询得到的
在 Windows 中可以通过docker inspect php-test > ./temp.txt将结果输出到 temp文件中查找 "IPAddress"
在 Linux 中可以使用docker inspect php-test | grep "IPAddress"过滤出结果
在 Windows 中
在 Linux 中可能会得到(图片来自网络)
完成
附录:
- 在 docker 中为 php 安装 mysqli 及 pdo 扩展
docker-php-ext-install mysqli pdo pdo_mysql - 在 docker 中为 php 安装 php-redis
先下载redis
curl -L -o /tmp/redis.tar.gz https://github.com/phpredis/phpredis/archive/refs/tags/5.3.4.tar.gz解压
tar xfz /tmp/redis.tar.gz删除压缩包
rm -r /tmp/redis.tar.gz创建 PHP 插件目录
mkdir -p /usr/src/php/ext将解压得到的文件移动到 PHP 插件目录
mv phpredis-5.3.4 /usr/src/php/ext/redis安装
docker-php-ext-install redis