个人vps上搭建hexo


使用宝塔面板部署hexo到个人vps

一、升级git 因为yum仓库的Git版本更新的时间会存在延时

​ 1、查看服务器已有的git版本

git --version

​ 看到 git version 1.8.3.1

​ 2、删除旧版本

yum remove git

​ 按y确定删除

​ 3、选择一个目录来存放下载下来的 git 安装包。这里选择了/usr/local/src 目录

bash cd /usr/local/src

​ 4、下载最新版git到/usr/local/src,可以在官网找到版本,目前最新版本是2.26.2。(2020.4.20 18:02)

wget http://ftp.ntu.edu.tw/software/scm/git/git-2.26.2.tar.gz

​ 5、解压到当前目录

tar -zvxf git-2.26.2.tar.gz

​ 6、进入 git-2.26.2.tar.gz 目录下

cd git-2.26.2

​ 7、执行编译

make prefix=/usr/local/git all

​ 8、安装 git 到 /usr/local/git 目录下

make prefix=/usr/local/git install

二、配置 git 环境变量

​ 1、打开环境变量配置文件

vim /etc/profile

​ 2、按i进入编辑模式,按向下键到底部,添加下面两行命令:

PATH=$PATH:/usr/local/git/bin   # git的目录
export PATH

​ 按esc退出,按:wq保存编辑。(注意是先:再是wq)

​ (以上两步可以在宝塔面板下操作完成)

​ 3、使 git 环境变量生效

source /etc/profile

​ 4、验证安装完成,查看 git 的版本号

git --version

​ 这时候我们的git版本已经变成了:git version 2.26.2

三、配置git仓库

​ 1、创建用户git并配置仓库

useradd git

​ 2、设置密码

passwd git 

​ 输入两次密码。输入时屏幕是没有显示的

​ 3、把git用户添加到sudoers

sudo su #输入密码进入root用户
cd /etc/
vim sudoers

​ 找到root ALL=(ALL) ALL
​ 在下面添加
git ALL=(ALL) ALL

​ 这一步可以在宝塔面板下操作完成,在宝塔操作要的话,要刷新一下SSL。可以exit退出git用户再重新登陆

​ 4、切换用户su git # 这步很重要,不然后面会很麻烦

mkdir -p /www/wwwroot/hexoblog # 项目存在的真实目录,由于需要用到宝塔 我们把博客地址放到宝塔网站地址下

​ 5、依次运行:

cd /home/git/
mkdir repos && cd repos
git init --bare hexoblog.git #创建一个裸库hexoblog.git 
cd hexoblog.git/hooks
vi post-receive #创建hook钩子函数,输入了内容如下

