本文记录将hexo博客部署到github、云服务器上的相关操作操作。
关于部署
常见部署在github上,如果有自己独立的服务器也可以部署在服务上,此处用的腾讯云服务器。
一 Github上部署
1 准备环境:
有github账户
在账户里创建仓库, New repository,仓库名固定格式: 你的github账户名.github.io
git免密登陆(可选,非必须)
2 安装部署插件
安装部署插件deploy-git
npm install hexo-deployer-git --save
3 Hexo修改根目录配置文件
deploy:
type: git
repo: https://github.com/your_github_name/your_github_name.github.io.git
branch: master
如果配置了免密登录:
git@github.com:yourgithubName/your_github_name.github.io.git
没有配置请使用:
https://github.com/your_github_name/your_github_name.github.io.git
https
开头每次要输入密码,git
开头表示是用ssh方式连接。
4 生成并部署
hexo g & hexo d
如果没有配置免密登陆,部署的时候可能会用到git的用户名和密码。
5 访问验证
打开浏览器访问:https://YourgithubName.github.io
如我github
博客地址:https://small-rose.github.io
二 云服务器部署
部署到云服务有两种方式,一种是利用git仓库配合hooks自动部署更新,另一种是插件的方式,插件的话可以参考如下:
插件安装命令 | 功能 | 文档 |
---|---|---|
npm install hexo-deployer-cos –save | hexo上传至腾讯云COS | https://github.com/sdlzhd/hexo-deployer-cos#user-content-options |
npm install hexo-deployer-aliyun –save | hexo上传至阿里云 | https://github.com/yedaodao/hexo-deployer-aliyun |
1 准备环境:
有一台云服务器,本文是腾讯云服务器
准备工作大概如下
(1)服务器安装git服务并创建仓库
(2)配置hooks
(3)安装及配置Nginx
2 安装git
安装命令:
yum -y install git
如果你的服务器不能直接yum安装,可以参考 git安装教程:
cd /usr/local/src #进入你的下载目录
wget https://mirrors.edge.kernel.org/pub/software/scm/git/git-2.24.0.tar.gz #下载,不能下载就自己上传一下
tar -zvxf git-2.24.0.tar.gz #解压
cd git-2.24.0
make all prefix=/usr/local/git #编译
make install prefix=/usr/local/git #安装git到指定目录
echo 'export PATH=$PATH:/usr/local/git/bin' >> /etc/bashrc #配置环境变量
source /etc/bashrc #刷新环境变量
验证Git是否安装成功:
git --version
添加git用户并授权:
useradd -r -s /bin/bash -c 'git version control' -d /home/git git
passwd git
mkdir -p /home/git
chown git:git /home/git
创建仓库:
cd /home/git/
git init --bare myHexoBlog.git
如果要配置SSH免登录:(可选操作,配置之后不用每次提交都输入密码)
a.客户端生成密钥
ssh-keygen -t rsa -C "这里换上你的邮箱"
然后会出现询问,大概意思如下:
1. 确认秘钥的保存路径(如果不需要改路径则直接回车);
2. 如果上一步置顶的保存路径下已经有秘钥文件,则需要确认是否覆盖(如果之前的秘钥不再需要则直接回车覆盖,如需要则手动拷贝到其他目录后再覆盖);
3. 创建密码(如果不需要密码则直接回车);
4. 确认密码;
要免密登录请输密码的时候回车即可。根据提示找到密钥所在文件:
id_rsa #私钥
id_rsa.pub #公钥
b.服务端导入客户端公钥
在/home/git下已经创建.ssh目录,然后创建authorized_keys文件,并将客户端生成的公钥导入进去。
cd /home/git/
mkdir .ssh
chmod 755 .ssh
touch .ssh/authorized_keys
chmod 644 .ssh/authorized_keys
将 id_rsa.pub
文件的内容写入authorized_keys
c. 服务端SSH将RSA认证打开
vim /etc/ssh/sshd_config
其中三个地方的设置要确认如下:
RSAAuthentication yes
PubkeyAuthentication yes
AuthorizedKeysFile .ssh/authorized_keys
git用户不允许登录shell
vim /etc/passwd
将
git:x:502:502::/home/git:/bin/bash
改为
git:x:502:502::/home/git:/usr/local/git/bin/git-shell
ESC
退出,输入:wq
保存退出,执行Enter
即可。
3 配置hooks自动部署
mkdir -p /home/hexoBlog
chown git:git /home/hexoBlog
cd /home/hexoBlog
cd /home/git/myHexoBlog.git/hooks
vim post-receive #创建hooks执行文件
配置hooks,指定 Git 的工作树(源代码)和 Git 目录(配置文件等)
#!/bin/bash
git --work-tree=/home/hexoBlog --git-dir=/home/git/myHexoBlog.git checkout -f
如果是使用Apache服务,可以直接把work-tree目录指向/var/www/html
4 安装Nginx服务
yum install -y nginx
如果你不能直接安装,请先配置安装源
sudo rpm -Uvh http://nginx.org/packages/centos/7/noarch/RPMS/nginx-release-centos-7-0.el7.ngx.noarch.rpm
启动Nginx
systemctl start nginx.service
浏览器输入你的域名或者IP,出现欢迎页面代表安装启动成功。
修改配置:
nginx -t #查看nginx安装路径 配置文件路径
vim /etc/nginx/nginx.conf
找到server部分
server {
listen 80 default_server;
listen [::]:80 default_server;
root /home/hexoBlog; #需要修改
server_name www.zhangxiaocai.cn; #需要修改
include /etc/nginx/default.d/*.conf;
location / {
}
error_page 404 /404.html;
location = /40x.html {
}
}
修改好之后ESC
输入:wq
保存退出。接下来验证配置
nginx -t
如果出现以下内容代表配置成功:
nginx: the configuration file /etc/nginx/nginx.conf syntax is ok
nginx: configuration file /etc/nginx/nginx.conf test is successful
重新加载配置或重启nginx服务
nginx -s reload
更多Nginx
相关内容,访问Nginx
5 本地配置修改
修改项目根目录的配置文件
deploy:
type: git
repo: git@你的云服务器的IP地址:/home/git/myHexoBlog
branch: master
清理-生成-部署
hexo clean & hexo g & hexo d
相关文章
- Hexo搭建静态博客(一)——基础搭建
- Hexo搭建静态博客(二)——创建页面
- Hexo搭建静态博客(三)——主题更换
- Hexo搭建静态博客(四)——插件安装
- Hexo搭建静态博客(五)——踩坑问题
- Hexo搭建静态博客(六)——项目部署
- Hexo搭建静态博客(七)——客服与推送
- Hexo添加Live2D二次元老婆
- Hexo博客Valine-Admin踩坑记录
- Hexo博客Matery主题valine升级与优化
- Hexo博客Matery主题新手常见问题
- Hexo博客Matery主题添加多级分类
- Hexo博客添加思维导图渲染
- Hexo博客Matery主题添加说说Artitalk教程
- 静态博客-字体更换教程