使用VPS服务器通过Docker部署WordPress指南
文章分类:技术文档 /
创建时间:2025-09-15
在数字化时代,搭建个人或企业网站是常见需求。WordPress作为全球超40%网站使用的开源CMS(内容管理系统),凭借易用性和扩展性广受青睐。而通过VPS服务器结合Docker部署,既能利用VPS的独立资源优势,又能借助Docker的容器化特性简化环境管理,让部署更高效、维护更便捷。以下是具体操作指南。
环境准备:VPS服务器与基础工具安装
首先需确保VPS服务器已安装操作系统。考虑到Docker的兼容性和社区支持,推荐选择Ubuntu 20.04及以上版本(长期支持版稳定性更佳)。登录VPS后,需安装Docker(容器运行时)和Docker Compose(多容器编排工具)。
安装Docker的步骤如下:
curl -fsSL https://get.docker.com -o get-docker.sh
sh get-docker.sh # 一键安装最新稳定版Docker
安装完成后启动服务并设置开机自启:
sudo systemctl start docker
sudo systemctl enable docker # 避免重启后服务中断
验证安装是否成功,可运行`docker --version`,若显示版本信息则安装完成。
接着安装Docker Compose(用于定义多容器应用):
sudo curl -L "https://github.com/docker/compose/releases/download/1.29.2/docker-compose-$(uname -s)-$(uname -m)" -o /usr/local/bin/docker-compose
sudo chmod +x /usr/local/bin/docker-compose # 赋予执行权限
同样用`docker-compose --version`检查是否安装成功。
创建Docker Compose文件:定义WordPress与数据库服务
在VPS服务器上创建独立目录存放项目文件,例如:
mkdir -p ~/wordpress-docker && cd ~/wordpress-docker
在该目录下新建`docker-compose.yml`文件,内容需定义MySQL数据库和WordPress两个服务。考虑到生产环境稳定性,推荐固定MySQL版本(如5.7)避免升级导致的兼容性问题:
version: '3'
services:
db:
image: mysql:5.7 # 明确指定数据库版本
volumes:
- db_data:/var/lib/mysql # 数据卷持久化存储数据库文件
restart: always # 容器意外退出自动重启
environment:
MYSQL_ROOT_PASSWORD: your_root_pass # 建议使用复杂密码
MYSQL_DATABASE: wordpress
MYSQL_USER: wp_user
MYSQL_PASSWORD: wp_pass # 单独为WordPress设置用户密码
wordpress:
depends_on:
- db # 确保数据库先启动
image: wordpress:latest # 使用最新稳定版WordPress镜像
ports:
- "80:80" # 映射VPS的80端口到容器的80端口
restart: always
environment:
WORDPRESS_DB_HOST: db:3306 # 数据库服务名:端口
WORDPRESS_DB_USER: wp_user
WORDPRESS_DB_PASSWORD: wp_pass
WORDPRESS_DB_NAME: wordpress
volumes:
- ./wp-content:/var/www/html/wp-content # 持久化存储主题/插件
volumes:
db_data: # 声明数据卷,避免容器删除后数据丢失
这里新增了`wp-content`目录挂载,防止因容器重启导致自定义主题或插件丢失;同时建议将`MYSQL_ROOT_PASSWORD`等密码替换为至少12位的复杂组合(包含字母、数字、符号),提升安全性。
启动容器与WordPress初始化配置
在`docker-compose.yml`所在目录执行:
docker-compose up -d # -d参数表示后台运行
约1-2分钟后,通过`docker ps`查看容器状态,当两个容器(db和wordpress)均显示“Up”时,说明启动成功。此时在浏览器输入VPS服务器的公网IP(如`http://192.168.1.100`),即可进入WordPress安装向导。按照提示设置网站标题、管理员账号密码,完成后即可登录后台管理。
后续维护:备份与性能优化实践
为防止数据丢失,建议每日备份数据库和`wp-content`目录。可编写Shell脚本并通过cron定时执行:
#!/bin/bash
BACKUP_DIR="/backup/wordpress"
DATE=$(date +%Y%m%d%H%M)
mkdir -p $BACKUP_DIR
备份数据库(替换为实际容器名)
docker exec db mysqldump -u root -pyour_root_pass wordpress > $BACKUP_DIR/db_$DATE.sql
备份wp-content目录
tar -czf $BACKUP_DIR/wp-content_$DATE.tar.gz ./wp-content
设置每天凌晨2点执行:`0 2 * * * /path/to/backup.sh`。
性能优化方面,可通过以下方式提升访问速度:
- 数据库优化:登录MySQL容器(`docker exec -it db mysql -uroot -pyour_root_pass`),为常查询的字段添加索引(如`wp_posts`表的`post_name`);
- 缓存加速:安装Redis缓存插件(如WP Redis),并在VPS中新增Redis容器(可通过修改`docker-compose.yml`添加),减少数据库查询次数;
- 限制资源:在`docker-compose.yml`中为MySQL添加`mem_limit: 2G`(限制内存为2GB),避免容器占用过多VPS资源。
以某客户案例为例,其WordPress网站在流量高峰时响应延迟达3秒。通过添加Redis缓存并优化数据库慢查询,延迟降至500ms以内,用户跳出率下降40%。
通过VPS服务器结合Docker部署WordPress,既能享受VPS的独立资源控制,又能利用Docker的便捷管理,是个人博客、企业官网等场景的高效部署方案。掌握基础步骤后,可根据实际需求扩展,如添加HTTPS(通过Nginx反向代理配合Let’s Encrypt证书)或负载均衡,进一步提升网站稳定性。
上一篇: VPS海外部署MSSQL常见误解纠正指南