Hexo 博客部署到 Ubuntu 服务器
传送门
前期准备
- 服务器 root 账户
- ssh 访问
创建名为 blog 的用户和密码,用于管理 Hexo 项目
adduser blog
给 blog 用户添加文件的写权限
# 用 vim 编辑 /etc/sudoers
vim /etc/sudoers
# 找到User privilege specification部分,添加如下内容:
blog ALL=(ALL:ALL) ALL
搭建环境
在服务器上搭建 Git 服务
切换至 blog 用户,后续操作都在 blog 用户下进行
su blog
安装 git
sudo apt-get install git-core
/var/repo 下创建名为 hexo_static 的裸仓库
sudo mkdir /var/repo/
sudo chown -R $USER:$USER /var/repo/
sudo chmod -R 755 /var/repo/
cd /var/repo/
git init --bare hexo_static.git
配置 Nginx 托管文件目录
安装 Nginx
sudo apt-get install nginx -y
创建 /var/www/hexo 目录,用于 Nginx 托管,修改目录所有权和权限
sudo mkdir -p /var/www/hexo
sudo chown -R $USER:$USER /var/www/hexo
sudo chmod -R 755 /var/www/hexo用 vim 修改 /etc/nginx/sites-enabled/default,使 root 指向 hexo 目录
sudo vim /etc/nginx/sites-enabled/default
# 找到 server 部分,修改 root 指向刚刚创建的 hexo 目录
# 请注意结尾有个 ; 号
# 从 root /var/www/html; 修改为
root /var/www/hexo;重启 Nginx 服务,使得改动生效
sudo service nginx restart
创建 Git 钩子
在之前创建的 hexo_static 裸仓库下的 hooks 文件夹中,创建一个名为 post-receive 的钩子文件
vim /var/repo/hexo_static.git/hooks/post-receive
# 并写入以下内容后保存退出
----------------------------------------
#!/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
本地搭建客户端
- 在本地机器上安装 Git
- 使用命令 ssh-keygen -t rsa 在 windons 用户下 /.ssh 文件夹中生成密钥
- 将生成的公钥 id_rsa.pub 的内容拷贝到 ubuntu 服务器的 /home/blog/.ssh/authorized_keys 上
- 若没有这个 .ssh 文件夹,创建即可
sudo mkdir .ssh
cd .ssh
sudo vim authorized_keys
# 此时复制本地的 id_rsa.pub 的内容到 authorized_keys 文件中
- 若没有这个 .ssh 文件夹,创建即可
配置 Hexo
- 若还没搭建过 Hexo 博客,请自行搭建,参考 Hexo 之旅 一文
- 编辑 Hexo 的 config.yml 文件,在 deploy 处修改 repo 项
请换为服务器 ip 地址 deploy:
type: git
repo: blog@<server_ip>:/var/repo/hexo_static.git
branch: master- 执行命令 hexo d 部署到服务器上,此时输入 Ubuntu 服务器的 IP 地址,即可看到博客页面
参考
本博客所有文章除特别声明外,均采用 CC BY-NC-SA 4.0 许可协议。转载请注明来自 SuburbiaXX!