1、关于 Nginx 部署
采用docker的方式部署nginx,需要将nginx的配置文件和运行根目录从容器映射到宿主机。
- 配置文件(default.conf)在容器中的/etc/nginx/conf.d目录下。
- 运行根目录在容器中的/usr/share/nginx/html目录下。
以下是docker run一个nginx容器的示例:
docker run -itd --name [container name] -p 8079:80 -v /www/wwwroot/[container name]/conf.d:/etc/nginx/conf.d -v /www/wwwroot/[container name]/html:/usr/share/nginx/html nginx:1.20.2
1.1、default.conf 配置
以下是在项目中接触到的常用nginx配置:
charset utf-8;
client_max_body_size 128M;
client_body_buffer_size 30M;
location / {
allow 192.168.8.102;
deny all;
root /usr/share/nginx/html;
index index.html index.htm;
}
location /api/ {
proxy_set_header Host $host;
proxy_set_header X-Real-IP $remote_addr;
# proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
proxy_pass http://192.168.2.176:85/;
}
2、关于 PHP环境部署
2.1、下载并运行容器
- 需要注意的是,PHP不能单独部署,需要搭配Nginx或Apache部署。我选择Nginx,因此需要两个镜像:php:8.0-fpm、nginx:1.20.2。
- 此外,需要创建两个目录,一个用于配置nginx,一个用于代码运行(需要注意的是,nginx和php需要公用一个代码运行目录)。
/www/wwwroot/项目名称/conf.d # nginx配置目录
/www/wwwroot/项目名称/html # 代码目录
以上准备工作做好以后,即可运行容器:
docker run -itd -p 9000:9000 --name [container name] -v /www/wwwroot/[container name]/html/:/www/[container name]/ php:8.0-fpm
docker run -itd --name [container name] -p 8000:80 -v /www/wwwroot/[container name]/html/:/usr/share/nginx/html/ -v /www/wwwroot/[container name]/conf.d/:/etc/nginx/conf.d/ --link [container name]:php nginx:1.20.2
需要注意的是,php容器需要指定端口9000,并映射代码目录;nginx容器需要映射配置目录和代码目录,并指定连接php容器。
2.2、配置php扩展
安装php扩展需要一下四个步骤:
- 1、进入php容器。
- 2、安装扩展。
- 3、运行test命令。
- 4、退出并重新启动容器。
docker exec -it [PHP容器名称] bash # 进入容器
docker-php-ext-install pdo pdo_mysql # 安装pdo和pdo_mysql扩展
make test # 位置
exit # 退出容器
docker restart [PHP容器名称] # 重启容器
有任何问题欢迎留言交流探讨。