daxue的博客搭建日记


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

笨蛋当然得做笔记!

服务器配置

跳板机: 操作系统: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罢辽~

先放个官方链接和下载链接:

rapiz1/rathole: A lightweight and high-performance reverse proxy for NAT traversal, written in Rust. An alternative to frp and ngrok. (github.com)

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 的配置,参考链接:

https://help.aliyun.com/zh/ssl-certificate/user-guide/install-ssl-certificates-on-nginx-servers-or-tengine-servers

再放一下我的配置:

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 条评论

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注