摘要:将 hexo 部署到个人服务器,并使用 git 管理静态文件部署。
一、本地 Hexo 服务安装
(一)查看 node 环境
查看 node 安装情况node -v
npm -v
(二)安装 hexo-cli
文档详见官方文档
node 环境测试成功,即可使用 npm 安装 Hexo。npm install -g hexo-cli
安装 Hexo 完成后,请执行下列命令,Hexo 将会在指定文件夹中新建所需要的文件。
1 | $ hexo init <folder> |
新建完成后,指定文件夹的目录如下:
1 | . |
网站的配置信息在_config.yml
,可以在此配置大部分的参数,如设置 theme 属性。
- 下载 theme 主题-示例:
git clone https://github.com/iissnan/hexo-theme-next themes/next
(三)常用 hexo 命令
- 写文章:
hexo new "title"
- 渲染:
hexo g
- 本地验证:
hexo server
访问http://localhost:4000/
- 部署到远程服务器:
hexo d
(需要先在_config.yml
文件当中设置)
二、Git 软件安装
git 安装:官网下载
在 macOS 上安装
在 Mac 上安装 Git 有多种方式。 最简单的方法是安装 Xcode Command Line Tools。 Mavericks (10.9) 或更高版本的系统中,在 Terminal 里尝试首次运行 git
命令即可。
$ git --version
如果没有安装过命令行开发者工具,将会提示你安装。
如果你想安装更新的版本,可以使用二进制安装程序。 官方维护的 macOS Git 安装程序可以在 Git 官方网站下载
在 Windows 上安装
在 Windows 上安装 Git 也有几种安装方法。 官方版本可以在 Git 官方网站 要注意这是一个名为 Git for Windows 的项目(也叫做 msysGit),和 Git 是分别独立的项目;更多信息请访问 http://msysgit.github.io/。
在服务器安装
Ubuntu 系统:sudo apt-get install git
其他 Linux 上安装 Git:
首先,你可以试着输入git
,看看系统有没有安装 Git:
1 | $ git |
像上面的命令,有很多 Linux 会友好地告诉你 Git 没有安装,还会告诉你如何安装 Git。
如果你碰巧用 Debian 或 Ubuntu Linux,通过一条sudo apt-get install git
就可以直接完成 Git 的安装,非常简单。
如果是其他 Linux 版本,可以直接通过源码安装。先从 Git 官网下载源码,然后解压,依次输入:./config
,make
,sudo make install
这几个命令安装就好了。
三、服务器 Git 配置
创建 Git 用户
useradd git
//添加一个用户 gitpasswd git
// 设置 git 用户密码
创建网站文件夹
1 | sudo mkdir /home/git/ |
修改文件夹所有者和读写权限:
1 | chown -R git:git /home/git/projects/blog |
创建 Git 文件夹并设置 hook 函数
1 | cd /home/git |
post-receive
文件内容如下:
1 |
|
修改 hook 钩子函数权限:
1 | chmod +x post-receive |
本地测试 git 仓库是否可用
(1)服务器修改过登录端口的,使用下面的命令:git clone ssh://git@server_ip:port/home/git/repos/blog.git
(2)服务器使用默认 22 端口的,使用下面的命令:git clone git@server_ip:/home/git/repos/blog.git
复制代码如果能把空仓库拉下来,就说明 git 仓库搭建成功了
建立 ssh 信任关系,免密码远程登录
本地 SSH 认证信息在/Users/<name>/.ssh
文件夹中,名称为id_rsa.pub
1 | cd /Users/zhangminglei/.ssh |
将需要登录的用户的公钥id_rsa.pub
信息粘贴到服务器配置文件:
1 | sudo nano /home/git/.ssh/authorized_keys //一行一个 |
测试是否能直接登录:ssh git@server_ip
//
注:此时的 ssh 登录 git 用户不需要密码,否则就有错
禁用 shell 登录:
出于安全考虑,创建的 git 用户不允许登录 shell,这可以通过编辑服务器当中/etc/passwd
文件完成。
找到类似下面的一行:git:x:1000:1000:,,,:/home/git:/bin/bash
改为:git:x:1000:1000:,,,:/home/git:/usr/bin/git-shell
这样,git 用户可以正常通过 ssh 使用 git,但无法登录 shell,因为我们为 git 用户指定的 git-shell 每次一登录就自动退出。
四、配置 nginx 服务
在 nginx 配置文件夹新增一个server
:
1 | cd /etc/nginx/conf.d //切换到配置文件夹 |
hexo.conf
文件内容示例:
1 | server { |
检察配置文件并重载 nginx 配置文件:
1 | sudo nginx -t |
无访问权限时的处理方法:
1 | sudo nano /etc/nginx/nginx.conf |
五、更新网站
配置_config.yml 文件:
1 | deploy: |
渲染文件并部署:
1 | hexo clean && hexo deploy |