嘘~ 正在从服务器偷取页面 . . .

Hexo搭建静态博客(六)——项目部署


本文记录将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 –savehexo上传至腾讯云COShttps://github.com/sdlzhd/hexo-deployer-cos#user-content-options
npm install hexo-deployer-aliyun –savehexo上传至阿里云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

相关文章




版权声明: 本博客所有文章除特別声明外,均采用 CC BY-SA 4.0 许可协议。转载请注明来源 Small-Rose / 张小菜 !
评论
  目录