wordpress 博客终极搭建方案以及博客数据迁移
以前为了方便一直使用宝塔一键搭建 wordpress 网站. 但是发现比较浪费,只使用这一个功能很是没有必要。
而且安装宝塔要求的是一个干净的服务器环境才行,要求比较高。并且服务器需要安装 php mysql apache/nginx 等环境比较麻烦,虽然借助于宝塔安装也很方便,但是为了这一个功能属实没必要。
本终极方案采用的技术为:
- docker/docker-compose
- nginx proxy manager
概述
采用该方案的原因如下:
- 直接使用 wordpress 镜像即可创建网站,无需安装其他服务
- 使用 nginx 进行反向代理,可通过域名进行访问,并且 nginx proxy manager 便于管理后续其他网站
- nginx proxy manager 方便集成 https 证书
- 轻量小巧,不太占用资源,不污染服务器环境
缺点也很明显:
- 没有宝塔操作方便, 仅适用于专业人员
安装流程
以 ubuntu 22.04 为例
安装 docker
curl -fsSL https://get.docker.com | bash -s docker --mirror Aliyun
systemctl start docker
systemctl enable docker
安装 wordpress
# cat docker-compose.yaml
version: '3.8'
services:
db:
image: mysql:5.7
volumes:
- ./data:/var/lib/mysql
restart: always
environment:
MYSQL_ROOT_PASSWORD: wordpress
MYSQL_DATABASE: wordpress
MYSQL_USER: wordpress
MYSQL_PASSWORD: wordpress
wordpress:
depends_on:
- db
image: wordpress:6.0.2
ports:
- "8000:80"
restart: always
environment:
WORDPRESS_DB_HOST: db:3306
WORDPRESS_DB_USER: wordpress
WORDPRESS_DB_PASSWORD: wordpress
WORDPRESS_DB_NAME: wordpress
volumes:
- ./www/html:/var/www/html
docker-compose up -d
此时访问 ip:8000 即可访问博客
安装 nginxProxyManager
最终我们访问博客是通过域名的方式来访问, 达到的效果为 https://blog.jaronnie.com
所以需要使用反向代理
为了操作方便,这里选择使用 nginxProxyManager
# cat docker-compose.yaml
version: '3.8'
services:
app:
image: 'jc21/nginx-proxy-manager:latest'
restart: unless-stopped
ports:
- '80:80'
- '81:81'
- '443:443'
volumes:
- ./data:/data
- ./letsencrypt:/etc/letsencrypt
docker-compose up -d