linux中安装hexo编译博客

背景

几天前就看到服务器要到期了,没去管他,结果给忘了,今天凌晨过期了,这台阿里云华东2(上海)的机器也用了快2年了,物理位置在上海让我这个强迫症很不舒服,而且40G的盘都用了30G了(反正就是给自己各种不嫌麻烦的借口),看到新出的学生机有可以购买在华东1(杭州)就果断释放了原来的服务器,新购于杭州节点
之前用宝塔做了备份策略,所以数据都储存在我的OSS里面


前几天用hexo在github上发布了博客,但是只能在我自己的电脑上进行编译,有一些局限,所以先在这台服务器上安装hexo用来在云端编译博客。


顺便发现了个BUG,阿里云学生机在认证期限内,好像可以不限次数的续费,我准备存点生活费续他个十年八年的试试。
废话不多说

发布的时候发现博客园的Markdown预格式化文本真的很烦,有些代码直接显示文本了

安装

连接服务器

管你cmd、xshell、hyper、putty还是什么的,连的上就完事

安装node.js

这是个JavaScript运行环境

这一步建议在特定目录下操作

没有linux基础请跟我做

mkdir /soft
mkdir /soft/hexo
cd /soft/hexo
  • 从官网下载linux版本的node.js 或者直接采用wget方式下载

这里使用wget下载

wget https://nodejs.org/dist/v10.9.0/node-v10.9.0-linux-x64.tar.xz

  • 把他解压了
tar xf node-v10.9.0-linux-x64.tar.xz
  • 解压以后测试是否安装成功

移动到目录

cd node-v10.9.0-linux-x64/

执行命令

./bin/node -v             // 如果出现版本号,说明安装成功

修改node-v10.9.0-linux-x64文件夹名字为nodejs

cd ..
mv node-v10.9.0-linux-x64 nodejs
  • 设置软连接
ln -s /soft/hexo/nodejs/bin/node /usr/local/bin/node
ln -s /soft/hexo/nodejs/bin/npm /usr/local/bin/npm

git安装

  • 安装依赖包
yum install curl-devel expat-devel gettext-devel openssl-devel zlib-devel
yum install gcc perl-ExtUtils-MakeMaker

通过命令 git --version 可以看到,Git 当前的版本号为 1.8.3.1,太过于陈旧,所以需要先把它移除了。

  • 卸载旧版本的 Git
yum remove git

然后移动到/usr/local/

cd /usr/local/
  • 下载并解压
wget https://github.com/git/git/archive/v2.9.2.tar.gz
tar -zxvf  v2.9.2.tar.gz  // 解压
mv git-2.9.2 git  //重命名
  • 编译安装
cd git         // 进入文件夹
make prefix=/usr/local/git all // 编译源码
make prefix=/usr/local/git install // 安装至 /usr/local/git 路径

编译时,由机器配置决定速度,请耐心等待。

  • 打开环境变量配置文件
vim /etc/profile

在文件底部添加以下配置。

PATH=$PATH:/usr/local/git/bin // git 的目录
export PATH

两个语句都要加上

刷新环境变量

source /etc/profile

最后再使用 git --version 查看版本号,已经为 2.9.2

安装hexo

npm install hexo-cli -g

搭建博客基础

  • 先把hexo命令添加到全局:hexo在nodejs的lib/node_modules/hexo-cli/bin 可以找到hexo命令方式是采用软连接
ln -s /soft/hexo/nodejs/lib/node_modules/hexo-cli/bin/hexo /usr/local/bin/hexo
  • 部署hexo博客环境:这个可以放在nodejs外面,方便打开
    cd 到和nodejs一个目录下(我是放在根目录下的)然后:
mkdir hexo
cd hexo    
hexo init //会自动把资源文件下载好

解释一下
node_modules:是依赖包
public:存放的是生成的页面
scaffolds:命令生成文章等的模板
source:用命令创建的各种文章
themes:主题
_config.yml:整个博客的配置
db.json:source解析所得到的
package.json:项目所需模块项目的配置信息

  • 搭桥到github

创建一个repo,名称为yourname.github.io, 其中yourname是github名称(我已经有了,就不截图了)

下面的每一步,要把yourname换为自己的github名字,youremail换为自己的github邮箱

配置github账户信息

git config --global user.name "yourname"
git config --global user.email "youremail"


创建SSH

输入:ssh-keygen -t rsa -C "youremail",生成ssh

下面提示地方一路回车就可以

然后去找生成的sshkey

cd ~/.ssh
cat id_rsa.pub

把回显的那些字符复制出来

在github的setting中找到SSH and GPG keys,点击 New SSH key

title随便取,key就填刚刚那一段ssh

在gitbash中验证是否添加成功:ssh -T git@github.com

  • 一步之遥

用编辑器打开你的blog项目,修改_config.yml文件的一些配置(冒号之后都是有一个半角空格的)注意YourgithubName改为你的

deploy:
type: git
repo: https://github.com/YourgithubName/YourgithubName.github.io.git
branch: master

这样子需要每次都输入密码,如果不想每次输入密码的话把https://github.com/YourgithubName/YourgithubName.github.io.git改为git@github.com:YourgithubName/YourgithubName.github.io.git

回到gitbash中,进入你的blog目录,分别执行以下命令

hexo clean
hexo server

  • 启动测试环境
hexo s

输入 yourip:4000/即可访问页面

如果是服务器,我的是阿里云服务器,需要配置安全组打开4000端口,这样就可以访问了
或者linux虚拟机,需要测试内外能否正常通信
每次编辑好都执行下面的命令进行上传

hexo clean
hexo g       //编译
hexo d       //上传

这样,基本的hexo环境就搭建好了。