打造你的个人博客 | WordPress 建站
唠唠闲话
算起来博客建站将近两年了,主站第一篇已经是 2021 年 7 月 19 日,时间真快。。。
写这篇教程的原因很简单,最近准备将写作迁移到 WordPress,适应新博客后,这边可能就不怎么更新了。在教程开始前,不妨唠嗑一会。尽管博客开篇都是“唠唠闲话”,但事实上我很少真的唠嗑,都是直性子直入主题,把博客当笔记来用,懒得写思考和铺垫。
缘起
为什么写博客?说来话长,最开始了解到博客这个概念是在高中,偶然翻到 Matrix67 的网站,网站很多有趣的数学文章。那时对博客没什么认识,只是也喜欢思考数学,上大学后尝试用投稿推送的方式分享感兴趣的课外探究。
对写博客产生兴趣是在研二寒假,也就是 21 年初。我正通过“苹果”的 B 站教程自学 Mathematica。这门语言很神奇,苹果的视频风格也很有趣,在视频中苹果特别安利了一个博客,kylen-比特之理。比特之理的这篇《我为什么喜欢 Mathematica》我每次看了都忍不住笑。很随性的聊天风格,就好像 Kylen 本人在跟你调侃似的。
翻看这些博客,有一种碰见志同道合朋友的感觉,也希望自己能成为这类“有趣”的人。
顺便摘录在 CSDN 上看到一段话
这个嘛,我是一开始写博客就是为了让别人看,上边也说了,后来发现还挺有意思。看一下周围大学毕业了有很多人都不知道自己有了什么,留下了什么,会些什么。再看一下发现我的四年还有一个博客,至少发现自己也学习过,而且看着自己的排名和浏览量也有继续学习和写博客的动力了。就这么单纯
兴趣起落
大学接触 C 语言后,编程 + 数学一直是我最热衷探索的形式。但随着编程的学习深入,不可避免要接触繁杂的计算机知识,而写博客正是梳理这类知识的绝佳实践。
研二摸索了 Netlify 搭建博客,通过网站(2021-06)分享讨论班讲义。也第一次发现,拥有个人网站是一件很酷但非常简单的事情(尽管第一次捣鼓免不了折腾)。
暑假跟着程序羊的教程在 GitHub 搭建个人博客,给电脑装了双系统,后来又买了域名和服务器,算正式入坑了。
2021 年刚开始写博客,对什么都充满热情,充满兴趣,想学啥就新建个页面,边学边写。Git,GitHub,服务器,形式证明,量子计算,代数编程,Julia,Python。。。目前一半的博客都是 2021 下半年写。
2022 年转到计算机后,反而过得倍加迷茫,一个间接的表现是博客也不怎么更新了。
重启博客
现在,2023 下半年,人工智能大爆发的一年,特别对自然语言处理(NLP)领域。很荣幸来到这个领域,通常来说,我应该很兴奋才对。但过去一年的起起伏伏,各种焦虑压抑,不断消耗着时间和心态。。。
前边提到,Matrix67 和比特之理是我很喜欢的两个博客网站。转计算机系后也接触了些很有趣的博客,比如苏剑林的科学空间。他是中山大学数学系的大佬,轻松玩转统计,物理,人工智能。。。跟我完全不是一个层级的人。
还有一个非常漂亮的博客,也是我启动新博客的直接动力。苯苯的 Bensz’s blog,一个生物医学的博主,刚发现他也是广东的!!网站很多技术干货,干货之外,也有不少闲聊唠嗑的内容,比如 关于我 和 你需要个人博客吗?。
博客颜值很高,技术宅的梦中情站
(=・ω・=)
两年前刚摸索建站的那种热情一股脑地上来了,一次难得的振奋。
未来定位
老实说,我不清楚未来自己会做什么,在学校的这几年该做什么。比起忙着焦虑,不如从这些能让自己兴奋的事情开始做起。 内容方面,这些博客是很好的参考。苯苯的【文献精读】系列,整理兴趣领域最新的研究综述;或者像苏剑林的这种随笔。。。算了,短期做不到这水准。但苯苯第一期 生物快讯 就写得很简陋,干就完事!
当然,这只是计划的一部分,还有很多想尝试的。
(`・ω・´)
闲话就唠嗑到这里,下边开始正文吧!
WordPress
教程参考了苯苯的 WordPress系列 搭建 WordPress 个人博客。安装遇到任何问题,欢迎在文章底部留言评论~
环境配置
服务器的环境如下
1 | uname -a |
通过下边命令安装 docker 和 docker-compose
1 | # 安装 Docker |
特别留意 docker compose 的版本,用 apt
直接安装的是 1.25.x
,比 GitHub 发行版要低,和接下来的配置文件不兼容。
编写配置文件
为保持工作环境干净,新建 workpress 工作区目录,后续操作都在该目录下进行,方便管理和迁移。
1 | mkdir -p ~/docker |
编写配置文件 docker-compose.yml
和 .env
,前置为容器配置,后者用于编辑关键变量。
编写 .env
文件,定义数据库的账号和密码:
1 | MYSQL_ROOT_PASSWORD=123456 |
再编写 docker-compose.yml
文件:
1 | version: '3.0' |
内容说明:
- 三个服务:
db
、app
、redis
,分别对应数据库、WordPress、缓存 - 容器设置中,
container_name
为容器名称,volumes
为主机到容器的目录映射,env_file
指定环境变量 app
容器中,ports
为端口映射,也就是站点的访问端口
这里可以指定网络 IP,比如
1 | services: |
启动容器
开启服务:
1 | docker-compose up -d |
该命令会根据 docker-compose.yml 文件创建容器,并在后台启动。当前目录下会创建 db
、app
、redis-data
三个文件夹,用于存放容器数据。
此时访问 http://ip:4145
,即可看到 WordPress 的安装界面。(ip
为服务器 ip 地址)
配置 Nginx
下边介绍 Nginx 文件的配置。
注:苯苯教程用的是 NPM(Nginx Proxy Manager),支持可视化且能监控流量。个人对 NPM 的使用不熟,特别对于
proxy_set_header
之类参数的配置,或许以后可以尝试一下。
这一步我们需要一个域名,并解析到当前服务器,以 wordpress.wzhecnu.cn
为例(真实网址不是这个;):
先编写用于 http 访问的 Nginx 配置:
1 | server { |
有几个参数需要重点说明(对 Nginx 有兴趣可以了解):
-
proxy_pass
:反向代理的地址,这里172.17.0.1
是 Docker 容器的网关地址。在 Docker 默认的网络模式中,容器会分配从 172.17.0.2 开始的 IP 地址,并将 172.17.0.1 分配给网关。这个网关用于连接容器网络和宿主机网络,以及不同容器之间的通信。 -
proxy_set_header
:设置请求头,这一个参数非常重要,因为 wordpress 对访问有严格控制,不设置proxy_set_header Host $host
仍可以访问服务后台,但不能正常访问 WordPress 站点。
proxy_set_header
参数介绍
Host
,默认为上游服务器的 IP 地址,也就是172.17.0.1
,这里设置为$host
,客户端访问的 Host,也就是wordpress.wzhecnu.cn
X-Forwarded-For
,默认是代理服务器的 IP,这里用$remote_addr
设置为客户端的 IPX-Forwarded-Proto
设置协议,http
或https
安全起见,我们一般会用 https
访问,并强制重定向,完整配置如下
1 | server { |
使用 https
需要申请域名证书,并将证书移动到 /etc/nginx/cert
目录下。
配置编写完成后,重启 Nginx
1 | sudo nginx -s reload |
设置访问域名
到这一步,访问 wordpress 可能需要带上端口号,比如 https://wordpress.wzhecnu.cn:4145/wp-admin
。为此,我们需要在 WordPress 中修改访问地址,如下图。
不出意外,执行到这一步就大功告成了!
以上,配置遇到其他问题,欢迎在评论区留言。