搭建前准备
- 环境:Ubuntu 20.04
- 工具:Docker、Docker Compose、Nginx Proxy Manager、Mysql、云服务器
安装Docker、Docker Compose
ShellScript
sudo apt update
sudo apt install docker docker-compose安装Nginx Proxy Manager
- 创建文件夹,自定义命名,进入此文件夹创建docker-compose.yml。文档
YAML
version: '3.1'
services:
app:
image: 'jc21/nginx-proxy-manager:latest'
restart: unless-stopped
# 默认端口,可以修改:左边的端口,右边不建议修改
ports:
- '80:80'
- '<你的端口>:81'
- '443:443'
volumes:
- ./data:/data
- ./letsencrypt:/etc/letsencrypt- 创建完成后保存退出,执行docker命令
ShellScript
docker-compose up -d- 安装完成后,打开你的ip地址出现以下图表示安装成功

- 进入Nginx Proxy Manager后台,<你的IP>:<你的端口>(无法访问需要去确认一下服务器的防火墙有没有对此端口开放)
- 默认账号:admin@example.com
- 默认密码:changeme

- 进入后根据提示修改默认账号密码
安装WordPress
- 在安装Nginx Proxy Manager同级目录创建文件夹(或者自己找地方),进入并创建docker-compose.yml,修改相应的配置,并且安装容器。文档
YAML
version: '3.1'
services:
wordpress:
image: wordpress
restart: always
ports:
- <你的端口>:80
environment:
WORDPRESS_DB_HOST: db
WORDPRESS_DB_USER: <你的数据库用户名>
WORDPRESS_DB_PASSWORD: <你的数据库密码>
WORDPRESS_DB_NAME: <你的数据库名称>
volumes:
- ./wordpress:/var/www/html
db:
# mysql默认端口3306
image: mysql:8.0
restart: always
environment:
MYSQL_DATABASE: <你的数据库名称>
MYSQL_USER: <你的数据库用户名>
MYSQL_PASSWORD: <你的数据库密码>
MYSQL_RANDOM_ROOT_PASSWORD: '1'
volumes:
- ./mysql:/var/lib/mysql- 安装完成后,浏览器访问<你的IP>:<你的端口>,根据喜好选择语言并且根据提示安装WordPress
域名购买和解析
- 购买这用的是阿里云。前往
- 备案完成后,阿里云控制台将域名解析到部署WordPress和Nginx Proxy Manager的云服务器公网IP
- 我这里用的是二级域名解析到服务器,用Nginx Proxy Manager转发

Nginx Proxy Manager端口转发
- 浏览器打开部署的Nginx Proxy Manager
- 点击Proxy Hosts,然后Add Proxy Host

- Domain Names:就是刚刚解析的二级域名
- Scheme:使用HTTP
- Forward Hostname/IP:127.0.0.1。但是这次是部署在Docker中的,Docker无法直接访问宿主机,所以在这里写Docker容器在宿主机的IP地址。服务器中查询Docker的IP
ShellScript
ip addr show docker0- 然后会出现需要的IP地址

- 填入这个IP
- Forward Port:端口(创建WordPress容器时监听的端口)
- Block Common Exploits:阻止常见漏洞(建议开启)
- 保存好,就可以使用Domain Names通过HTTP来访问WordPress
- 不过HTTP访问是不安全的,推荐使用HTTPS访问

HTTPS安全访问
- Nginx Proxy Manager可以申请免费的SSL证书
- 在SSL Certificates中,点击Add SSL Certificates,点击Let’s Encrypt,填写需要申请的域名的证书,同意并保存,一段时间后就会申请成功(三个月时长的证书)

- 不过在Nginx Proxy Manager中申请一个账号的申请的次数有限,可以前往购买域名的地方去申请免费的SSL证书,这里使用阿里云

- 下载Nginx证书

- 前往Nginx Proxy Manager,在SSL Certificates中,点击Add SSL Certificates,点击Custom

- Name:证书对应的域名
- Certificate Key:下载的证书的Key文件
- Certificate:下载的证书的Pem文件
- 保存并前往Proxy Hosts部署的SSL配置窗口,选择上传的证书,保存

- Force SSL:强制HTTPS访问
- 这时已经配置好,但是还不能访问,还要去Word Press中进行HTTPS访问的配置
WordPress HTTPS访问配置
- 进入WordPress后,目前域名用不了可以使用<你的IP>:<你的端口>进行访问
- 点击设置,常规

- 填写成你的域名
- 前往服务器SSH,在刚刚下载WordPress的文件夹中,编辑wp-config.php配置文件
ShellScript
cd wordpress
vim wp-config.php- 在配置最后添加
PHP
# <你的位置>/wp-config.php
$_SERVER['HTTPS'] = 'on';- 保存并退出,就可以通过HTTPS愉快的访问

- 登陆地址:https://你的域名/wp-admin

