























暂无文章
警告:本文是一篇纯新手向的博客建站教程,大神请回避!
建立一个个人博客的想法已经很久了,作为一个 03 年开始上网的网民来说有这个想法一点都不奇怪吧。但直到去年双十一看到腾讯云服务器打折才开始入坑,域名 + 轻量应用服务器大概 100 左右。
刚开始是使用 Gridea 做静态博客,当时还没有很好地科学上网途径,所以使用的是 coding page。后来因为对思源笔记的喜爱,爱屋及乌似的就想尝试使用 SOLO 博客。但是 SOLO 的建站花费了我大概十几个小时仍然不成功,原因主要是我网络知识的匮乏,一个 Nginx 反向代理就花费了我 5~6 个小时左右的时间,实际上我也是主要在处理域名与证书的问题。后来无奈转向了官方教程更丰富的Halo博客。
在经过了无数次的 debug 之后,我终于建成了我自己的博客啦!官方和网上的教程虽然已经很详细了,但是还是有很多坑是小白难以避免的,有些坑真的只有自己趟过才知道深浅。明明是一个很简单的问题,但对于小白来说往往要花费巨量的时间和精力才能解决。
出于对这几天艰辛建站历程的不舍,也出于一个老网民始终认为分享才是互联网唯一真理的认知,在此以一个小白的身份写下这篇面向小白的教程。
欢迎讨论和学习,如果你使用本教程成功建站,请在下面留下你的博客友情链接,方便PY😜。
本教程的代码均来自官方文档和其他博主教程,均已注明出处。
名词解释:
小白:非计算机科学、网络工程等 IT 专业背景,不会自己写代码,从未接触过网站建立等工作。以本人背景为例:毕业于核工程与核技术专业,从事环保行业,唯一熟悉一点的编程语言是汇编和 python。
请各位小白仔细阅读下述文字,确保自己完成前期准备工作。
cmd 启动 powershell,在 powershell 面板中使用 ping+IP 地址、ping+ 域名的方式检验连接情况。无论是 Solo 还是 Halo,我都推荐使用 docker 安装(下文均以 CentOS 为例,Ubuntu 等其他版本 Linux 自行查找命令即可)。原因在于安装与后续管理都比较方便,这里贴一下我安装 docker 找到的比较好的代码:
来源:陈小C的博客
sudo yum install -y yum-utils sudo yum-config-manager \
--add-repo \
http://mirrors.aliyun.com/docker-ce/linux/centos/docker-ce.reposudo yum install -y docker-ce docker-ce-cli containerd.iosystemctl enable docker --now这里额外添加了docker的生产环境核心配置cgroup
sudo mkdir -p /etc/docker
sudo tee /etc/docker/daemon.json <<-'EOF'
{
"registry-mirrors": ["https://82m9ar63.mirror.aliyuncs.com"],
"exec-opts": ["native.cgroupdriver=systemd"],
"log-driver": "json-file",
"log-opts": {
"max-size": "100m"
},
"storage-driver": "overlay2"
}
EOF
sudo systemctl daemon-reload
sudo systemctl restart docker输入 docker version 看到如下显示就安装成功了

像我一样的小白推荐按下述代码一路复制即可,不要自行改动任何代码!
mkdir ~/.halo && cd ~/.halowget https://dl.halo.run/config/application-template.yaml -O ./application.yamlvim application.yamldocker pull halohub/halo:latest docker run -it -d --name halo -p 8090:8090 -v ~/.halo:/root/.halo --restart=unless-stopped halohub/halo不清楚端口是什么概念的,请不要改动 8090:8090!
Tips:
对于身为小白的我们而言,需要去服务器的防火墙中添加「8090」端口,路径如下(以腾讯云为例):

5. 进入防火墙页面后,点击添加规则,按图中内容配置。

详细教程可以参考这篇:腾讯云轻量服务器开放端口方法教程 - 知乎
添加完之后稍等几分钟(3~5 分钟),访问 http://ip:8090 即可进入 Halo 的安装引导页面,为了避免未知的麻烦,请不要在这一步初始化 Halo,成功打开引导页面后就可以关闭了。
这一步的作业是为了实现以 https://域名 的形式访问博客,也就是让你的博客实现正常化访问。

不要自行改动任何代码!
sudo yum -y install make zlib zlib-devel gcc-c++ libtool openssl openssl-develyum install -y pcre pcre-develsudo yum install yum-utilscd /etc/yum.repos.d/vi nginx.repo # 创建nginx.repo文件[nginx-stable]name=nginx stable repobaseurl=http://nginx.org/packages/centos/$releasever/$basearch/gpgcheck=1enabled=1gpgkey=https://nginx.org/keys/nginx_signing.keymodule_hotfixes=true[nginx-mainline]name=nginx mainline repobaseurl=http://nginx.org/packages/mainline/centos/$releasever/$basearch/gpgcheck=1enabled=0gpgkey=https://nginx.org/keys/nginx_signing.keymodule_hotfixes=trueyum install nginxnginx -v # 查看版本cd /etc/nginxTips:
使用 WinSCP 将存在本地的数据上传到服务器中:
下面是关键步骤:
修改 conf 文件:将域名改成自己的域名,SSL 证书文件也记得要使用你自己下载的 SSL 证书文件名。
vi nginx.conf按「i」键,进入 insert 模式,按如下代码修改,记得将域名和证书文件名替换成你自己的。
user nginx;
worker_processes auto;
error_log /var/log/nginx/error.log notice;
pid /var/run/nginx.pid;
events {
worker_connections 1024;
}
http {
include /etc/nginx/mime.types;
default_type application/octet-stream;
log_format main '$remote_addr - $remote_user [$time_local] "$request" '
'$status $body_bytes_sent "$http_referer" '
'"$http_user_agent" "$http_x_forwarded_for"';
access_log /var/log/nginx/access.log main;
sendfile on;
#tcp_nopush on;
keepalive_timeout 65;
#gzip on;
include /etc/nginx/conf.d/*.conf;
server {
listen 80;
server_name catchersun.cn www.catchersun.cn;
return 301 https://$host$request_uri;
}
server{
listen 443 ssl;
server_name catchersun.cn www.catchersun.cn;
ssl_certificate "/etc/nginx/catchersun.cn.pem";
ssl_certificate_key "/etc/nginx/catchersun.cn.key";
ssl_session_cache shared:SSL:1m;
ssl_session_timeout 10m;
ssl_ciphers ECDHE-RSA-AES128-GCM-SHA256:ECDHE:ECDH:AES:HIGH:!NULL:!aNULL:!MD5:!ADH:!RC4;
#表示使用的加密套件的类型。
ssl_protocols TLSv1 TLSv1.1 TLSv1.2; #表示使用的TLS协议的类型。
ssl_prefer_server_ciphers on;
location / {
proxy_pass http://127.0.0.1:8090;
proxy_http_version 1.1;
proxy_cache_bypass $http_upgrade;
proxy_set_header Upgrade $http_upgrade;
proxy_set_header Connection "upgrade";
proxy_set_header Host $host;
proxy_set_header X-Real-IP $remote_addr;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
proxy_set_header X-Forwarded-Proto $scheme;
proxy_set_header X-Forwarded-Host $host;
proxy_set_header X-Forwarded-Port $server_port;
}
}
}将 server_name 后的内容换成你自己的域名,将 ssl_certificate、ssl_certificate_key 换成你自己的证书文件。比如我的 ssl_certificate 证书文件是 weiblog.fun_bungle.crt,请根据你下载的证书种类来修改。
3.修改完后按「Esc」,退出 insert 模式,检查一下填写的信息是否正确。请一定要确认信息!

4.输入「:wq」,保存并退出。
nginx -c /etc/nginx/nginx.conf # 如果重启不成功报错端口绑定失败,可以先查找占用端口的进程并强制杀死,之后重新启动。如下:# netstat -tunlp | grep 80 # kill -9 $pid启动成功之后可以进入服务器提供商的⌈SSL 证书⌋-⌈监控状态⌋页面进行查询。在没有绑定之前,监控状态时异常,如果绑定成功之后,监控状态会变为⌈正常⌋。如下图所示:

Halo 博客至此就完成了建站的全部工作,输入你自己的域名后就可以开始使用 Halo 博客了 😘
如果这篇文章对你的博客建站有帮助,请在下方评论留下你的站名。
如果建站过程中还是有不顺利的地方,也请在下方评论反馈。
也欢迎来我的博客逛逛。
祝顺!
此内容由惯性聚合(RSS阅读器)自动聚合整理,仅供阅读参考。 原文来自 — 版权归原作者所有。