从网络上发现阿里云有一个云翼计划,也就是学生机,和腾讯云的学生机不同的是,阿里云的学生机24岁以下自动获得学生身份!也就是说,只要你没超过24岁,就不需要验证学信网信息也能购买学生机,这一点相比腾讯云来说无疑又是一个吸引力。另外,腾讯云的学生机需要每月领取优惠券续费学生机,而阿里云的学生机可以按时长购买,就不需要每个月续费,过程简单了不少。

有了主机,接下来就是安装blog了,之前有使用过WordPress,但是感觉WordPress对于学生机来说过于臃肿。而轻量的Typycho安装简单,内存占用少,使用起来感觉还不错。后来在上网冲浪过程中发现了Hexo,了解到这是一个纯静态的博客框架,经过进一步了解后发现,Hexo使用Node.js在生成静态页面,并且有各种丰富的插件可以使用,还有漂亮的NexT主题可以使用,并且NexT主题也集成了各种使用的功能。
但Hexo的缺点就是对于小白不太友好,相比与Typecho的仅需三步,建立你的网站来说,Hexo前期有点过于繁琐了,当然,当你前期配置好后,基本只需一条命令就可以将你博文发布到你的站点上。总的来说,Hexo只需本地安装一个Markdown编辑器,就可以了。
准备
服务器和域名
我购买的阿里云云翼计划的轻量应用服务器,安装了CentOS 7.3,配置是1核2G40GSSD,每月1000G流量,1000G流量一般来说是用不完的,并且学生资格只需¥9.5/月。域名添加A记录解析到主机IP,当然,国内的域名和服务器需要备案,否则无法解析。
SSH
SSH工具我用的是Putty,免费,小巧。当然你也可以使用功能强大的Xshell。Putty你可以点击这里下载最新版,选择对应的操作系统下载即可。
本地端
Hexo是基于Node.js的,所以需要先安装Node.js,然后需要用到Git。我这里使用的是Windows10系统,只介绍windows系统的安装方法,MacOS和Linux可以自行搜索。
安装Git
Git安装包: 下载地址
Git安装和普通软件的安装方法一样,打开后一路next即可,当然你也可以按喜好设置,这里就不多说了,安装好后,就可以使用 Git Bash 和 Git GUI 了,不过一般都是使用 Git Bash
安装Node.js
Node.js 安装包: 下载地址
使用安装包一路next安装就行了,这里建议安装时勾选 Add to Path,其他的没什么好说的。
安装Hexo
Git 和 Node.js 安装好后,根据官方文档,我们需要在 Git Bash 执行下面这条命令可可以安装Hexo了。
1 | npm install -g hexo-cli |
创建本地网站目录
接下来,我们需要选一个磁盘来存放我们的Hexo源文件,比如我这里是E:盘,在E:盘根目录下右键选择Git Bash Here,执行以下命令,即可在当前目录新建一个Hexo文件夹。
1 | hexo init <folder> |
<folder> 为你需要创建的文件夹名称,如:hexo
安装部署插件
我们还要安装一个 Hexo 的插件来使用 Git 将我们的博客部署到服务器上,同样在 Git Bash 中执行下面的命令。
1 | npm install hexo-deployer-git --save |
服务端
我们需要先在阿里云的控制面板设置密码或创建密钥,以便使用SSH工具连接服务器。

并且在防火墙开放面板需要的端口,当然你嫌麻烦也可以全部开放

安装宝塔面板
服务端需要安装宝塔面板达到可视化操作的目的,使用 Putty 连接我们的服务器后,使用下面的命令便可以一键安装宝塔面板了。
1 | yum install -y wget && wget -O install.sh http://download.bt.cn/install/install_6.0.sh && sh install.sh |
安装完成后,记下后台地址和用户名密码,首次登录面板,会让你先安装LAMP或LNMP套件,选一个安装就行了。然后对面板进行必要的安全设置后在执行下一步操作,根据上面的提示修改就行了。

添加网站
选择网站选项,点击添加站点,添加一个网站来存放我们的博客文件,按需修改,域名填写购买的域名就行,需要注意的是PHP版本选择纯静态。

