快速开始

准备工作

  • 服务器

我的配置:阿里云轻量服务器 1核2G 40G SSD 5M峰值宽带 CentOS 7.3

  • 本地生成ssh,参考之前的文章。。。生成之后备用

    1
    2
    3
    git config --global user.name "GitHub用户名"
    git config --global user.email "GitHub的邮箱"
    ssh-keygen -t rsa -C "GitHub的邮箱"
  • 开放服务器8888端口,轻量在安全-防火墙中开启:
    开放端口

远程连接服务器

阿里云可以从控制台直接连接:

  1. 输入以下命令,切换到root账号
1
sudo su root

切换为root

  1. 安装Git,继续输入y直到出现Complete,安装成功
    1
    yum install git

创建Git账户

  1. 创建Git用户并给予账户权限
    1
    2
    3
    adduser git

    chmod 740 /etc/sudoers

输入下面的命令,回车之后,进入编辑界面。

1
vim /etc/sudoers

增加Git权限

这里先点击 “i” 键,进入编辑模式,用方向键找到这个地方:

1
2
## Allow root to run any commands anywhere
root ALL=(ALL) ALL

添加以下内容:

1
git     ALL=(ALL)     ALL

输完然后按 “Esc” 键,此时最底下的—INSERT—消失,再输入 :wq,保存退出

  1. 改回权限

    1
    chmod 400 /etc/sudoers
  2. 设置git账户密码

1
sudo passwd git

输入两次密码就设置成功了,linux下输入密码是不显示的,你直接输入,输完回车就行

  1. 切换至git用户,创建 ~/.ssh 文件夹和 ~/.ssh/authorized_keys文件,并赋予相应的权限
1
2
3
su git
mkdir ~/.ssh
vim ~/.ssh/authorized_keys

按”i”进入编辑模式,将我们在本地生成的id_rsa.pub文件中的公钥复制到authorized_keys中,按”esc”,然后输入:wq保存

  1. 赋予权限
    1
    2
    chmod 600 /home/git/.ssh/authorized_keys
    chmod 700 /home/git/.ssh

在电脑本地桌面,右键Git Bash Here,输入一下命令,其中xxx填写自己的云主机ip,执行输入yes后不用密码说明配置成功了。

1
ssh -v git@xxx

出现以下报错,直接删除knwo_hosts里的第二行,不管用就全删了,部署时可能需要输入密码

哪里错就删掉

出现Welcome to Alibaba Cloud Elastic Compute Service!便成功了一半。

创建Git仓库

  1. 切换回root用户,一定要切换回来,避免重来,如果还显示Git用户,最好重启终端切换。

    1
    sudo su root
  2. 在var目录下创建repo作为Git仓库目录:

    1
    mkdir /var/repo
  3. 赋予权限:

    1
    2
    chown -R git:git /var/repo
    chmod -R 755 /var/repo
  4. 创建hexo目录作为网站根目录,并赋予权限:

mkdir /var/hexo
chown -R git:git /var/hexo
chmod -R 755 /var/hexo

  1. 接下来创建一个空白的git仓库

    1
    2
    cd /var/repo
    git init --bare hexo.git
  2. 创建一个新的 Git 钩子,用于自动部署.

/var/repo/hexo.git 下,有一个自动生成的hooks文件夹。我们需要在里边新建一个新的钩子文件post-receive

1
vim /var/repo/hexo.git/hooks/post-receive
  1. 进入编辑模式,然后将下面两行代码粘贴进去,:wq保存退出。
    1
    2
    #!/bin/bash
    git --work-tree=/var/hexo --git-dir=/var/repo/hexo.git checkout -f
  2. 修改权限:
    1
    2
    3
    chown -R git:git /var/repo/hexo.git/hooks/post-receive

    chmod +x /var/repo/hexo.git/hooks/post-receive
    到这里Git仓库已经搭建完毕了

配置Nginx

宝塔一键部署

为了部署和维护,小白喜欢使用宝塔面板来一键部署Nginx

1
yum install -y wget && wget -O install.sh http://download.bt.cn/install/install_6.0.sh && bash install.sh

宝塔面板

中途输入”y”回车等待一会就好了,执行完最后会出现地址,用户名,密码

如果忘记了宝塔用户名密码,可以去你服务器终端输入:

1
cd /www/server/panel && python tools.py panel testpasswd

宝塔默认密码查询命令

1
/etc/init.d/bt default

初次登录宝塔面板可以一键部署Nginx,PHP,MySQL一整套,版本任选。部署完成之后,点击网站,添加站点,填写你的域名,没有的话写你的服务器ip地址。hexo不用创建FTP数据库等,PHP版本选择纯静态,提交后转入设置页面

1
2
3
4
5
6
7
8
server
{
listen 80;
# server_name填写你自己的域名,没有的话填ip
server_name xxx.com;
index index.php index.html index.htm default.php default.htm default.html;
# 这里root填写自己的网站根目录,修改为/var/hexo
root /var/hexo;

网站目录改为

1
/var/hexo

回到服务器终端,重启宝塔面板

1
service bt restart

若服务器配置不足宝塔可能不方便,请参考Nginx 安装配置
Hexo部署在阿里云教程

本地配置

修改根目录配置

1
2
3
4
5
deploy:
type: git
#repo改为repo: git@域名或IP:/var/repo/hexo.git
repo: git@xxx:/var/repo/hexo.git
branch: master

hexo三连便可部署到服务器啦

常见报错

  1. Please make sure you have the correct access rights
    ssh配置错误
  • 重新添加ssh
  • 确保域名解析已生效
  • 确保新建Git仓库后切换为root用户
  • repo如果填写域名不行就换IP
  • 总之从头再来几遍就好了(反正我是删库重来)

顺便记录一下如何查询仓库是否正确建立

  • 可以打开宝塔面板查看路径是否存在
  • 本地空文件夹下打开Git Bash输入
    1
    git clone git@server_ip:/var/repo/hexo.git
    若能clone下来说明仓库正常
  1. 部署成功无法访问

    可能是未配置ssl证书,原本默认跳转https
    下载你的ssl证书,添加到配置并打开强制https
    小绿锁

终于看到了以前用着百万账单的腾讯CDN的绿色
绿了绿了

参考文档