前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >vultr搭建hexo博客

vultr搭建hexo博客

作者头像
用户2936342
发布2019-02-22 15:27:37
1.3K0
发布2019-02-22 15:27:37
举报
文章被收录于专栏:nummynummy

准备工作

安装如下依赖:

  • gcc
  • make 跟git
  • nginx
  • openssl
  • nodejs跟npm

使用root用户安装这些依赖。

代码语言:javascript
复制
$ yum install -y gcc gcc-c++ make git openssl
$ yum install -y nginx
$ curl --silent --location https://rpm.nodesource.com/setup_4.x | bash -
$ yum update and yum install -y nodejs

也可以从自定义repo来安装nginx,新建nginx.repo文件,内容如下

代码语言:javascript
复制
[nginx]
name=nginx repo
baseurl=http://nginx.org/packages/mainline/centos/7/$basearch/
gpgcheck=0
enabled=1

复制到/etc/yum.repo.d/

代码语言:javascript
复制
$ cp nginx.repo /etc/yum.repo.d/
$ yum update and yum install -y nginx
$ systemctl enable nginx and systemctl start nginx

创建用户

需要创建一个普通用户用于运行博客,下面创建一个vultr用户,并将其添加到用户组wheel跟nginx。

代码语言:javascript
复制
$ useradd -d /home/vultr -m -r -U -s /bin/bash
$ passwd vultr
$ usermod -aG nginx vultr
$ usermod -aG wheel vultr

创建SSH秘钥

代码语言:javascript
复制
$ ssh-keygen -b 4096 -C "vultr@example.com"

将公钥复制到~/.ssh/authorized_keys

代码语言:javascript
复制
$ ssh-copy-id -i ~/.ssh/id_rsa.pub vultr@example.com

安装hexo

切换到vultr用户,创建 ~/web/web/vultr~/web/git/vultr

代码语言:javascript
复制
### This is our hexo blog root directory
$ mkdir -p ~/web/web/vultr
### This is our git repository directory on the server
$ mkdir -p ~/web/git/vultr
### This is our deploy directory
$ mkdir -p ~/web/git/hexo

进入目录~/web/web/vultr, 然后安装hexo

代码语言:javascript
复制
$ cd ~/web/web/vultr
$ sudo npm install -g hexo-cli hexo-server
$ hexo init && npm install --save

编辑 _config.yml,然后生成静态页面:

代码语言:javascript
复制
$ hexo g

生成的静态页面位于~/web/web/vultr/public

安装nginx

现在还不能访问到网站,需要先配置nginx。

nginx一般使用nginx用户,nginx用户组来运行,这也是前面将vultr添加到nginx用户组的原因。

代码语言:javascript
复制
$ chown -R vultr:nginx ~/web

新增配置文件vultr.conf,放在~/web目录下面。

代码语言:javascript
复制
server {
    listen 80;
    listen [::]:80;
    ## if https is desired, please uncomment the following lines
    #listen 443 ssl http2;
    #listen [::]:443 ssl http2;

    server_name example.com, www.example.com;

    ## if forcing https, please uncomment the following lines
    #if ($scheme = http) {
    #    return 301 https://$server_name$request_uri;
    #}

    location / {
    root /home/vultr/web/web/vultr/public;
    index index.html;
    proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
    proxy_set_header Host $http_host;
    ## if https is desired, please uncomment the following lines
    #proxy_set_header X-Forwarded-Proto https;
    }
}

vultr.conf 复制到 /etc/nginx/config.d/ , 然后重启nginx。

代码语言:javascript
复制
$ sudo ln -sf ~/web/vultr.conf /etc/nginx/config.d/
$ sudo systemctl restart nginx

使用git部署博客

我们可以在本地撰写博客,然后推送到服务器,让hexo自动生成静态文件,使用vultr用户登录,创建一个git库。

代码语言:javascript
复制
$ cd ~/web/git/vultr
$ git init --bare
$ cd hooks

新建脚本post-receive用于部署博客

代码语言:javascript
复制
#!/bin/bash
deploy_to_dir="/home/vultr/web/git/hexo"

GIT_WORK_TREE=$deploy_to_dir git checkout -f master
echo "DEPLOY:   master  copied to  $deploy_to_dir"

hexo_dir="/home/vultr/web/web/vultr/"

cd $hexo_dir

hexo clean && hexo --silent g

if [[ $? == 0 ]]; then
    echo "Congratulations! Your blog has been correctly deployed"
else:
    echo "Unfortunately your blog has not been deployed correctly"
fi

在部署之前,还需要执行以下命令:

代码语言:javascript
复制
cd ~/web/web/vultr/
rm -rf source scaffolds _config.yml themes
ln -sf /home/vultr/web/git/hexo/themes/tranquilpeak  themes/
ln -sf /home/vultr/web/git/hexo/source .
ln -sf /home/vultr/web/git/hexo/scaffolds .
ln -sf /home/vultr/web/git/hexo/_config.yml .

配置本地git

首先确保本地电脑安装了git,然后新建git库。

代码语言:javascript
复制
$ mkdir -p ~/vultr/git/vultr`
$ cd ~/vultr/git/vultr and git init
$ git remote add production ssh://vultr@example.com:/home/vultr/web/git/vultr

然后安装hexo并撰写博客:

代码语言:javascript
复制
$ mkdir ~/vultr/vultr && cd ~/vultr/vultr
$ hexo init && npm install --save
$ mv  source  _config.yml themes scaffolds ~/vultr/git/vultr
$ ln -sf ~/vultr/git/vultr/source .
$ ln -sf ~/vultr/git/vultr/_config.yml .
$ ln -sf ~/vultr/git/vultr/scaffolds .
$ hexo new "Test Post"

接下来就可以推送博客了:

代码语言:javascript
复制
$ cd ~/vultr/git/vultr
$ git add . && git commit -m "new post"
$ git push production master
本文参与 腾讯云自媒体分享计划,分享自作者个人站点/博客。
原始发表:2019.01.04 ,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体分享计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • 准备工作
  • 创建用户
  • 创建SSH秘钥
  • 安装hexo
  • 安装nginx
  • 使用git部署博客
  • 配置本地git
相关产品与服务
访问管理
访问管理(Cloud Access Management,CAM)可以帮助您安全、便捷地管理对腾讯云服务和资源的访问。您可以使用CAM创建子用户、用户组和角色,并通过策略控制其访问范围。CAM支持用户和角色SSO能力,您可以根据具体管理场景针对性设置企业内用户和腾讯云的互通能力。
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档