配置 Git
系统中自带有 Git,但是版本较低,有需要的可以自行升级,在 Putty 中执行以下命令可查看 Git 版本。
1 | git --version |

生成Key
本地打开Git Bash,输入以下命令生成一个 SSH Key ,因为远程仓库和本地仓库的传输是通过SSH加密的,所以我们需要设置一个Key。
1 | ssh-keygen -t rsa -C "youremail@example.com" |
youremail@example.com 填写你的邮箱
然后一路按回车,使用默认值即可。
生成后,可以在用户目录找到一个.ssh文件夹,里面有id_rsa和id_rsa.pub两个文件,这两个就是SSH Key的秘钥对,id_rsa是私钥,id_rsa.pub是公钥,我们只要的是公钥,而私钥需要保存在我们本地,不要泄漏。
一般用户主目录为:C:\Users\用户名\.ssh
我们后面需要使用id_rsa.pub里的内容,你可以使用文本编辑打开这个文件,复制里面全部内容,或者在本地使用 Git Bash 执行下面这个命令可以直接显示文件内容。
1 | cat ~/.ssh/id_rsa.pub |
创建 Git 用户
使用 Putty 连接服务器后输入以下命令创建一个 Git 用户,你也可以设置用其他名字。
1 | adduser git #创建用户 |
设置免密登录
同样是在 Putty 中输入以下命令,该操作是赋予 git 用户 sudo 权限,并编辑。
1 | chmod 740 /etc/sudoers |
找到以下内容:
1 | ## Allow root to run any commands anywhere |
找到后,在下面添加git用户的权限,添加后,内容为:
1 | ## Allow root to run any commands anywhere |
保存并退出。
然后修改回原来的权限:
1 | chmod 440 /etc/sudoers |
之后切换到git用户,配置ssh登录,执行以下命令。
1 | su git |
authorized_keys 里的内容是上文 生成Key 章节中复制的 id_rsa.pub 里的内容,使用上文的方法复制粘贴到该文件,保存退出即可。
然后给刚刚创建的文件和目录设置权限,执行以下命令。
1 | chmod 700 ~/.ssh |
接下来在本地的 Git Bash 中测试是否能免密登录。
1 | ssh -v git@you_server_ip_or_you_domain_address |
注意,@ 后需要替换成你的服务器 IP 地址, 或你绑定的域名。
如果可以成功免密登录,那么就可以继续观看,否则请再次检查,或你不需要免密登录也可以跳过该章节。
更改博客发布目录用户组
然后我们需要更改 /www/wwwroot/hexo 的用户组,也就是博客发布目录的用户组为 git 用户,执行以下命令。
1 | chown git:git -R /www/wwwroot/hexo |
更改完成后,可使用 ll /www/wwwroot/hexo 命令查看是否更改成功。
初始化 Git 仓库
切换到 git 用户,执行以下命令。
1 | su git |
执行完命令后,git 会创建一个名为 hexo.git 的空仓库。
配置 Git hooks
切换到 git 用户,执行以下命令编辑文件。
1 | vim ~/hexo.git/hooks/post-receive |
在 post-receive 中写入以下内容。
1 |
|
注意,只需要修改 GIT_REPO 和 PUBLIC_WWW 的内容,前者为你创建的 git 仓库地址,后者为你在宝塔面板中创建的纯静态网站的地址。
保存退出后,执行以下命令赋予可执行权限。
1 | chmod +x ~/hexo.git/hooks/post-rceive |
配置博客目录的配置文件
打开在创建本地网站目录章节中创建的文件夹,编辑 _config.yml 文件,修改 deploy 节的内容。
1 | # Deployment |
同样的,you_server_ip_or_you_domain_address 需要修改为你自己的服务器IP或绑定的域名。
部署博客到服务器中
现在,我们就可以将我们的博客部署到我们的服务器中了!
在本地博客目录打开 Git Bash 执行以下目录
1 | hexo clean |
注意,如果需要执行 -d 命令,需要在node.js 中安装对应的插件,详见:安装部署插件
至此,我们就可以将博客部署到我们的服务器中了。