前言
本文将介绍如何从零开始,将Hexo项目部署到服务器(Ubuntu 20.04)上。
注意:
本篇教程的服务器环境为虚拟机(Ubuntu 20.04),所有的操作均使用Xshell连接进行。对于购买的云服务器环境仍具有适用性。
正文
环境
-
服务器:虚拟机(Ubuntu 20.04)
IP:192.168.75.138
-
客户端:Windows 10
客户端使用Xshell与服务器连接,进行操作。
Ubuntu搭建Git服务器
首先使用Xshell连接服务器,并切换root用户,回退到根路径
创建Git仓库
-
安装 openssh
命令如下:
1
sudo apt-get install openssh-server
-
安装完成之后,查看ssh服务是否启动
命令如下:
1
ps -e|grep ssh
-
创建一个名为
blog
的用户,用于管理Hexo项目命令如下:
1
adduser blog
会提示输入密码,重复确认密码,后面的内容直接回车就好
-
给
blog
用户添加文件的写权限使用vim编辑
/etc/sudoers
1
vim /etc/sudoers
找到
User privilege specification
部分,添加如下内容:1
blog ALL=(ALL:ALL) ALL
-
切换至
blog
用户1
su blog
-
安装git
命令如下:
1
sudo apt-get install git-core
-
退回到根路径(
cd /
),在/var/repo
下创建名为hexo_static
的裸仓库命令如下:
1
2
3
4
5
6sudo mkdir /var/repo/
sudo chown -R $USER:$USER /var/repo/
sudo chmod -R 755 /var/repo/
cd /var/repo/
git init --bare hexo_static.git -
可以进到该目录进行查看
配置Nginx托管文件目录
-
首先安装Nginx
命令如下:
1
sudo apt-get install nginx -y
-
创建
/var/www/hexo
目录,用于Nginx托管,修改目录所有权和权限命令如下:
1
2
3
4sudo mkdir -p /var/www/hexo
sudo chown -R $USER:$USER /var/www/hexo
sudo chmod -R 755 /var/www/hexo -
使用vim修改
/etc/nginx/sites-enabled/default
,使root
指向hexo
目录命令如下:
1
sudo vim /etc/nginx/sites-enabled/default
找到
server
部分,修改如下内容1
root /var/www/hexo;
该步骤将Nginx服务的默认路径修改为指定目录
hexo
。 -
重启Nginx服务,使得改动生效
命令如下:
1
sudo service nginx restart
创建Git钩子
-
在之前创建的
hexo_static
裸仓库下有一个hooks
文件夹,在其中创建一个名为post-receive
的钩子文件:命令如下:
1
vim /var/repo/hexo_static.git/hooks/post-receive
在其中写入如下内容:
1
2
3#!/bin/bash
git --work-tree=/var/www/hexo --git-dir=/var/repo/hexo_static.git checkout -f保存后退出
-
让该文件变为可执行文件
命令如下:
1
chmod +x /var/repo/hexo_static.git/hooks/post-receive
Windows搭建客户端
-
首先安装git,这里不再过多赘述
-
使用命令
ssh-keygen -t rsa
在windons用户下/.ssh文件夹中生成密钥 -
将生成的公钥
id_rsa.pub
拷贝到ubuntu服务器的/home/blog/.ssh/authorized_keys
上首先创建
.ssh
目录,并进入该目录1
2sudo mkdir .ssh
cd .ssh/接着创建
authorized_keys
文件1
sudo touch authorized_keys
-
将Windows下
id_rsa.pub
文件中的内容复制到Ubuntu下的authorized_keys
文件命令如下:
1
sudo vim .ssh/authorized_keys
部署Hexo项目
编辑hexo的config.yml
文件,在deploy
处修改repo
项:
1 | deploy: |
执行命令hexo deploy
,将静态文件上传至Ubuntu服务器
进入目录var/www/hexo/
下,可以看到静态文件已全部上传
访问测试
打开浏览器,输入Ubuntu服务器的IP地址,就可以看到博客页面啦
补充
如果部署到购买的云服务器(阿里云)上,可能出现访问服务器IP没有响应的情况
点击云服务器/ECS
,在安全组规则中手动添加一条80端口的规则:
后记
(后续补充域名的配置操作)
参考文章: