X

但行前路,莫问前程

0%

how to build your own blog

教程,启动!


选择服务器和域名

beian
为了避免实名认证和备案的繁琐流程,选择境外服务器和域名提供商

服务器

供应商

选择阿里云,正好用上上次云工开物送的300代金券和三折优惠券,选择新加披地区2核2G+100G硬盘,一年下来只需0元
除此以外还可以直接选择境外供应商,例如racknerd,vultr等,总之只要大于1核1G就够用了,毕竟搭了博客也没什么人看

系统

选择Ubuntu22.04系统

域名

建议在境外域名站购买一个域名,大概一刀一年,为了便宜可以选择.xyz .top etc.

域名解析

使用cloudfare解析,提供CDN防护,大致流程为

  • 注册并登录cloudfare
  • 将所购买域名的DNS解析服务器更改为cloudfare提供的DNS服务器

    通常可以在购买域名的管理界面的DNS修改选项中修改

服务器端配置

开放端口

在服务器供应商管理界面防火墙(或入站规则等类似说法)设置处开放22端口(ssh使用),80端口(http服务使用),443端口(https使用)

ssh

win端通过powershell远程登录服务器(确保服务器已经开放22端口)

1
ssh root@111.111.111.111 #111.111.111.111为你服务器的公网

下载必备软件

下载git

1
sudo apt install git

下载nodejs
1
sudo apt install nodejs

下载nginx
1
sudo apt install nginx

检查是否成功下载
1
2
3
4
git -v
node -v
npm -v
nginx -v

若成功显示版本号则安装成功,否则请尝试
1
2
sudo apt update
sudo apt upgrade

再次进行下载

创建git用户

添加用户并按提示设置密码

1
adduser git

修改权限
1
chmod 740 /etc/sudoers

修改文件
1
vim /etc/sudoers #vim打开要修改的文件

进入后按i键由命令模式切换到编辑模式。找到 root ALL=(ALL) ALL,在下面添加一行 git ALL=(ALL) ALL。修改完成后,先按Esc由编辑模式切换到命令模式,再输入:wq命令保存并退出编辑器。
改回权限

1
chmod 400 /etc/sudoers

为git用户配置免密登录

使用git用户免密公钥登录服务器的原理是:在本地计算机生成一个公钥文件和一个秘钥文件(类似于一个钥匙配一把锁),然后将公钥文件上传到云服务器,并将公钥安装到authorized_keys列表中去(即:将公钥文件的内容拷贝到authorized_keys文件中去)。这样本地计算机便可以通过ssh方式免密连接我们的云服务器了。

在服务器端将登陆用户切换到git用户,然后在~目录(根目录)下创建.ssh文件夹,用来存放公钥。

1
2
3
su git
cd ~
mkdir .ssh

在本地计算机桌面右键打开GitBash(或Powershell),在本地生成公钥/私钥对。
1
2
3
cd ~
cd .ssh
ssh-keygen

接下来,碰见系统询问就直接按回车键。此时便会在本地计算机的用户根目录(C:\Users\<你的windows用户名>)下自动生成 .ssh(隐藏)文件夹,并在其中创建两个文件,分别为:id_rsa(私钥)和id_rsa.pub(公钥)。

在本地计算机上给私钥设置权限。

1
2
chmod 700 ~/.ssh
chmod 600 ~/.ssh/id_rsa

进入到.ssh文件夹中,右键单击在terminal中打开,利用scp将公钥传输到服务器root文件夹中

1
scp id_rsa.pub root@111.111.111.111:/root

进入服务器,在服务器中
1
2
3
cd ~/.ssh
cp id_rsa.pub authorized_keys
cat id_rsa.pub >> ~/.ssh/authorized_keys

设置权限
1
2
chmod 600 ~/.ssh/authorized_keys
chmod 700 ~/.ssh

大功告成,以后登录git用户就不用输入密码了
1
ssh git@111.111.111.111

即可进入

在服务器端配置git仓库

新建文件夹存放blog

1
mkdir -p /home/www/hexo

配置hook文件
1
2
3
cd ~
git init --bare hexo.git
vim ~/hexo.git/hooks/post-receive

进入后按i键由命令模式切换到编辑模式。输入: git —work-tree=/home/www/hexo —git-dir=/home/git/hexo.git checkout -f完成以上修改后,先按Esc由编辑模式切换到命令模式,再输入:wq命令保存并退出编辑器。
授予hook文件可执行权限。
1
2
3
chmod +x ~/hexo.git/hooks/post-receive
cd ~
sudo chmod -R 777 /home/www/hexo

配置nginx

之前已经安装了nginx,查找安装的nginx在哪

1
whereis nginx

若终端显示
1
nginx: /usr/sbin/nginx /usr/lib/nginx /etc/nginx /usr/share/nginx /usr/share/man/man8/nginx.8.gz

则nginx配置文件在/etc/nginx中
1
2
cd /etc/nginx
vim nginx.conf

在http{}中添加server{}如下
1
2
3
4
5
6
7
8
9
10
11
server {
listen 80;
listen [::]:80;
root /home/www/hexo; # 修改的地方
server_name morgandesign.top 111.111.111.111; #修改server_name为你的域名,可以加上服务器公网ip,这样IP,域名均可访问
location / {
# First attempt to serve request as file, then
# as directory, then fall back to displaying a 404.
try_files $uri $uri/ =404;
}
}

先按Esc由编辑模式切换到命令模式,再输入:wq命令保存并退出编辑器。
重启nginx服务
1
service nginx restart

浏览器输入 111.111.111.111:80 查看是否有nginx 404界面。

windows端配置

安装必备软件

安装nodejs

  • 官网下载即可

安装git

  • 官网下载即可

安装hexo

在D盘新建MyHexoBlogs文件夹用来存放个人博客,进入该文件夹,右键打开Git Bash,使用 npm 安装 Hexo。

1
npm install -g hexo-cli

hexo配置

Hexo安装完成后,在MyHexoBlogs文件夹下新建myblogs项目,并对其进行初始化。

1
2
3
hexo init myblogs
cd myblogs
npm install

此时,会在MyHexoBlogs文件夹下新建myblogs文件夹,并在其内部生成相应的项目文件。
在myblogs文件夹下启动hexo服务。

1
hexo server

此时在本地打开浏览器,通过 http://localhost:4000/ 便可访问基于Hexo的个人博客主页了。
在myblogs文件夹中打开_config.yml,修改其中deploy参数为
1
2
3
4
deploy:
type: git
repo: git@111.111.111.111:home/git/hexo.git
branch: master

在本地计算机安装插件: hexo-deployer-git 和 hexo-server。在myblogs文件夹下右键打开GitBash,输入以下命令:
1
2
npm install hexo-deployer-git --save
npm install hexo-server

_这俩插件的作用分别是使用Git自动部署,和hexo本地简单的服务器。_
在本地计算机配置Git全局变量。 输入以下命令:
1
2
git config --global user.email "xxxxxxxxxx@xx.com"
git config --global user.name “xxxx”

使用Hexo生成、发布个人博客。
1
hexo clean && hexo g -d

此时,便可以通过浏览器访问http://xxx.xxx.xxx.xxx:80/ 进入hexo我的博客主页了。

域名解析

在cloudfare中,添加DNS记录
类型为A,名称为@,IP为你的公网IP,打开代理状态
静待10min,尝试用域名打开你的blog

完结撒花

仅以此纪念我的三个儿子
huahuahuahuahuahua