在服务器上部署Hexo
1.准备工作
- 本地windows操作系统
- 腾讯云Cenots7.6服务器
- 已经准备好可以部署的Hexo博客
- 你的域名和服务器都已备案
- 你已经在本地安装了git和node.js
2.云服务器配置Git
2.1.安装依赖库
yum install curl-devel expat-devel gettext-devel openssl-devel zlib-devel
2.2.安装编译工具
yum install gcc perl-ExtUtils-MakeMaker package
2.3.查看git的版本
git version
2.4.删除git
yum remove git -y
2.5.下载解压最新版
cd /usr/local/src #下载的目录
wget https://www.kernel.org/pub/software/scm/git/git-2.28.0.tar.gz #下载最新版
tar -zxvf git-2.28.0.tar.gz #解压到当前文件夹
2.6.编译并安装
cd git-2.28.0 #进入文件夹
make prefix=/usr/local/git all #编译源码
make prefix=/usr/local/git install #安装路径
2.7.配置git的环境变量
echo 'export PATH=$PATH:/usr/local/git/bin' >> /etc/bashrc
2.8.刷新环境变量
source /etc/bashrc
2.9.查看版本号
git --version
2.10.创建git用户并且修改权限
注意
- 在更改文件后Esc + :wq保存并退出文件
adduser 你的用户名
passwd 你的用户名
chmod 740 /etc/sudoers
vim /etc/sudoers
root ALL=(ALL) ALL
你的用户名 ALL=(ALL) ALL
2.11.本地windows10使用Gitbash创建密钥
ssh-keygen -t rsa
2.12.将本地创建id_rsa.pub中文件复制
su 用户名
mkdir ~/.ssh
vim ~/.ssh/authorized_keys
2.13.本地测试
ssh -v 你的用户名@服务器ip
3.云服务器网站配置
3.1.创建网站目录并且设置权限
su root
mkdir /home/hexo
chown 你的用户名:你的用户名 -R /home/hexo
3.2.安装Nginx
yum install -y nginx
systemctl start nginx.service #启动服务
3.3.修改Nginx配置文件
注意
文件里有两个server,注意辨别
vim /etc/nginx/nginx.conf
server {
listen 80 default_server;
listen [::]:80 default_server;
server_name 你的域名; #域名
root /home/hexo; #网站目录
3.4.重启服务器
systemctl restart nginx.service
3.5.建立git仓库
su root
cd /home/你的用户名
git init --bare blog.git
chown 你的用户名:你的用户名 -R blog.git
3.6.同步网站根目录
vim blog.git/hooks/post-receive
#!/bin/sh
git --work-tree=/home/hexo --git-dir=/home/你的用户名/blog.git checkout -f
3.7.修改权限
chmod +x /home/你的用户名/blog.git/hooks/post-receive
3.8.在本地hexo目录修改_config.yml文件
deploy:
type: git
repository: 用户名@#.#.#.#:/home/用户名/blog.git #用户名@服务器Ip:git仓库位置
branch: master
3.9.在本机gitbash部署
hexo clean
hexo g -d
4.常见报错
4.1. git-upload-pack: 未找到命令
bash: git-upload-pack: command not found
fatal: Could not read from remote repository.
解决方法:
sudo ln -s /usr/local/git/bin/git-upload-pack /usr/bin/git-upload-pack
4.2.git-receive-pack: 未找到命令
bash: git-receive-pack: command not found
fatal: Could not read from remote repository.
解决方法:
sudo ln -s /usr/local/git/bin/git-receive-pack /usr/bin/git-receive-pack
4.3.无法远程连接获取
fatal: Could not read from remote repository.
解决方法:
重试或者 删掉本地ssh公钥重新上传至服务器
4.4.key出错
Host key verification failed.
解决方法:
ssh-keygen -R 你要访问的IP地址
4.5.将本地文件部署至服务器时显示密码错误
注意!!!
这里的密码是你的用户密码,不是服务器的ROOT密码