WordPress 是一个使用广泛的 CMS 系统,可以帮助我们快速搭建一个网站,想要方便、快速、高效地搭建一个 wordpress ,使用 docker-compose 可能是最好的办法了,我也在过去两年由 lnmp 架构切换到了 caddy + docker-compose 的方式,本文记录使用 docker-compose 搭建包含 redis 作为对象缓存服务器的 wordpress 的过程。
编写 docker-compose 文件
我编写 docker-compose 文件的思路如下:
- 所有文件尽量保存在当前目录
- 数据库使用 MariaDB 的最新 lts 版本
- 为提升性能,需要包含 redis
version: "3.8"
services:
wordpress:
image: wordpress:latest
ports:
- "8081:80"
environment:
WORDPRESS_DB_HOST: mariadb
WORDPRESS_DB_USER: wpdbuser
WORDPRESS_DB_PASSWORD: wpnormal_pass
WORDPRESS_DB_NAME: wp_db
volumes:
- ./wordpress_data:/var/www/html
depends_on:
- mariadb
- redis
restart: always
mariadb:
image: mariadb:11.4
environment:
MYSQL_ROOT_PASSWORD: wpsuper_pass
MYSQL_DATABASE: wp_db
MYSQL_USER: wpdbuser
MYSQL_PASSWORD: wpnormal_pass
volumes:
- ./mariadb_data:/var/lib/mysql
restart: always
redis:
image: redis:latest
volumes:
- ./redis_data:/data
restart: always
volumes:
mariadb_data:
redis_data:
保存为 compose.yml 之后,输入
docker-compose up -d
运行容器
使用 Caddy 配置反代
上面的 compose 文件成功运行之后,其实已经可以通过 ip_address:8081 运行了,要绑定域名访问,需要使用反向代理,我过去使用的 apache 或者 ngxin ,不过最近几年已经完全切换到 Caddy 了,可以自动处理 SSL 安全证书,配置也更简单,Caddy 的配置文件在 /etc/caddy/Caddyfile,添加下列内容
blog.domain.com {
reverse_proxy * localhost:8081
}
然后运行 systemctl reload caddy 重启生效更新过的配置文件
运行安装 WordPress
经过上面步骤后,运行 blog.domain.com(你的域名)之后,应该就可以看到 wordpress 安装的页面了,输入你的网站标题名,用户名和密码之后,就可以启用了。
启用 Redis
经过上面步骤后,WordPress 已经可以运行,但是 Redis 对象缓存还未启用,这时需要去当前目录下 WordPress 文件目录中的 config.php 文件中,添加下列内容:
define(‘WP_CACHE’, true);
define(‘WP_REDIS_HOST’, ‘redis’); // 使用 docker-compose 中定义的服务名称
define(‘WP_REDIS_PORT’, 6379);
然后在 WordPress 后台中安装 Redis Object Cache 插件并启用即可。