服务器部署Hexo博客

服务器部署Hexo博客

dog/god说

最近真是沉迷博客无法自拔啊…在党员丁的“一块钱你买不到。。。”的理论感化下,入坑了腾讯云,顺便买了个.cn的域名(网站备案好繁琐啊)。言归正传,又花了两天把原来部署在github上的博客部署到服务器上,真是折腾了好久,遇到了各种谜之问题。写下安装步骤以防遗忘和以后可能的修复博客。

本地安装Hexo

  • Windows下安装nodejs和它的包管理器npm以及git

  • 安装Hexo
    npm install hexo -g

  • 初始化hexo
    cd D:/blog
    hexo init

服务器配置

创建专用的用户

  • 添加用户
    useradd -m hexo
  • 赋予sudo权限
    vim /etc/sudoers

  修改片段如下

## Allowroot to run any comment anywhere
root    ALL=(ALL)    ALL
hexo    ALL=(ALL)    ALL

创建部署静态文件的Git仓库

  创建/var/repo 目录,然后修改所有权和用户权限,之后 ubuntu 用户都具备 /var/repo 目录下所有新生成的目录和文件的权限。

sudo mkdir /var/repo/
sudo chown -R $USER:$USER /var/repo/
sudo chmod -R 755 /var/repo/

  初始化git仓库,生成.git
cd /var/repo
git –bare hexo_static.git

配置Apache/Nginx 托管文件目录

  Apache或者Nginx都可以,因为之前用的Nginx配置的,发现明明部署成功,网页却无法显示,怀疑Nginx有问题,于是换了Apache,结果是愚蠢的我没有把服务器的80端口打开…

  • 创建/var/www/hexo,用于托管,同时修改所有权和权限

    sudo mkdir -p /var/www/hexo
    
  • 配置Apache

    sudo apt-get install apache2
    

  修改网站的默认根目录为/var/www/hexo

sudo vi /etc/apache2/sites-available/000-default.conf
ServerAdmin webmaster@localhost
DocumentRoot /var/www/hexo #修改的地方

  重启Apache使之生效

sudo /etc/init.d/apache2 restart
  • 配置Nginx

    sudo apt-get install nginx
    

  修改 Nginx 的 default 设置

sudo vim /etc/nginx/sites-available/default

  将其中的 root 指令指向 /var/www/hexo 目录

root /var/www/hexo;        

  重启Nginx使之生效

sudo service nginx restart

创建Git hooks

  接下来,在服务器上的裸仓库 hexo_static 创建一个钩子,在满足特定条件时将静态 HTML 文件传送到 Web 服务器的目录下,即 /var/www/hexo。在自动生成的 hooks 目录下创建一个新的钩子文件:

vim /var/repo/hexo_static.git/hooks/post-receive

  在该文件中添加两行代码,指定 Git 的工作树(源代码)和 Git 目录(配置文件等)。

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

  保存并退出文件,并让该文件变为可执行文件。

chmod +x /var/repo/hexo_static.git/hooks/post-receive

本地Hexo创建博客及部署

修改 Hexo 配置中的 URL 和默认文章版式

  修改URL 和 Deployment目录下的type等

url: http://服务器IP

# Deployment
## Docs: https://hexo.io/docs/deployment.html
deploy:
  type: git
  repo: hexo@服务器IP:/var/repo/hexo_static
  branch: master

新建博客并发布

  先需要安装一个hexo包

npm install hexo-deployer-git --save

hexo n "文章名"
hexo clean
hexo g
hexo d

  在部署时需要设置SSH免密登陆,我留到下一篇博客专门讲解SSH。

打开浏览器输入IP就可以查看博客了。

文章目录
  1. 1. 服务器部署Hexo博客
    1. 1.1. dog/god说
    2. 1.2. 本地安装Hexo
    3. 1.3. 服务器配置
      1. 1.3.1. 创建专用的用户
      2. 1.3.2. 创建部署静态文件的Git仓库
      3. 1.3.3. 配置Apache/Nginx 托管文件目录
      4. 1.3.4. 创建Git hooks
    4. 1.4. 本地Hexo创建博客及部署
      1. 1.4.1. 修改 Hexo 配置中的 URL 和默认文章版式
      2. 1.4.2. 新建博客并发布
|