前段时间在Oracle Cloud上申请了一台 ARM 架构的虚拟机,这两天在家休病假,正好利用这个时间在这台虚拟机上使用 Wordpress 搭建个人博客网站,具体搭建的历程一波三折,最终在 GitHub 上找到了一个使用 Docker + Nginx + Wordpress 搭建网站的仓库,流程特别简单,在这里记录一下。
1. 前提条件
- 云服务器:
- 操作系统:Ubuntu 18.04
- 具备公网 IP 地址
- 开放 443 端口
- 域名及配套的 HTTPS 证书
2. 网站搭建配置
GitHub 仓库地址:github.com/mjstealey/w… 626 个 Star、293 的 Fork。
2.1 依赖的环境
- FPM 版本的 WordPress
- MySQL 8.x 版本
- Nginx (作为 Web 服务器)
- Docker + docker-compose 环境
2.2 配置流程
2.2.1 修改默认配置
- 访问 GitHub 仓库,下载源代码,解压
- 修改
.env配置:重命名.env.template为.env,并修改其中的配置项,其中:WORDPRESS_LOCAL_HOME:Wordpress 容器的挂载路径MYSQL_LOCAL_HOME:MySQL 容器的挂载路径,对应 MySQL 数据库的数据路径NGINX_CONF:Nginx 容器的挂载路径,对应 Nginx 的配置文件的存放位置NGINX_SSL_CERTS:HTTPS 证书相关的配置文件的存放路径NGINX_LOGS:Nginx 容器的挂载路径,对应 Nginx 的日志文件夹
以我的配置为例,Docker 容器的挂载路径统一存放在/usr/local/docker/data文件夹下,具体来讲,Wordpress 的数据路径对应/usr/local/docker/data/wordpress、MySQL 数据库的数据路径对应/usr/local/docker/data/mysql/、Nginx 的配置文件存放位置对应/usr/local/docker/data/nginx、Nginx 的日志文件夹为/var/log/nginx、HTTPS 证书的存放位置/usr/local/funmap_cn,则配置应修改为:
# docker-compose environment file
#
# When you set the same environment variable in multiple files,
# here’s the priority used by Compose to choose which value to use:
#
# 1. Compose file
# 2. Shell environment variables
# 3. Environment file
# 4. Dockerfile
# 5. Variable is not defined
# Wordpress Settings
export WORDPRESS_LOCAL_HOME=/usr/local/docker/data/wordpress
export WORDPRESS_UPLOADS_CONFIG=./config/uploads.ini
export WORDPRESS_DB_HOST=database:3306
export WORDPRESS_DB_NAME=wordpress
export WORDPRESS_DB_USER=wordpress
export WORDPRESS_DB_PASSWORD=password123!
# MySQL Settings
export MYSQL_LOCAL_HOME=/usr/local/docker/data/mysql
export MYSQL_DATABASE=${WORDPRESS_DB_NAME}
export MYSQL_USER=${WORDPRESS_DB_USER}
export MYSQL_PASSWORD=${WORDPRESS_DB_PASSWORD}
export MYSQL_ROOT_PASSWORD=rootpassword123!
# Nginx Settings
export NGINX_CONF=/usr/local/docker/data/nginx/default.conf
export NGINX_SSL_CERTS=/usr/local/funmap_cn
export NGINX_LOGS=/var/log/nginx
# User Settings
# TBD
- 修改
default.conf的配置,其中:- 使用域名替换
$host,以我的配置为例,使用funnymap.cn统一替换$host - 替换
8443为443
- 使用域名替换
- 修改
docker-compose.yml的配置,主要是修改 Nginx 容器的端口映射,将8080改为80、8443改为443
2.2.2 运行 Docker 容器
- 首选需要确保服务器上配置了 docker 及 docker-compose 环境
- 将
wordpress-nginx-docker-master文件夹拷贝至服务器的某个路径下,并访问该路径 - 创建 docker 容器所需要的文件挂载路径:
mkdir -p /usr/local/docker/data/{mysql,nginx,wordpress} - 拷贝
default.conf文件至/usr/local/docker/data/nginx路径:cp nginx/default.conf /usr/local/docker/data/nginx/ - 拷贝 HTTPS 相关证书到你设置的
NGINX_SSL_CERTS路径下 - 创建环境变量:
source .env - 拉取相关的镜像:
docker-compose pull - 运行 MySQL 容器:
docker-compose up -d database - 查看 MySQL 容器是否创建成功:
docker ps,如果能查看到 MySQL 容器,则表示该容器创建成功 - 运行 Nginx 和 Wordpress 容器:
docker-compose up -d nginx wordpress - 查看 Nginx 和 Wordpress 容器是否创建成功:
docker ps,如果能查看到这两个容器,则表示该容器创建成功
在浏览器输入你的域名,如果能看到 Wordpress 初始化界面,表示 Wordpress 环境配置成功了。