最近发现访问GitHub的博客一直显示连接被重置,就算能访问但是速度很慢,体验不好。当时选择GitHub也是因为没钱买服务器。正好最近有台腾讯的云服务器闲置,想了想,直接迁过来算了
迁移前确保本地hexo运行正常,可以进行本地访问,且git已设置邮箱与用户名
云服务器端配置git
安装依赖库和编译工具
1 | yum install -y curl-devel expat-devel gettext-devel openssl-devel zlib-devel |
删除系统自带git
1 | yum -y remove git |
下载git
选择一个目录存放git包
1 | cd /usr/local/src |
编译安装git
解压
1 | tar zvxf git-2.24.0.tar.gz |
编译安装
1 | cd git-2.24.0 |
配置git环境变量
1 | echo 'export PATH=$PATH:/usr/local/git/bin' >> /etc/profile |
验证git安装
1 | git --version |
如果此时能查看到git的版本号,说明我们已经安装成功了
新建git用户
1 | adduser git |
设置密码
1 | passwd git |
修改权限
1 | chmod 740 /etc/sudoers |
设置SSH密钥
本地,使用
Git Bash创建密钥1
ssh-keygen -t rsa
云端,切换
git用户,创建.ssh文件夹以及authorized_keys文件1
2
3su git
mkdir ~/.ssh
vim ~/.ssh/authorized_keys将本地的
id_rsa.pub文件全部内容粘贴到云端authorized_keys文件中云端,修改权限
1
2
3cd ~
chmod 600 .ssh/authorzied_keys
chmod 700 .ssh测试
在本地,使用
Git Bash测试是否能连接上服务器1
ssh -v git@服务器IP地址
若出现错误提示,尝试删除本地密钥位置
known_hosts文件,成功结果为不需要密码直接SSH登录
创建网站根目录
1 | su root |
创建git仓库
创建一个裸仓库,裸仓库就是只保存git信息的Repository
1 | cd /home/git # 在 git 用户目录下创建 |
修改blog.git的权限
1 | chown git:git -R blog.git |
创建git钩子,用于自动部署
1 | vim /home/git/blog.git/hooks/post-receive |
云服务器配置nginx
安装启动
安装(root权限)
1 | yum install -y nginx |
启动
1 | systemctl start nginx.service |
验证
1 | wget http://127.0.0.1 |
配置nginx托管文件目录
1 | vim /etc/nginx/nginx.conf |
重启nginx
1 | systemctl restart nginx.service |
修改本地hexo站点配置
打开本地hexo的站点配置文件,修改
1 | deploy: |
部署
1 | hexo clean |
常见错误
在hexo d时出现
1 | hexo d |
解决方案:
服务器端执行
1 | sudo ln -s /usr/local/git/bin/git-receive-pack /usr/bin/git-receive-pack |
域名解析
设置域名解析为一个A记录,直接指向腾讯云服务器地址即可