😎

在服务器上部署Hexo


在服务器上部署Hexo

1.准备工作

  1. 本地windows操作系统
  2. 腾讯云Cenots7.6服务器
  3. 已经准备好可以部署的Hexo博客
  4. 你的域名和服务器都已备案
  5. 你已经在本地安装了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用户并且修改权限

注意

  1. 在更改文件后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密码


文章作者: A9GAN
版权声明: 本博客所有文章除特別声明外,均采用 CC BY 4.0 许可协议。转载请注明来源 A9GAN !
评论
  目录