​ 输入如下内容 (#!/bin/bash)

#!/bin/sh
git --work-tree=/www/wwwroot/hexoblog --git-dir=/home/git/repos/hexoblog.git checkout -f

上面语句解释:
#git --work-tree=/博客根目录 --git-dir=/git仓库目录 checkout -f

​ 6、添加完毕后修改权限,执行如下命令

chmod +x post-receive
exit #退出到 root 登录
chown -R git:git /home/git/repos/hexoblog.git #赋予git用户可操作仓库hexoblog.git的权限

​ 7、在本地电脑测试git仓库是否可用,另找空白文件夹,执行如下命令

git clone git@你的服务器IP:/home/git/repos/hexoblog.git

如果能把空仓库拉下来,就说明 git 仓库搭建成功了,当然你会提示你拉下来的是空仓库
warning: You appear to have cloned an empty repository.

如果出现以下错误:
Cloning into 'hexoblog'...
git@你的服务器IP's password:
bash: git-upload-pack: command not found
fatal: Could not read from remote repository.

原因:原来代码服务器上的git安装路径是/usr/local/git,不是默认路径,根据提示,在git服务器上, 建立链接文件:

解决方法:在服务器运行下面代码

# ln -s /usr/local/git/bin/git-upload-pack /usr/bin/git-upload-pack 

再次再本地执行 git clone 成功!

​ 8、本地电脑设置:注意此步要求VPSSSH端口为22,如果不是的,请先修改。


解决方法:
添加22端口
找到SSH的配置文件sshd_config具体的路径在/etc/ssh/sshd_config
输入命令

vi /etc/ssh/sshd_config

添加port 22

重启ssh服务,尝试以下2条命令

service sshd restart
systemctl restart sshd.service

查看是否修改成功

netstat -nlpt | grep ssh

建立ssh信任关系,在本地电脑,执行如下命令

ssh-copy-id -f -i C:/Users/Administrator/.ssh/id_rsa.pub git@你的服务器IP

或者:

ssh-copy-id -i ~/.ssh/id_rsa.pub git@你的服务器IP

执行命令后显示如下:

git@你的服务器IP's password:

Number of key(s) added: 1

Now try logging into the machine, with: "ssh 'git@你的服务器IP'"
and check to make sure that only the key(s) you wanted were added.

key添加成功!

ssh git@你的服务器IP #测试能否登录

Last login: Mon Apr 27 21:55:36 2020
[git@alternative-kittens-1 ~]$

​ 9、为了安全起见禁用git用户的 shell 登录权限,从而只能用git clone,git push等登录,执行如下命令:

cat /etc/shells #查看`git-shell`是否在登录方式里面,有则跳过
which git-shell #查看是否安装
vi /etc/shells

添加上2步显示出来的路劲,通常在 /usr/bin/git-shell
修改如下:

/bin/sh
/bin/bash
/sbin/nologin
/usr/bin/sh
/usr/bin/bash
/usr/sbin/nologin
/usr/local/git/bin/git-shell

​ 10、修改/etc/passwd中的权限,将原来的

git:x:1002:1002::/home/git:/bin/bash  #也许你的不是这个修改为
git:x:1000:1000:,,,:/home/git:/usr/local/git/bin/git-shell  #修改为这个

四、宝塔面板设置

​ 添加站点

​ 1、填写解析域名
​ 2、根目录改为/www/wwwroot/hexoblog
​ 3、部署申请ssl证书,并开启全站强制https

五、本地Hexo配置文件设置_config.yml

deploy:
  type: git
  repo: git@你的服务器IP:/home/git/repos/hexoblog.git
  branch: master

六、完成设置,pushvps仓库吧

hexo cl && hexo g -d

七、后续:

1、hexo d` 时出现以下提示的解决办法:

warning: LF will be replaced by CRLF in?

原因是存在符号转义问题windows中的换行符为 CRLF, 而在linux下的换行符为LF,所以在执行add . 时出现提示,解决办法:

git config --global core.autocrlf false

2、本地推送一直推不上去,添加分支即可

On branch master
nothing to commit, working tree clean
git@你的服务器IP's password:
Everything up-to-date
Branch 'master' set up to track remote branch 'master' from 'git@你的服务器IP:/home/git/repos/hexoblog.git'.
INFO Deploy done: git

git remote add origin git@你的服务器IP:/home/git/repos/hexoblog.git

hexo cl && hexo g -d 一次。可看到/www/wwwroot/hexoblog里面已经有文件了
下面可以通知域名访问你的Hexo了!


文章作者: OutPu
版权声明: 本博客所有文章除特別声明外,均采用 CC BY 4.0 许可协议。转载请注明来源 OutPu !
评论
 上一篇
Namesilo公司提供的域名隐私保护有效期多长? Namesilo公司提供的域名隐私保护有效期多长?
Namesilo公司提供的域名隐私保护有效期多长? Namesilo公司提供的域名隐私保护有效期有多长?我相信每个使用域名的读者都会有这个问
2020-05-03
下一篇 
天翼网盘免费送一年黄金会员 天翼网盘免费送一年黄金会员
​ 天翼网盘又放大招,最近免费送给教师1年的黄金会员,登陆网址,扫描二维码,简单填写信息即可领取。活动截止至2020年6月30日,刚需
2020-04-21
  目录