总的来说,这是一篇写给未来自己的搭建笔记。按照黄姐姐的话说:

笨蛋当然得做笔记!
服务器配置
跳板机: 操作系统:CentOS-7.9.2111-x64 CPU:E5-2650V4 4核 内存:2G
内网服务器:操作系统:Ubuntu 22.04.4 内存:4G
至于为何不直接在跳板机上搭博客,非得绕一个大圈子。因为——贫穷,我实在是无法信任八块八毛八的机子的稳定性啊。
wordpress部署:php+nginx+mysql
wordpress的搭建过程过于顺利,实质上并没有遇到很大的坑,印象反而不深刻了。放个参考链接:
从零搭建WordPress个人站点 Ubuntu+Nginx+Mysql+PHP_使用ubuntu20.4系统通过wordpress建站详细教程-CSDN博客
rathole内网穿透
由于我的博客是搭载在内网环境下的,想要通过外部访问,穿透是难以避免的,选择rathole只是因为黄姐姐压榨我给(他)打工的时候用的也是rathole罢辽~
先放个官方链接和下载链接:
Releases · rapiz1/rathole (github.com)
绞尽脑汁想了想穿透遇到的问题,由于战线拉的太长,现在已经不甚清楚了。印象最深刻应该是在跳板机上搭docker(因为centos没法直接用rathole),以及Ubuntu系统要新版本才能用rathole做穿透。
在跳板机上的修改server.toml配置后的命令:
docker ps
docker restart ID
在内网服务器上修改client.toml配置后的命令:
./rathole client.toml
sudo systemctl status rathole
关于wordpress的一系列大坑
这真是一篇血泪史!!!
由于是第一次搭博客,把博客搭起来之后过于激动,daxue并没有注意到是通过内网环境打开的,就直接兴冲冲写了人生的第一篇blog,发给小伙伴们欣赏的时候才发现除了自己谁也打不开。总的来说,下面这玩意儿全责。

大雪的第一件事,就是改地址。由于我穿透使用了80端口,没有经验的大雪,就直接把网址改成了:

然后内网也打不开博客了。原因:
浏览器访问会吃掉 :80,但 WordPress 会期望 host 带着 :80,就一直重定向。
这就得去数据库中改网址了(真的是没有难度也要创造难度,硬生生让我捡起了遗忘多年的MySQL知识)。放一下命令:
mysql -u wordpressuser -p
use wordpress;
select * from wp_options where option_name="home" or option_name="siteurl";
update wp_options set option_value = replace(option_value ,"https://blog.lyx.cool:80","https://blog.lyx.cool");
!!!网址不能有空格!!!网址不能有空格!!!网址不能有空格!!!
重要的事情说三遍
wordpress一直报错,一个空格折磨了我一晚上。
至此,我发现wordpress登录不进去了,我又把密码改了。
UPDATE wp_users SET user_pass = ******* WHERE ID = 1;
之后博客就能打开了,但是!博客内容里面的图片看不见,接着去改图片网址:
update wp_posts set post_content =replace(post_content,"https://blog.lyx.cool:80","https://blog.lyx.cool");
这真是一个美丽的套娃过程~
从http到https的跨越
想要实现安全的访问,当然得签CA证书啦~
放个参考链接:
acmesh-official/acme.sh: A pure Unix shell script implementing ACME client protocol (github.com)
参考教程说:

请在root用户下安装acme.sh。不然就会踩很多很多很多的坑,无数的权限问题在后面等着(也可能是我学艺不精,总之在普通用户下面我没搭起)
把ca服务器改成letsencrypt,这个更好用!
acme.sh --set-default-ca --server letsencrypt
生成证书:
acme.sh --issue -d blog.lyx.cool --webroot /var/www/html
安装证书:
cd /etc/nginx
acme.sh --install-cert -d blog.lyx.cool \
--key-file /etc/nginx/key.pem \
--fullchain-file /etc/nginx/cert.pem \
--reloadcmd "service nginx force-reload"
关于Nginx 的配置,参考链接:
再放一下我的配置:
cd /etc/nginx/sites-enabled
nginx修改的(在同一个server块中):
listen 443 ssl;
server_name blog.lyx.cool;
ssl_certificate /etc/nginx/cert.pem;
ssl_certificate_key /etc/nginx/key.pem;
if ($scheme = http) {
return 301 https://$server_name$request_uri;
}
再对nginx进行状态检测:
sudo nginx -t
sudo nginx -s reload
检查连通性:
sudo curl -v https://localhost:443
接着,在mysql中,把第一篇博客内容里面的https://blog.lyx.cool全部改为https://blog.lyx.cool,接着在rathole中将https配置完成。
至此,daxue的博客搭建圆满结束!撒花~~~
黄姐姐苦口婆心:

大雪的第二篇博客顺利出炉~~~~
《“daxue的博客搭建日记”》 有 1 条评论
牛