返回
Docker 一站式搭建 Nginx + PHP 环境
后端
2023-01-24 02:39:15
Docker + Nginx + PHP:构建开发环境的利器
作为 IT 工程师,搭建开发环境是家常便饭。而 Docker 作为一种容器化技术,无疑是搭建环境的利器。本文将分享我搭建 Docker + Nginx + PHP 环境的实战经验,帮助你轻松开启开发之旅。
安装 Docker
首先,在 Linux 服务器上安装 Docker,步骤如下:
- 更新系统:
sudo apt-get update
- 安装依赖:
sudo apt-get install apt-transport-https ca-certificates curl software-properties-common
- 添加 Docker GPG 密钥:
curl -fsSL https://download.docker.com/linux/debian/gpg | sudo apt-key add -
- 添加 Docker 仓库:
sudo add-apt-repository "deb [arch=amd64] https://download.docker.com/linux/debian $(lsb-release -cs) stable"
- 更新系统并安装 Docker:
sudo apt-get update
和sudo apt-get install docker-ce
拉取 Nginx 和 PHP 镜像
在 Docker 中,拉取镜像可以获取预构建的环境,执行以下命令拉取 Nginx 和 PHP 镜像:
sudo docker pull nginx
sudo docker pull php:7.4
创建 Docker 网络
为了让 Nginx 和 PHP 容器通信,创建 Docker 网络:sudo docker network create webnet
运行 Nginx 容器
运行 Nginx 容器:sudo docker run -d --name nginx --network webnet -p 80:80 nginx
运行 PHP 容器
运行 PHP 容器:sudo docker run -d --name php --network webnet --link nginx:web php:7.4
配置 Nginx 代理
配置 Nginx 代理:
- 打开 Nginx 配置文件:
sudo nano /etc/nginx/sites-available/default
- 找到代码块:
location / { try_files $uri $uri/ /index.php?$args; }
- 替换为:
location / { proxy_pass http://php:80; }
配置 SSL
保护网站安全:
- 生成自签名证书:
sudo openssl req -x509 -nodes -days 365 -newkey rsa:2048 -keyout /etc/nginx/ssl/nginx.key -out /etc/nginx/ssl/nginx.crt
- 配置 Nginx 的 SSL:
server {
listen 443 ssl;
server_name example.com;
ssl_certificate /etc/nginx/ssl/nginx.crt;
ssl_certificate_key /etc/nginx/ssl/nginx.key;
}
重启 Nginx
配置完成后,重启 Nginx:sudo systemctl restart nginx
测试网站
通过浏览器访问网站测试配置:https://example.com
常见问题
-
Nginx 无法代理 PHP 容器的请求?
- 检查 Nginx 配置文件中的 proxy_pass 指令。
-
SSL 证书配置失败?
- 检查 SSL 证书是否生成成功,确保 Nginx 配置文件中正确配置了 SSL 证书路径。
-
如何提高网站性能?
- 优化 Nginx 配置,启用 Gzip 压缩,设置合理的缓存策略。
-
如何解决 Nginx 的 404 错误?
- 检查 Nginx 配置文件中的 root 指令是否指向正确的目录。
-
如何为我的网站创建自定义域名?
- 设置 DNS 记录,将域名指向你的 Docker 主机。