wordpress 安装
采用docker + Nginx Proxy Manager部署
SSL/TLS 加密 当前加密模式:完全(严格)配置方法
一、准备工作
目录结构如下:
wordpress/
├── docker-compose.yml
└── uploads.ini
nginx-proxy-manager/
└── docker-compose.yml
1、 创建目录
首先在服务器上创建一个目录用于存放 WordPress 的相关配置文件:
mkdir -p ~/wordpress
mkdir -p ~/wordpress
2、 文件准备
在 wordpress 目录下,需要准备以下文件与目录:
docker-compose.yml
uploads.ini
在 nginx-proxy-manager 目录下,需要准备以下文件与目录:
docker-compose.yml
三、Docker 容器配置文件
1、在 wordpress/docker-compose.yml 中写入以下内容:
services:
db:
image: mysql:5.7
volumes:
- './db_data:/var/lib/mysql'
restart: always
environment:
MYSQL_ROOT_PASSWORD: your_mysql_password
MYSQL_DATABASE: wordpress
MYSQL_USER: wordpress
MYSQL_PASSWORD: your_wordpress_password
networks:
- npm_net
redis:
image: redis:latest
restart: always
entrypoint: redis-server --appendonly yes --requirepass your_redis_password --maxmemory 512mb --maxmemory-policy allkeys-lru
ports:
- "6379"
volumes:
- './redis_data:/data'
- '/etc/timezone:/etc/timezone:ro'
networks:
- npm_net
wordpress:
depends_on:
- db
- redis
image: wordpress:latest
ports:
- "8000:80"
restart: always
environment:
WORDPRESS_DB_HOST: db:3306
WORDPRESS_DB_USER: wordpress
WORDPRESS_DB_PASSWORD: your_wordpress_password
WORDPRESS_DB_NAME: wordpress
WORDPRESS_CONFIG_EXTRA: |
/* Redis configuration */
define('WP_REDIS_HOST','redis');
define('WP_REDIS_PORT','6379');
define('WP_REDIS_PASSWORD','your_redis_password');
define('WP_CACHE_KEY_SALT','your_salt_key');
define('WP_CACHE',true);
REDIS_HOST: redis
volumes:
- './wp_content:/var/www/html/wp-content'
- './uploads.ini:/usr/local/etc/php/conf.d/uploads.ini'
networks:
- npm_net
networks:
npm_net:
external:
name: npm_net
2、在 wordpress/uploads.ini 中写入以下内容:
file_uploads = On
memory_limit = 256M
upload_max_filesize = 128M
post_max_size = 128M
max_execution_time = 300
max_input_time = 300
3、在 nginx-proxy-manager/docker-compose.yml 中写入以下内容:
services:
nginx-proxy-manager:
image: jc21/nginx-proxy-manager:latest
restart: always
ports:
- "80:80" # http
- "81:81" # 管理后台
- "443:443" # https
volumes:
- ./data:/data
- ./letsencrypt:/etc/letsencrypt
networks:
- npm_net
networks:
npm_net:
external:
name: npm_net
四、创建共享网络
两个项目通过 npm_net 网络互通,因此需要在首次启动前手动创建:
docker network create npm_net
五、启动服务
启动 WordPress
cd wordpress
docker-compose up -d
启动 Nginx Proxy Manager
cd ../nginx-proxy-manager
docker-compose up -d
六、配置 Nginx Proxy Manager 实现 HTTPS
打开 Nginx Proxy Manager 管理后台:http://<服务器IP>:81
默认账号:admin@example.com
默认密码:changeme
修改密码后,添加 Proxy Host:
Domain Names:填写你的域名(确保已解析到服务器 IP)
Forward Hostname/IP:填写 wordpress
Forward Port:80
Scheme:http
SSL:申请并强制启用 Let’s Encrypt 证书
访问 https://yourdomain.com 即可进入 WordPress,并且自动开启 HTTPS。
七、总结
通过这种方式:
WordPress、数据库、Redis 独立运行
Nginx Proxy Manager 单独管理代理和证书
二者通过共享网络 npm_net 通信
这样不仅让服务解耦清晰,而且便于后续扩展更多站点或服务。
正文完