11.8 实战 WordPress
11.8.1 项目结构
wordpress/
├── compose.yaml
├── .env # 环境变量(敏感信息)
└── nginx/ # 可选:反向代理配置
└── nginx.conf11.8.2 编写 compose.yaml
compose.yamlservices:
# 数据库服务
db:
image: mysql:8.0
container_name: wordpress_db
restart: always
command:
# 使用原生密码认证(旧版 WP 兼容性)
- --default-authentication-plugin=mysql_native_password
- --character-set-server=utf8mb4
- --collation-server=utf8mb4_unicode_ci
environment:
MYSQL_ROOT_PASSWORD: ${DB_ROOT_PASSWORD}
MYSQL_DATABASE: wordpress
MYSQL_USER: wordpress
MYSQL_PASSWORD: ${DB_PASSWORD}
volumes:
- db_data:/var/lib/mysql
networks:
- wp_net
# WordPress 服务
wordpress:
image: wordpress:latest
container_name: wordpress_app
restart: always
ports:
- "8000:80"
environment:
WORDPRESS_DB_HOST: db:3306
WORDPRESS_DB_USER: wordpress
WORDPRESS_DB_PASSWORD: ${DB_PASSWORD}
WORDPRESS_DB_NAME: wordpress
volumes:
- wp_data:/var/www/html
# 增加上传文件大小限制
- ./uploads.ini:/usr/local/etc/php/conf.d/uploads.ini
depends_on:
- db
networks:
- wp_net
volumes:
db_data: # 数据库持久化
wp_data: # WordPress 文件(插件/主题/上传)持久化
networks:
wp_net:11.8.3 配置文件详解
1. 环境变量 (.env)
2. 数据持久化
3. PHP 配置优化
11.8.4 启动与运行
11.8.5 生产环境最佳实践
1. 数据库备份
2. 使用 Nginx 反向代理
3. 使用 Redis 缓存
11.8.6 常见问题
Q:数据库连接错误
Q:无法上传大文件
11.8.7 延伸阅读
最后更新于