个人博客的配置教程(github搭建与服务器搭建)
此教程并非完全原创,也有白嫖的(如有侵权联系本人删除)。都是经过个人亲自配置过的。教程针对windows系统下借用github托管的方法。参考文章
主要包括安装Hexo, 配置域名, 用个人服务器搭建 具体的主题配置等不再写出,配置成功后大家可以自行查阅相关资料,个人认为配置是最蛋疼的。
安装Hexo
1. 安装Git
不多解释,如果你还不知道Git是什么,那可以和廖老师聊一聊,总之配置的过程不是很难,win下去官网下载Git即可。Download git
使用git --version
查看版本 如果正确安装应该如下显示一个版本号:
$ git --version
git version 2.27.0.windows.1
2. 安装nodejs
就像写C需要MinGW,写python一样安装python一样,这里也要安装相应的库,否则就会如各种DLL模块丢失出现的情况一样。依然是提供windows解决方案。windows NodeJS下载 选择LTS版本下载即可。
使用node -v
和 npm -v
查看版本,使用刚刚安装好的git bash就好了(之后也都是)
npm -v
#以下为输出
6.14.11
node -v
#以下为输出
v14.15.5
3. 安装hexo
创建 文件夹,然后进入这个文件夹,右键使用git bash打开,然后开始运行命令
npm install -g hexo-cli
使用hexo -v
查看版本
npm install -g hexo-cli
hexo -v
#以下为输出
INFO Validating config
hexo: 5.3.0
hexo-cli: 4.2.0
os: Windows_NT 10.0.18363 win32 x64
node: 14.15.5
v8: 8.4.371.19-node.18
uv: 1.40.0
zlib: 1.2.11
brotli: 1.0.9
ares: 1.16.1
modules: 83
nghttp2: 1.41.0
napi: 7
llhttp: 2.1.3
openssl: 1.1.1i
cldr: 37.0
icu: 67.1
tz: 2020a
unicode: 13.0
这样就安装完成了。
4. hexo初始化(基本配置)
"myblog"为自己选的名字,会创建一个同名的文件夹
hexo init myblog
然后
cd myblog
npm install
完成后执行
hexo g
hexo server
此时在本机的localhost:4000
已经生成了网页
5. GitHub仓库
创建一个新仓库,名字要和用户名一样并且加后缀,示例:
我的github账户名是XuYi-fei,新建的仓库名称那一栏就要输XuYi-fei.github.io
按照教程添加公钥
6. 部署hexo到GitHub
修改网站根目录下的_config.yml
,在最后修改deploy目录
先要安装
npm install hexo-deployer-git --save
deploy:
type: git
repo: https://github.com/YourgithubName/YourgithubName.github.io.git
branch: master
把YourgithubName改掉,然后
hexo clean && hexo g && hexo d
注意这个过程中有没有报错,通常在hexo d后出现这样的信息为成功
[master 401dd7c] Site updated: 2021-02-21 15:46:30
38 files changed, 371 insertions(+), 2619 deletions(-)
delete mode 100644 jiao-cheng/test/git-github-pei-zhi/index.html
Enumerating objects: 149, done.
Counting objects: 100% (149/149), done.
Delta compression using up to 12 threads
Compressing objects: 100% (47/47), done.
Writing objects: 100% (77/77), 11.48 KiB | 588.00 KiB/s, done.
Total 77 (delta 37), reused 0 (delta 0), pack-reused 0
To xxx.xxx.xxx.xxx:/home/git/repos/blog.git
3f6d719..401dd7c HEAD -> master
Branch 'master' set up to track remote branch 'master' from 'git@xxx.xxx.xxx.xxx:/home/git/repos/blog.git'.
INFO Deploy done: git
过一会儿就可以在http://yourname.github.io
这个网站看到博客
配置域名
首先要在阿里云买个域名(本人是阿里云购买的),然后要进行解析和配置。如下图在最右边的解析
然后如上添加解析,两个ip地址照抄。
然后在你的博客文件source中创建一个名为CNAME文件,不要后缀。写上你的域名。
接着登录GitHub,进入之前创建的仓库,点击settings,设置Custom domain,输入你的域名
再来
$ hexo clean && hexo g && hexo d
这样就能通过域名访问到github,也就是配置并且上传的网站了。
用服务器搭建
仍然是先在阿里云购买一个服务器,如果是学生的话答个题然后买的话也不贵。我的是Centos7.2,2M带宽,40G。价格是100块一个月。
首先注意如果要是想把刚刚的域名和现在的服务器绑定然后备案的话,那有一个很坑的地方就是要把之前的域名解绑,不然死活过不来超级难受。这个不难但是一开始经常注意不到。可以参考这篇文章,另外为了备案我为了保险把之前的三个解析也全部删掉了。
好了现在开始说如何配置用购买的服务器的ip直接访问。主要就是服务器端的配置。
-
安装git
git --version // 如无,则安装 yum install curl-devel expat-devel gettext-devel openssl-devel zlib-devel perl-devel yum install -y git
-
创建用户并配置其仓库
useradd git passwd git // 设置密码 su git // 这步很重要,不切换用户后面会很麻烦 cd /home/git/ mkdir -p projects/blog // 项目存在的真实目录 mkdir repos && cd repos git init --bare blog.git // 创建一个裸露的仓库 cd blog.git/hooks vi post-receive // 创建 hook 钩子函数,输入了内容如下
在弹出的文件中,输入以下内容:
#!/bin/sh git --work-tree=/home/git/projects/blog --git-dir=/home/git/repos/blog.git checkout -f
添加完毕后修改权限
chmod +x post-receive exit // 退出到 root 登录 chown -R git:git /home/git/repos/blog.git // 添加权限
测试
git仓库
是否可用,另找空白文件夹(这里是在windows的git)git clone git@server_ip:/home/git/repos/blog.git
-
建立
ssh
信任关系,windows下的git bash输入ssh-copy-id -i C:/Users/yourname/.ssh/id_rsa.pub git@server_ip ssh git@server_ip // 测试能否登录
此时的 ssh 登录 git 用户不需要密码!否则就有错
-
为了安全起见禁用 git 用户的 shell 登录权限,从而只能用 git clone,git push 等登录(这一步没有的话也可以)
cat /etc/shells // 查看 git-shell 是否在登录方式里面 which git-shell // 查看是否安装 vi /etc/shells # 添加上2步打印出来的路径,通常没有的那个是 /usr/bin/git-shell
修改
/etc/passwd
中的权限vim /etc/passwd // 将原来的 git:x:1000:1000::/home/git:/bin/bash // 修改为 git:x:1000:1000:,,,:/home/git:/usr/bin/git-shell
-
搭建nginx
#下载并安装nginx cd /usr/local/src wget http://nginx.org/download/nginx-1.15.2.tar.gz tar xzvf nginx-1.15.2.tar.gz cd nginx-1.15.2 ./configure // 如果后面还想要配置 SSL 协议,就执行后面一句! ./configure --prefix=/usr/local/nginx --with-http_stub_status_module --with-http_ssl_module --with-file-aio --with-http_realip_module make && make install alias nginx='/usr/local/nginx/sbin/nginx' // 为 nginx 取别名,后面可直接用
#测试是否成功,输入以下命令后访问自己的ip nginx
修改配置文件
nginx -s stop // 先停止nginx cd /usr/local/nginx/conf vi nginx.conf # 修改 root 解析路径,如下图 # 同时将 user 改为 root 如下图,不然nginx无法访问 /home/git/projects/blog nginx -s reload
然后再更改
_config.yml
把之前deploy的地址改为git@server_ip:/home/git/repos/blog.git
执行三件套
hexo clean && hexo g && hexo d
即可通过访问ip看到网页