将Hexo搭建到自己的服务器上

Posted 星辰妙缘

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了将Hexo搭建到自己的服务器上相关的知识,希望对你有一定的参考价值。

http://xybin.top/posts/9373.html

第一部分:服务器端的操作

1.安装git 和nginx

yum install -y nginx git

2.添加一个git用户

#添加用户
useradd git
#设置密码
passwd git

# 给git用户配置sudo权限
chmod 740 /etc/sudoers
#编辑sudoers配置文件
vim /etc/sudoers
# 找到root ALL=(ALL) ALL,在它下方加入一行 一般在文件文件最下方
git ALL=(ALL) ALL

chmod 400 /etc/sudoers

3.给git用户添加ssh密钥

su - git
mkdir -p ~/.ssh
touch ~/.ssh/authorized_keys
chmod 600 ~/.ssh/authorzied_keys
chmod 700 ~/.ssh
vim ~/.ssh/authorized_keys    #将ssh密钥粘贴进去

4.创建git仓库实现自动部署

创建git仓库并使用git-hooks实现自动部署

sudo mkdir -p /var/repo    #新建目录,这是git仓库的位置
sudo mkdir -p /var/www/hexo
cd /var/repo  #转到git仓库的文件夹
sudo git init --bare blog.git #创建一个名叫blog的仓库
sudo vim /var/repo/blog.git/hooks/post-update

post-update的内如如下:

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

给post-update授权

cd /var/repo/blog.git/hooks/
sudo chown -R git:git /var/repo/
sudo chown -R git:git /var/www/hexo
sudo chmod +x post-update  #赋予其可执行权限

5.配置nginx

cd /etc/nginx/conf.d/
vim blog.conf

blog.conf的内如如下:

server 
    listen    80 default_server;
    listen    [::] default_server;
    server_name    127.0.0.1;#可以写自己的域名
    root    /var/www/hexo;

检查Nginx语法并重载nginx:

nginx -t 
nginx: the configuration file /etc/nginx/nginx.conf syntax is ok 
nginx: configuration file /etc/nginx/nginx.conf test is successful 
nginx -s reload

6.修改git用户的默认shell环境

vim /etc/passwd
#修改最后一行
#将/bin/bash修改为/usr/bin/git-shell

git:x:1002:1002::/home/git:/usr/bin/git-shell

7.解析域名

到购买域名的供应商控制台,将域名解析到自己的服务器即可。

第二部分:客户端的操作

1. 安装Git

windows:到git官网上下载,Download git,下载后会有一个Git Bash的命令行工具。

官网下载速度慢可以使用镜像下载

linux:对linux来说就很简单,只需要一行代码

sudo apt-get install git

安装完成,使用git --version命令 来查看版本

2. 安装nodejs

Hexo使用需要安装一下nodeJs和里面的npm工具。

windows:nodejs选择LTS版本就行了。

linux:

sudo apt-get install nodejs
sudo apt-get install npm

安装完后,打开命令行

node -v
npm -v

配置npm镜像

由于npm的源在国外,所以国内用户使用起来各种不方便。下面整理出了一部分国内优秀的npm镜像资源,国内用户可以选择使用。

国内优秀npm镜像
淘宝npm镜像
cnpmjs镜像
如何使用

有很多方法来配置npm的registry地址,下面根据不同情境列出几种比较常用的方法。以淘宝npm镜像举例:

1.临时使用
npm --registry https://registry.npm.taobao.org install express
2.持久使用(推荐使用)
打开cmd使用命令:

npm config set registry https://registry.npm.taobao.org

// 配置后可通过下面命令来验证是否成功
npm config ls
// 此时:metrics-registry = "http://registry.npm.taobao.org/"表示设置成功
npm config get registry
// 或
npm info express

 

3.通过cnpm使用 (也可以使用cnpm)
npm install -g cnpm --registry=https://registry.npm.taobao.org
// 使用
cnpm install expresstall express

3.安装hexo

创建一个文件夹blog,然后进入(cd)到此文件夹下(或者在此文件夹下直接右键git bash打开)。

输入命令

npm install -g hexo-cli

查看一下hexo版本

hexo -v

至此就全部安装完了。

初始化hexo

hexo init myblog

这个myblog可以自己取什么名字都行,然后

cd myblog //进入这个myblog文件夹
npm install

新建完成后,指定文件夹目录下有:

  • node_modules: 依赖包
  • public:存放生成的页面
  • scaffolds:生成文章的一些模板
  • source:用来存放你的文章
  • themes:主题
  • _config.yml: 博客的配置文件
hexo g
hexo server

启动hexo服务,浏览器输入localhost:4000就可以看到你生成的博客

4. 将hexo部署到服务器

安装完hexo就可以将hexo生成的文章部署到服务器上,打开站点配置文件 _config.yml,翻到最后,修改为

deploy:
  type: git
  repo: git@***.***.***.***:/var/repo/blog.git # IP填写自己服务器的IP即可
  branch: master

先安装deploy-git ,才能用命令部署到Git。

npm install hexo-deployer-git --save

然后

hexo clean
hexo generate
hexo deploy
hexo clean清除了你之前生成的东西,也可以不加。
hexo generate 生成静态文章,可以用 hexo g缩写
hexo deploy 部署文章,可以用hexo d缩写

注意deploy时可能要先输入email和name

git config --global user.email "你的邮箱"
git config --global user.name "你的名字"

更新完就可以在你浏览器里输入你设置的域名就可以看见你的劳动成果了

5. 发布个人文章

接下来就可以正式开始写文章喽。

hexo new newpapername

然后在source/_post中打开markdown文件,就可以开始编辑了。当你写完的时候,再

hexo clean
hexo generate
hexo deploy

输入密码上传完成就可以看到更新了。

以上是关于将Hexo搭建到自己的服务器上的主要内容,如果未能解决你的问题,请参考以下文章

搭建一个自己的Hexo博客(保姆级教程)

搭建一个自己的Hexo博客(保姆级教程)

搭建一个自己的Hexo博客(保姆级教程)

搭建自己的技术博客系列把 Hexo 博客部署到 GitHub 上

搭建自己的技术博客系列把 Hexo 博客部署到 GitHub 上

使用hexo+GitHub搭建个人博客的心得(含教程)