Arch Linux下hexo博客的搭建与阿里云服务器

提示

与其说是一个教程,其实是搜集过来的一些文章。

前提条件

  1. 安装必须的依赖文件
1
sudo pacman -S npm nodejs git

使用node -vnpm -v检查是否安装成功
2. 使用npm安装hexo:

1
2
3
npm install hexo-cli -g
# hexo-cli 是 hexo的指令集。
hexo -v
  1. 初始化hexo博客
1
2
3
4
5
mkdir blog
cd blog
hexo init #初始化hexo博客
hexo g # hexo博客本地编译
hexo s # hexo本地端口预览

如果本地端口占用,使用hexo s -p 4567或任意端口进行即可

阿里云服务器

  1. 购买阿里云服务器,如果是新人或者是学生,可以薅羊毛,买个轻量云服务器,一年下来也就40来块钱,是叫做飞天计划

阿里云对于学生优惠还是很大的,抓紧薅羊毛

  1. 我这里购买的是轻量应用服务器,进入阿里云首页,点击控制台,然后添加自己的服务器类型:

  2. 点击进入服务器,然后记住服务器的公网IP,在服务器运维 中选择远程连接,设置自己的root密码。
    轻量云服务器需要选择centos7系列,这个系列最容易配置,具体是在图片右边重置系统选择centos7系列里面的即可。

  3. 通过ssh远程连接:

1
2
3
sudo pacman -S ssh # 另外的可以根据电脑类型选择合适的安装方法,这个是arch
ssh-keygen -t rsa # 生成公钥,现在还用不到
ssh root@xx.xx.xx.xx #公网IP,不是内网IP
  1. 通过ssh远程连接之后,出现welcome to aliyun之类的字符串,就算是成功连接了。

  2. 安装并创建git用户

1
2
yum install git 
adduser git
  1. 添加账户权限
1
2
chmod 740 /etc/sudoers
vim /etc/sudoers

进入之后查找:

1
2
## Allow root to run any commands anywhere
root ALL=(ALL) ALL

在这段话之后添加:

1
git   ALL=(ALL)     ALL

保存退出:wq,然后修改权限:

1
chmod 400 /etc/sudoers

设置git账户密码:

1
sudo passwd git

切换至git用户,创建~/.ssh文件夹和~/.ssh/authorized_keys文件,并且赋予权限:

1
2
3
4
5
6
su git
mkdir ~/.ssh
vim ~/.ssh/authorized_keys
# 然后将arch中生成的id_rsa.pub文件中的公钥复制到authorized_keys,这一部分是在本地的~/.ssh之中。
chmod 600 /home/git/.ssh/authorized_keys
chmod 700 /home/git/.ssh

然后使用:

1
ssh -v git@SERVER

创建目录:

1
2
3
4
5
6
7
8
9
#repo作为为Git仓库目录
mkdir /var/repo
chown -R git:git /var/repo
chmod -R 755 /var/repo
#hexo作为网站根目录
mkdir /var/www/
mkdir /var/www/hexo
chown -R git:git /var/www/hexo
chmod -R 755 /var/www/hexo

创建裸git仓库:

1
2
cd /var/repo
git init --bare hexoBlog.git

创建一个新的 Git 钩子,用于自动部署 在 /var/repo/hexoBlog.git 下,有一个自动生成的 hooks 文件夹。我们需要在里边新建一个新的钩子文件 post-receive。

1
vim /var/repo/hexoBlog.git/hooks/post-receive

按 i 键进入文件的编辑模式,在该文件中添加两行代码(将下边的代码粘贴进去),指定 Git 的工作树(源代码)和 Git 目录(配置文件等)

1
2
#!/bin/bash
git --work-tree=/var/www/hexo --git-dir=/var/repo/hexoBlog.git checkout -f

之后保存退出:wq
到这个时候就搭建完成了。
7. 云服务器配置Nginx
用宝塔面板来一键部署Nginx Linux面板6.0安装命令(暂时仅兼容Centos7.x,其它系统版本请安装5.9稳定版):

1
yum install -y wget && wget -O install.sh http://download.bt.cn/install/install_6.0.sh && bash install.sh

升级linux面板6.0

1
curl http://download.bt.cn/install/update6.sh|bash

安装完成后会显示面板后台地址·账号·密码。打开面板后台地址登陆面板,在应用里面搜索Nginx,静静等待部署。

部署完成,点击网站-添加站点-输入域名(没有域名的输入自己的IP地址)-底部的PHP版本选择”纯静态”-提交。

网站创建完成之后,点击Nginx的配置:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
server
{
listen 80;
# server_name 填写自己的域名
server_name luckyzmj.cn blog.luckyzmj.cn;
index index.php index.html index.htm default.php default.htm default.html;
# 这里root填写自己的网站根目录,修改为/var/www/hexo
root /var/www/hexo;
# 定义错误页面码,如果出现相应的错误页面码,转发到那里。
error_page 404 403 500 502 503 504 /404.html;
# 承接上面的location。
location = /404.html {
# 放错误页面的目录路径。当然默认可以在网站目录下,也可以定义放置错误页面的位置。
root /usr/404.html; #网上搜索404模版,写进这个文件即可

404页面配置

之后保存退出,

1
service bt restart
  1. 设置权限:
1
2
chown -R git:git /var/repo/
chown -R git:git /var/www/hexo
  1. 退出云端
1
2
3
# 因为是git用户,使用两次exit,root 只需要一次
exit
exit

本地配置

  1. git全局配置
1
2
3
4
#定义邮箱(更换为你的邮箱地址就行)
git config --global user.email "you@example.com"
#定义名称(更换自定义一个名称就行)
git config --global user.name "Your Name"
  1. 配置_config.yml
    进入博客目录
1
cd blog

配置_config.yml,找到deploy

1
2
3
4
5
6
deploy:
type: git
#server改为你的服务IP地址或解析后的域名
#例如我改为repo: git@luckyzmj.cn:/var/repo/hexoBlog.git
repo: git@server:/var/repo/hexoBlog.git
branch: master

保存,然后hexo一键三联

1
hexo cl & hexo g & hexo d

在你的IP地址之下查看…

hexo添加DCDN全站加速

  • 将DCDN设置解析地址为全球,然后设置IP为服务器的IP,域名为".supbjt.top",同样的,在云解析dns中CNAME解析也要设置为.supbjt.top.
    参考文献