一、准备工作
在开始之前,请确保您的系统已经安装了Docker和Docker-Compose。您可以通过以下命令检查是否已安装:
docker --version
docker-compose --version
如果尚未安装,请参考官方文档进行安装。
二、创建项目目录结构
首先创建一个项目目录并进入:
mkdir wordpress-nginx && cd wordpress-nginx
三、编写docker-compose.yml文件
在项目目录中创建docker-compose.yml
文件,内容如下:
version: '3'
services:
db:
image: mysql:5.7
volumes:
- db_data:/var/lib/mysql
restart: always
environment:
MYSQL_ROOT_PASSWORD: your_root_password
MYSQL_DATABASE: wordpress
MYSQL_USER: wordpress
MYSQL_PASSWORD: wordpress
wordpress:
depends_on:
- db
image: wordpress:latest
ports:
- "8000:80"
restart: always
environment:
WORDPRESS_DB_HOST: db:3306
WORDPRESS_DB_USER: wordpress
WORDPRESS_DB_PASSWORD: wordpress
WORDPRESS_DB_NAME: wordpress
volumes:
- wordpress_data:/var/www/html
nginx:
image: nginx:latest
ports:
- "80:80"
volumes:
- ./nginx.conf:/etc/nginx/conf.d/default.conf
- wordpress_data:/var/www/html
depends_on:
- wordpress
volumes:
db_data:
wordpress_data:
四、配置Nginx
在项目目录中创建nginx.conf
文件,内容如下:
server {
listen 80;
server_name your_domain.com;
root /var/www/html;
index index.php index.html index.htm;
location / {
try_files $uri $uri/ /index.php?$args;
}
location ~ \.php$ {
include fastcgi_params;
fastcgi_pass wordpress:9000;
fastcgi_index index.php;
fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;
}
location ~ /\.ht {
deny all;
}
}
五、启动服务
运行以下命令启动所有服务:
docker-compose up -d
六、访问WordPress
等待所有容器启动完成后,您可以通过以下方式访问WordPress:
- 直接访问Nginx:
http://your_server_ip
- 直接访问WordPress容器:
http://your_server_ip:8000
七、常见问题解决
端口冲突:如果80端口已被占用,可以修改docker-compose.yml中nginx的端口映射,例如改为
"8080:80"
数据库连接问题:确保WordPress容器中的数据库配置与db服务中的环境变量一致
文件权限问题:如果出现文件写入权限问题,可以尝试修改WordPress目录权限:
docker-compose exec wordpress chown -R www-data:www-data /var/www/html
八、停止和清理
要停止服务:
docker-compose down
要完全删除数据卷:
docker-compose down -v
通过以上步骤,您已经成功使用Docker-Compose部署了WordPress和Nginx环境。这种部署方式不仅简单高效,而且便于迁移和维护,是搭建WordPress网站的现代化解决方案。