教你使用docker搭建一个WordPress博客

发布于 2023-06-15  152 次阅读


1. 通过Docker部署wordpress

1.1. 安装docker

使用前请先查看Docker的安装和基本使用的笔记

CentOS7部署Docker – 小默的博客 (xiaomo.link)

Docker使用入门 – 小默的博客 (xiaomo.link)

1.2. 拉取镜像

  • 从互联网拉取wordpress镜像
# 拉取wordpress镜像,如果空间有限,就使用精简版 wordpress:php7.4-fpm-alpine,但是中文语言需要后续自己安装
docker pull wordpress:php7.4
# 拉取mysql镜像
docker pull mysql:5.7
  • 检查是否拉取成功
docker images
  • 创建挂载目录
# 挂载mysql数据
mkdir -p /data/mysql/data
# 挂载mysql配置
mkdir -p /data/mysql/conf
# 挂载mysql日志
mkdir -p /data/mysql/log
# 挂载wordpress
mkdir -p /data/wordpress

我们使用wordpress官方提供镜像,内部默认是使用apache作为网络服务器的

1.3. mysql容器

1.3.1. 创建容器

  • 创建挂载目录及配置文件
# 进入配置文件目录,创建my.cnf配置文件
cd /data/mysql/conf/
touch my.cnf
  • 修改my.cnf为以下内容
[mysqld]
user=root
character-set-server=utf8
default_authentication_plugin=mysql_native_password
secure_file_priv=/var/lib/mysql
expire_logs_days=7
sql_mode=STRICT_TRANS_TABLES,NO_ZERO_IN_DATE,NO_ZERO_DATE,ERROR_FOR_DIVISION_BY_ZERO,NO_ENGINE_SUBSTITUTION
max_connections=1000
[client]
default-character-set=utf8
[mysql]
default-character-set=utf8
  • 创建mysql容器
docker run -d --privileged=true \
--name mysql5.7 \
-v /data/mysql/conf/my.cnf:/etc/mysql/my.cnf \
-v /data/mysql/data:/var/lib/mysql \
-v /data/mysql/log:/var/log/mysql \
--restart=always \
-e MYSQL_ROOT_PASSWORD=password \
-p 3309:3306 \
mysql:5.7 \

1.3.2. 配置mysql信息

  • 进入容器内部进行配置
docker exec -it mysql5.7 bash
  • 进入容器以后,执行命令进入mysql
mysql -uroot -p
#输入这一行命令后,按回车,再输入密码,按回车即可进入mysql
  • 执行下述sql(千万别忘了句尾的分号!)
    • 需要注意,在下面的第8行里,我们设置了给wordpress使用的账户,用户名为wordoress,密码为abc123def,请按照实际情况修改
# 创建wordpress数据库
CREATE DATABASE wordpress CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci;
# 查看一下是否创建成功
SHOW DATABASES;
# 切换数据库
USE mysql;
# 创建wordpress用户
create user 'wordpress'@'172.17.0.%' identified by 'abc123def';
# 给用户赋权使用wordpress数据库
grant all privileges on wordpress.* to 'wordpress'@'172.17.0.%' identified by 'abc123def';
# 刷新权限
FLUSH PRIVILEGES;
# 退出mysql客户端
exit;
# 退出镜像(别忘了!!!)
exit

1.4. 创建wordpress容器

通过下面的命令,启动我们的wordpress容器

docker run --name wordpress \
--link mysql5.7:mysql \
-p 80:80 -d \
-p 443:443 -d \
--restart=always \
-v /data/wordpress:/var/www/html wordpress:php7.4 \

务必使用 docker ps -a命令确认自己的wordpress和mysql容器都在正常运行。

2. wordpress初始化配置

2.1. 初始化

在浏览器上输入服务器的ip,即可访问wordpress界面

第一个界面为选择语言。

  • (如果你第一步从官网拉取的不是完整版,可能就没有选择语言的选项了,只有英文可用,需要后续下载语言包)

1

continue后为提示信息页。点击 现在就开始

2

在该页中,我们需要使用我们在步骤1.3.2.中设置的数据库名,用户名和密码。

需要注意的是,此处的数据库主机需要我们以IP:端口的形式输入,需要使用宿主机的IP ,以及mysql的端口。

IP不能使用'localhost',因为这是wordpress的页面,而对于wordpress来说,localhost指的是wordpress这个容器本身,而不是宿主机的ip

Snipaste_2023-08-20_21-42-02

在这一步中,如果上述的内容填写失败的话,点击“提交”会提示内输入错误,需要退回来重新修改。请仔细检查用户密码,以及数据库主机的填写是否有问题。

如果填写成功,会出现如下页面:

4

之后点击 运行安装程序 就行啦!

之后的流程如图,正常填写即可,这个是登录我们后台的用户名和密码,务必不要忘掉。

5

6

之后使用上一步设置的后台用户名密码,就能进入wordpress的后台了!

7

8

2.2. 后续

至此,我们的wordpress就搭建完毕啦!

此时我们的博客虽然比较简陋,但是已经可以进行基本的使用了。之后我们还有几件事要做:

  1. 改为使用https登录
  2. 下载几个好用的插件
  3. 找个漂亮的主题

插件

改为https我们之后会讲,这里我先推荐几个我喜欢用的插件

在这里找到安装插件的地方

image-20230820215517086

在页面右上角的搜索栏搜索插件的名字即可

  • Akismet Anti-Spam: Spam Protection
    • 反垃圾评论的插件,需要注册一个免费账号即可。如果浏览量不大也可以先等等
  • WP Githuber MD
    • 让你的文章支持markdown语法。本身是一个比较强大的编辑器插件,选项很多,自定义程度较高,而且也有中文设置菜单。
  • Wenprise Pinyin Slug
    • wordpress文章生成链接的时候,会自动帮你把中文转为拼音,并作为文章的url的一部分。

另外,如果你使用了阿里云的OSS或者腾讯云的COS等对象存储,也可以直接用关键词搜索,会自动将你的图片上传到云端,减小服务器的贷款和存储压力。

主题

最后,感谢Theme Sakurairo提供的开源主题。大家如果喜欢的话,也可以去项目上start一下!

项目地址:https://github.com/mirai-mamori/Sakurairo

官方文档:https://docs.fuukei.org/

image-20230820220100599

如人饮水,冷暖自知。
最后更新于 2023-08-22