安装git与nginx
1 2 3 4
| git --version
sudo apt-get install git
|
安装nginx
1 2
| sudo apt-get install nginx nginx -v
|
安装vim
1
| sudo apt-get install vim
|
创建私有 Git 仓库
1 2 3 4 5 6 7
| 在 /var/repo/ 下 创建一个名为 hexo_static 的裸仓库(bare repo) 如果没有 /var/repo 目录,需要先创建
然后修改目录的所有权和用户权限 之后 ubuntu 用户都具备 /var/repo 目录下所有新生成的目录和文件的权限
|
1 2 3
| sudo mkdir /var/repo/ sudo chown -R $USER:$USER /var/repo/ sudo chmod -R 755 /var/repo/
|
然后,执行如下命令
1 2 3 4
| cd /var/repo/
git init --bare hexo_static.git
|
配置 Nginx 托管文件目录
接下来,创建
目录,用于 Nginx托管
1
| sudo mkdir -p /var/www/hexo
|
修改目录的所有权和权限
1 2
| sudo chown -R $USER:$USER /var/www/hexo sudo chmod -R 755 /var/www/hexo
|
修改 Nginx 的 default 设置
1
| sudo vim /etc/nginx/sites-available/default
|
1 2 3 4 5 6 7 8 9
| ... server { listen 80 default_server; listen [::]:80 default_server ipv6only=on; root /var/www/hexo; index index.html index.htm; ...
|
保存并且退出
1
| sudo service nginx restart
|
添加秘钥(非必须)
如果你新建了一个用户
1 2 3 4
| adduser git passwd git chmod 740 /etc/sudoers vim /etc/sudoers
|
寻找内容
1 2 3 4 5 6 7
| root ALL=(ALL) ALL
git ALL=(ALL) ALL
退出并且更改权限 chmod 400 /etc/sudoers
|
添加秘钥
1 2 3 4 5
| su git mkdir ~/.ssh vim ~/.ssh/authorized_keys
|
修改权限
1 2 3
| cd ~ chmod 600 .ssh/authorized_keys chmod 700 .ssh
|
本地测试
创建 Git Hooks
接下来,在服务器上的裸仓库
hexo_static 创建一个钩子
在满足特定条件时将静态 HTML 文件传送到 Web 服务器的目录下
/var/www/hexo
新建钩子文件
1
| sudo vim /var/repo/hexo_static.git/hooks/post-receive
|
在文件中添加两行代码
指定 Git 的工作树(源代码)和 Git 目录(配置文件等)
1 2
| #!/bin/bash git --work-tree=/var/www/hexo --git-dir=/var/repo/hexo_static.git checkout -f
|
保存并且退出文件,并且将其变为可执行文件
1
| chmod +x /var/repo/hexo_static.git/hooks/post-receive
|
本地hexo配置
1 2 3 4
| deploy: type: git repo: ubuntu@CVM 云服务器的IP地址:/var/repo/hexo_static branch: master
|