hexo部署到centos服务器上

本文介绍将hexo部署到腾讯云的centos服务器上。

准备一台centos云服务器。

搭建本地hexo服务

搭建本地hexo服务可以参见我之前的博客,这里不再赘述。

搭建hexo本地环境


登录centos云服务器

这里采用ssh远程登录

打开终端输入以下命令

ssh username@your_server_ip

然后输入你的用户密码按下回车键就可以登进去了

这里是以默认端口号22进行访问,如果你的端口号改动了则可以加上 -p 参数。

ssh username@your_server_ip -p 端口号


安装并配置nginx环境

  • ssh 登录到服务器然后下载nginx
1
2
yum update
yum install -y nginx
  • 启动nginx并设置开机自启
1
2
service nginx start
systemctl enable nginx

启动nginx

现在浏览器输入外网地址就可以看到欢迎界面了

welcome to nginx

  • 配置nginx环境

这里主要配置域名以及网站根目录,如果没有域名则可以暂时不配置,等购买域名并完成域名备案域名解析后再做配置。

vim /etc/nginx/nginx.conf

以下列出主要配置:

1
2
3
4
5
server {
listen 80;
server_name example.com; #改为自己的域名
root /usr/share/nginx/blog; #改为自己博客的目录
}

新建刚刚改的博客目录:

mkdir /usr/share/nginx/blog

更新nginx配置

nginx -s reload

service nginx reload

nginx配置基本完成。


安装Node.js

  • 下载Nodejs

wget https://nodejs.org/dist/v10.5.0/node-v10.5.0-linux-x64.tar.xz

  • 解压Node.js
1
2
tar -xvJf node-v10.5.0-linux-x64.tar.xz
mv node-v10.5.0-linux-x64 node
  • 配置环境变量
1
2
mv node/ /usr/local/
vim ~/.bash_profile

增加以下内容:

1
2
export NODE_HOME=/usr/local/node   	  #node路径
export PATH=$NODE_HOME/bin:$PATH
  • 更新配置

source ~/.bash_profile

测试是否配置正确

node -v

配置正确截图

到此为止我们的Node.js就配置好了


安装Git并进行配置

  • 安装Git

yum install -y git

  • 创建git用户并为其设置密码
1
2
adduser git #创建用户
passwd git #设置密码
  • 切换至git用户,添加SSH Key

在客户端查看并复制客户端的SSH Keys

1
2
#注意这是在客户端执行,将内容复制下,下面要用。
cat ~/.ssh/id_rsa.pub
1
2
3
4
#这是在服务器端执行的
su git #切换用户
mkdir ~/.ssh #创建目录
vim ~/.ssh/authorized_keys #将刚刚复制的内容写进去
  • 为刚刚的文件和目录设置权限
1
2
chmod 600 ~/.ssh/authorozed_keys
chmod 700 ~/.ssh
  • 在客户端测试是否能连接服务器

终端输入以下命令,如果成功登录则配置成功。

ssh -v git@your_server_ip #注意更改你自己的服务器ip

  • 将博客发布目录的属主属组改为git

chown -R git:git /usr/share/nginx/blog

  • 初始化Git仓库
1
2
3
su git
cd ~
git init --bare blog.git #使用--bare参数,Git就会创建一个裸库。
  • 配置git hooks

vim ~/blog.git/hooks/post-receive

在post-receive中写入以下内容:

1
2
#!/bin/bash
git --work-tree=/usr/share/nginx/blog --git-dir=/home/git/blog.git checkout -f

赋予其执行权限

chmod +x ~/blog.git/hooks/post-rceive


配置博客根目录的主配置文件

编辑博客根目录下的_config.yml

1
2
3
4
5
deploy:
type: git
repo: git@your_server_ip:/home/git/blog.git #注意改成自己的服务器ip
branch: master
message:

在博客主目录执行以下命令

1
2
3
hexo clean
hexo g
hexo d

部署完成后就可以在浏览器输入你的域名访问你的博客了。

最后欢迎大家访问我的博客: 徐先生的小窝

------本文结束感谢阅读------