安装nodejs
更新软件源
1 | apt-get update |
安装node
在nodejs的官网上面下载了nodejs的源代码(下载地址是https://nodejs.org/en/download)。我的服务器的使用的是ubuntu,下载的是nodejs的源码,即node-V5.7.1.tar.gz的版本。下载完毕之后,就是解压编译安装了。1
2
3
4tar zxvf node-V5.7.1.tar.gz
cd node-V*.*
./configure
make && make install
编译安装之后,确认安装成功。1
2node -v
npm -v
若可以正常显示版本,则表示安装成功
安装hexo
hexo的安装也是十分地简单1
2
3
4npm install hexo-cli -g
hexo init blog
cd blog
npm install
安装完毕之后,启动hexo1
2hexo server #普通启动
hexo server & #静默启动
如果localhost:4000可以正常地访问,说明hexo安装成功。
安装git服务
git服务的安装可以参考廖雪峰的安装方法。具体为:
第一步,安装git
1 | sudo apt-get install git |
第二步,创建一个git用户,用来运行git服务
1 | sudo adduser git |
在创建的过程中,会要求输入此用户的登录密码,用户需要自行设置密码
第三步,创建证书登录。
1 | su dit |
将所有用户的公钥导入到/home/git/.ssh//authorizd_keys中。
第四步,初始化git仓库
先选定一个目录作为git的仓库,此仓库主要就是用来存放所有的文章的。假设仓库的位置在git用户的目录下,为git/blog.git。在git目录(此git目录是git用户目录)下输入。1
2mkdir blog.git && cd blog.git
git init --bare
Git就会创建一个裸仓库,裸仓库没有工作区,因为服务器上的Git仓库纯粹是为了共享,所以不让用户直接登录到服务器上去改工作区,并且服务器上的Git仓库通常都以.git结尾。1
chown -R git:git blog.git
本地的node的安装和git的安装
安装方法和服务器上的安装方法相似,这里就不再赘述。需要注意的是,在hexo安装完毕之后,同样会在本地有一个hexo init所生成的目录,这个目录的文件名是没有要求的。假设此文件名在E:/localblog中。
安装完毕之后,进入到localblog中,运行以下的命令。1
2hexo generate
hexo server
如果在本地输入localh:4000,网页可以正常打开,说明安装成功。
在本地安装成功之后,还需要将本地的成粗发布到git仓库中,需要对hexo的发布进行配置。配置其实就是将exo部署方式改为git。在hexo中的_config.yml中添加:1
2
3
4
5
6Deployment
deploy:
type: git
message: update
repo: git@yoursite.com:/var/blog.git
branch:master
配置完毕之后
在填写repo的时候,需要天禧的git仓库的完整的地址,否则hexo无法找到git仓库。在部署的时候,可能会出现几个问题。
git的安装也比较的简单,可以参考廖雪峰的文章,这里也不作详细地说明。在git安装完毕之后,需要将git生成的id_rsa.pub中的内容复制到在服务器上安装git时创建的authorized_keys的文件中。
问题一:Error: spawn ENOENT1
2
3Error: spawn ENOENT
at errnoException (child_process.js:980:11)
at Process.ChildProcess._handle.onexit (child_process.js:771:34)
这是由于是在cmd中运行的命令出现的错误。解决方法十分的简单,仅仅需要在git bash中运行node.js的命令就可以了。
问题二:fatal: Not a git repository (or any of the parent directories): .git
解决方法也是比较的简单。
移除deploy档,重新在发布一次即可。命令为:1
2
3rm -rf .deploy
rm -rf .deploy_git
hexo deploy
Nginx的安装
在ubuntu下安装Nginx是比较的简单。
在线安装Nginx的命令:1
$sudo apt-get install nginx
安装完成之后运行启动Nginx1
$sudo /etc/init.d/nginx start
在浏览器中输入localhost,若能正常访问,则说明Nginx安装成功。
至此所有的软件均已安装完毕。
更新文章至服务器端
在本地安装了hexo以后,就可以书写文章了。写完文章之后,使用1
deploy d -g
这个命令就是将文章发布到服务器的git服务器中了。发布到git服务器上面的文章都是hexo的静态文件,所以一般情况下是不能直接访问的。
目前我采用的方式是,将git服务器上的文章clone下来,然后使用Nginx将目录指向这个目录,那么就可以正常访问了。具体方式是:
当将文章发布到服务器之后,新建一个blog目录,用来放置书写的静态文件,例如将blog目录建在/home/blog下。
进入到/home/blog目录下,运行:1
git clone yourResponsteryurl
或者使用1
git pull yourResponsteryurl
运行完毕之后,在blog中就会有所有文章的静态文件了。但是目前还是无法访问。
通过修改Nginx的配置就可以访问静态文件了。找到/etc/Nginx/sites-availables/default文件。将其中的root值修改为博客的目录,即/home/blog。
到此,在阿里云上面搭建hexo,运行博客程序的整个步骤就全部完成了。