腾讯轻量云搭建DOCKER+NGINX+PHP完整指南
结论先行
在腾讯轻量云上使用Docker部署Nginx+PHP环境是最佳实践方案,既能保持环境隔离,又便于管理和迁移。下面将分步骤详细介绍搭建过程。
准备工作
- 购买腾讯轻量云服务器(推荐CentOS 7.6+/Ubuntu 20.04+)
- 确保服务器已安装Docker和Docker Compose
- 开放服务器80、443端口(Web服务)和22端口(SSH)
核心步骤
1. 安装Docker和Docker Compose
Docker是容器化部署的核心工具,必须先正确安装:
# 安装Docker
curl -fsSL https://get.docker.com | bash -s docker --mirror Aliyun
systemctl start docker
systemctl enable docker
# 安装Docker Compose
curl -L "https://github.com/docker/compose/releases/download/1.29.2/docker-compose-$(uname -s)-$(uname -m)" -o /usr/local/bin/docker-compose
chmod +x /usr/local/bin/docker-compose
2. 创建项目目录结构
推荐的组织方式:
/project
├── docker-compose.yml # Docker Compose配置文件
├── nginx
│ └── conf.d
│ └── default.conf # Nginx站点配置
├── php
│ └── php.ini # PHP自定义配置
└── www # 网站代码目录
3. 编写docker-compose.yml
这是整个环境的核心配置文件:
version: '3'
services:
nginx:
image: nginx:latest
ports:
- "80:80"
- "443:443"
volumes:
- ./nginx/conf.d:/etc/nginx/conf.d
- ./www:/var/www/html
depends_on:
- php
restart: always
php:
image: php:7.4-fpm
volumes:
- ./www:/var/www/html
- ./php/php.ini:/usr/local/etc/php/conf.d/custom.ini
restart: always
# 可选: 数据库服务
# mysql:
# image: mysql:5.7
# environment:
# MYSQL_ROOT_PASSWORD: yourpassword
# volumes:
# - ./mysql:/var/lib/mysql
# restart: always
4. 配置Nginx
编辑nginx/conf.d/default.conf:
server {
listen 80;
server_name your_domain.com;
root /var/www/html;
index index.php index.html;
location / {
try_files $uri $uri/ /index.php?$query_string;
}
location ~ .php$ {
fastcgi_pass php:9000;
fastcgi_index index.php;
fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;
include fastcgi_params;
}
}
5. 配置PHP
编辑php/php.ini添加自定义PHP配置,例如:
upload_max_filesize = 20M
post_max_size = 20M
memory_limit = 256M
6. 启动服务
docker-compose up -d
验证安装
- 在
www目录创建info.php:<?php phpinfo(); ?> - 访问
http://your_server_ip/info.php查看PHP信息页
优化建议
- 安全第一:配置HTTPS证书(可使用Let's Encrypt免费证书)
- 性能调优:根据项目需求调整Nginx和PHP的配置参数
- 使用
.env文件管理敏感信息(如数据库密码) - 定期备份重要数据(网站代码和数据库)
常见问题解决
- 端口冲突:确保80/443端口未被其他程序占用
- 文件权限问题:确保
www目录对PHP进程可写 - 容器互联问题:使用
docker network确保容器间能正常通信
总结
在腾讯轻量云上使用Docker部署Nginx+PHP环境既高效又灵活,通过容器化技术实现了环境隔离和快速部署。这种方法特别适合需要频繁部署或管理多个项目的场景,大大简化了服务器环境配置和维护工作。
CLOUD云计算