在腾讯云轻量应用服务器上搭建 Docker + Nginx + PHP 环境是一个非常常见的 Web 开发部署方式。以下是一个详细的步骤指南,适用于 Ubuntu 或 CentOS 系统(以 Ubuntu 20.04/22.04 为例)。
✅ 一、准备工作
1. 登录轻量服务器
使用 SSH 登录你的腾讯云轻量服务器:
ssh root@你的公网IP
2. 更新系统包
sudo apt update && sudo apt upgrade -y
✅ 二、安装 Docker 和 Docker Compose
1. 安装 Docker
sudo apt install docker.io -y
验证是否安装成功:
docker --version
2. 安装 Docker Compose
sudo apt install docker-compose -y
或者手动下载最新版本(推荐):
sudo curl -L "https://github.com/docker/compose/releases/download/v2.23.0/docker-compose-$(uname -s)-$(uname -m)" -o /usr/local/bin/docker-compose
sudo chmod +x /usr/local/bin/docker-compose
验证:
docker-compose --version
✅ 三、创建项目目录结构
mkdir -p ~/myapp/{nginx,php}
cd ~/myapp
结构如下:
myapp/
├── docker-compose.yml
├── nginx/
│ └── default.conf
└── php/
└── index.php
✅ 四、配置 docker-compose.yml
编辑 docker-compose.yml 文件:
version: '3'
services:
nginx:
image: nginx:latest
ports:
- "80:80"
volumes:
- ./php:/var/www/html
- ./nginx/default.conf:/etc/nginx/conf.d/default.conf
depends_on:
- php
restart: unless-stopped
php:
image: php:8.2-fpm
volumes:
- ./php:/var/www/html
restart: unless-stopped
✅ 五、配置 Nginx
创建并编辑 nginx/default.conf:
nano nginx/default.conf
内容如下:
server {
listen 80;
server_name localhost;
root /var/www/html;
index index.php index.html index.htm;
location / {
try_files $uri $uri/ =404;
}
location ~ .php$ {
include fastcgi_params;
fastcgi_pass php:9000;
fastcgi_index index.php;
fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;
}
location ~ /.ht {
deny all;
}
}
✅ 六、编写测试 PHP 页面
创建 php/index.php:
echo "<?php phpinfo(); ?>" > php/index.php
✅ 七、启动服务
docker-compose up -d
等待镜像拉取和容器启动完成后,访问你的公网 IP:
http://你的公网IP
你将看到 PHP 的信息页面(phpinfo),说明环境已经搭建成功!
✅ 八、常见问题排查
1. 无法访问网页?
- 检查安全组是否放行 80 端口。
- 使用
curl http://localhost在本地测试是否正常。
2. 权限问题?
确保挂载的目录权限正确:
chmod -R 755 php
chown -R www-data:www-data php
3. 日志查看
docker-compose logs -f
✅ 九、后续开发建议
- 可以挂载 MySQL、Redis 等数据库容器。
- 使用
.env文件管理环境变量。 - 配置 HTTPS(可结合腾讯云 CDN 或 Let’s Encrypt)。
如果你需要我帮你集成 MySQL、Redis 或 WordPress,请告诉我,我可以继续扩展这个 docker-compose.yml。
如需完整脚本或 GitHub 示例模板,也可以继续问我 😊
希望这份教程对你有帮助!如果你有任何疑问,欢迎继续提问。
秒懂云