使用hexo搭建博客并部署到服务器

使用hexo+git+nginx搭建静态blog,并部署到阿里云

  • 1. 服务器的购买以及初步配置
    • 1.1 购买服务器
    • 1.2 服务器的初步设置
    • 1.3 使用管理工具,远程登录服务器
      • 1.3.1 putty的使用
  • 2. 配置服务器环境 nginx, node.js, git
    • 2.1. nginx
      • 2.1.1 服务器环境的搭建
      • 2.2.2 nginx的配置。
    • 2.2 node.js
    • 2.3 git
      • 2.3.1 Git的安装
        • 2.3.1.1 利用yum install自动安装(版本较低)
        • 2.3.1.2 使用源码安装最新版本的git
      • 2.3.2. Git的配置(很重要)
      • 2.3.3 错误处理
      • 2.3.4 Git旧版本的卸载
  • 3. 本地端的配置
    • 3.1 windows本地主机上安装git
    • 3.2 安装hexo
      • 3.2.1 安装node.js
      • 3.2.2 使用cnpm安装hexo
  • 4. 使用hexo建立自己的blog
    • 4.1 自动化生成blog
    • 4.2 将博客推至服务器端。
  • 5. hexo的其余操作
    • 5.1. 利用hexo写一篇博客
    • 5.2. 修改博客主题
  • 6.下载JDK,Tomcat
  • Reference

1. 服务器的购买以及初步配置

在服务器的选择上,起初在阿里云腾讯云之间纠结。经过对比后:

  1. 价格上:阿里云走云翼计划,服务器平均一个月¥9.5;腾讯云学生计划,10块1个月(送域名)。
  2. 口碑上:阿里云的口碑综合对比要好一些。
    选择了阿里云。

  其次,我在整体操作的过程中,从域名的实名认证到备案花了差不多一个多礼拜。也就是说,这一个礼拜我服务器上的博客网站,外网是无法通过该域名来访问的。这点比较坑。

1.1 购买服务器

  我在这篇教程中购买的是云翼计划中的服务器,因此服务器选购这里将基于云翼计划来讲(如果您无法使用云翼计划,只是玩玩的话那就买最便宜的服务器,或者更好的)。

  1. 进入阿里云官网注册完账号后,进行实名认证和学生认证。完成这两步之后,点击学生认证页面下的查看云翼计划
    使用hexo搭建博客并部署到服务器_第1张图片
  2. 根据自己的需要选择进行选择。选择完成后进行付款就好了。购买过程中,有一步需要输入服务器的密码,记得设置。并且切记密码(这个密码是用来登录所购买的这个服务器的密码)
    使用hexo搭建博客并部署到服务器_第2张图片
  3. 购买完成后,进入控制台可以看到如下界面:
    使用hexo搭建博客并部署到服务器_第3张图片

1.2 服务器的初步设置

这一步比较重要,因为外网需要通过一些特定的端口来实现对服务器的访问,因此需要开放这些端口。

在控制台界面中按下图的顺序,依次点击网络与安全,安全组,配置规则后,将进入到安全规则界面。如下下图
使用hexo搭建博客并部署到服务器_第4张图片
点击添加安全规则进行添加,具体添加内如如图所示:(注:分为入方向和出方向)
使用hexo搭建博客并部署到服务器_第5张图片
使用hexo搭建博客并部署到服务器_第6张图片

1.3 使用管理工具,远程登录服务器

  • putty的下载及安装

putty是用于远程登陆服务器的工具。 安装方式如下:
  进入putty官网,选择合适的版本下载,并安装。

  • winscp的下载及安装

用于远程传输文件至服务器的工具
  进入winscp官网,按照说明文档下载并安装。

1.3.1 putty的使用

使用hexo搭建博客并部署到服务器_第7张图片

2. 配置服务器环境 nginx, node.js, git

2.1. nginx

2.1.1 服务器环境的搭建

我们需要nginx来搭建我们的服务器,因此直接使用yum命令进行安装。

yum install -y nginx

启动服务器:

启动Nginx && 使Nginx开机自动启动
systemctl start nginx && systemctl enable nginx		

结果如下:
在这里插入图片描述
在这一步之后,我们使用浏览器来访问服务器的公网IP,就可以看到nginx生成的相应默认网页了。

2.2.2 nginx的配置。

vim /etc/nginx/nginx.conf
	修改第42行左右,将root的目录改为 存放网页文件夹的目录。

使用hexo搭建博客并部署到服务器_第8张图片

2.2 node.js

此处,我们使用node.js提供的rpm安装方式,对node.js进行安装。 其中的setup_13.x 这里根据自己的需要或新版本填写。(注意centos 6不支持node.js12及更高版本)

curl -sL https://rpm.nodesource.com/setup_13.x | bash -
yum install -y nodejs

安装完成后进行测试:
node -v
v13.7.0
npm -v
v6.13.6
则表示安装成功

2.3 git

2.3.1 Git的安装

Git这里的 配置 及其重要,如果自己不是很明白的请严格按照我说的步骤去做。否则可能会遇到403问题。

2.3.1.1 利用yum install自动安装(版本较低)

在bash中输入命令

yum install git

2.3.1.2 使用源码安装最新版本的git

  1. 将安装包都同放在一个地方统一管理,因此先新建一个用于存放的目录
cd /home
mkdir package
cd package
  1. 在git源码列表中 选择合适的版本,右键复制链接
    使用hexo搭建博客并部署到服务器_第9张图片
  2. 下载tar.gz压缩包,以及git所依赖的环境
	# 将复制的链接粘贴在wget 后面
wget https://mirrors.edge.kernel.org/pub/software/scm/git/git-2.25.0.tar.gz

	# 下载依赖环境包
yum install gcc-c++ perl-ExtUtils-MakeMaker
yum install yum curl-devel expat-devel openssl-devel zlib-devel

'''
有些教程会说安装gettext-devel这是不对的。
因为gettext依赖于git,安装的时候会导致自动安装低版本的git。
'''

	#将压缩包解压至/usr/local/目录
tar -xzvf git-2.25.0.tar.gz -C /usr/local/

	#进入解压目录,配置安装
cd /usr/local/git-2.25.0/
make configure
./configure --prefix=/usr/local/git/
make profix=/usr/local/git/		#要安装git的目录
make install			

	# 在执行完install后 /usr/local/目录下会出现上面配置的git文件夹
  1. 配置环境变量
#配置环境变量
vim /etc/profile

在最后一行添加:
export PATH=$PATH:/usr/local/git/bin
:wq保存并退出,输入如下指令,使修改生效。

source /etc/profile
  1. 查看是否安装成功
git --version
如果出现如下图回应则代表安装正确。

在这里插入图片描述

2.3.2. Git的配置(很重要)

  • 创建git用户并设置密码
# 创建git用户
adduser git	
# 设置git用户密码
passwd git
  • 修改git的权限
  1. 修改 /etc/sudoers 文件: vim /etc/sudoers
  2. 在第92行左右,添加下图所示的内容:
    使用hexo搭建博客并部署到服务器_第10张图片
  3. 修改完成后,强制保存并退出。(由于权限问题,需要强制保存)
    :wq!
  • 新建.ssh目录,并生成公钥
	#切换到git用户
su git
	# 切换到~目录下,并新建.ssh 文件夹
cd ~ && mkdir .ssh
	# 修改.ssh文件夹权限
chmod 700 .ssh
	
	# 生成服务器公钥
ssh-keygen
cp id_rsa.pub authorized_keys

此时 ~/.ssh/目录下就会有三个文件夹,如下图所示:
最后我们修改其权限
chmod 600 ~/.ssh/authorized_keys
chmod 700 ~/.ssh

在这里插入图片描述

  • 然后,我们在本地电脑上(已经安装了Git)测试是否能够通过git成功连接服务器。
    打开本地电脑的cmd, 输入:ssh -v git@服务器公网IP
    回车之后,输入刚才设置的git密码。
    如果的出现下图, 则表示登录成功了。
    使用hexo搭建博客并部署到服务器_第11张图片

在进行后续步骤前,有必要先说一下后续步骤中的目录结构:
我们在/home目录下新建了一个website文件夹用于存放:

  1. git仓库
  2. 存放静态网页

因此,其文件结构如下图所示:(后续操作都是基于此结构)如果你的目录不同, 请自行修改自己配置时的目录。
使用hexo搭建博客并部署到服务器_第12张图片

  1. ssh配置成功后,创建一个git的仓库
cd /home
mkdir website && cd website		#创建工程目录
mkdir repos && cd repos	
git init --bare blog.git		#创建名为blog的仓库
  1. 配置GIT HOOKS
    新建一个post-receive文件,操作如下:
1) 修改post-receive
vim /home/website/repos/blog.git/hooks/post-receive

在其中添加:
# work-tree=你存放hexo生成的blog的地址,     git-dir=仓库(blog.git)地址
git --work-tree=/home/website/blogs --git-dir=/home/website/repos/blog.git checkout -f

#保存并退出
:wq

2)设置权限
	# 赋予该文件可执行权限 ==!!!!非常重要!!!!==
chmod +x /home/website/repos/blog.git/hooks/post-receive、

	# 改变blog.git目录的拥有者为Git用户
chown -R git:git blog.git		#很重要
  1. 创建一个用于存放hexo生成的静态博客的目录,并将第5步生成的git仓库连接到该目录下
#创建一个用于存放hexo生成的网页的目录
mkdir /home/website/blogs

#  链接git仓库
chown -R git:git /home/website/blogs

# 配置权限
chmod -R 755 /home/website/blogs
  1. 测试git
git clone git@服务器IP:/home/website/repos/blog.git E:\test

检查E:\test目录下是否有一个.git(隐藏)文件夹。如果没有则搭建失败,返回查看少做了哪一步。

2.3.3 错误处理

在执行make configure时报错:autoconf: command not found.
解决方案: 需要安装libtool:执行命令安装:

yum install install autoconf automake libtool

2.3.4 Git旧版本的卸载

使用hexo搭建博客并部署到服务器_第13张图片

3. 本地端的配置

3.1 windows本地主机上安装git

  1. 去git官网选择windows版本点击下载。
  2. 下载完成后打开安装包,一路默认选项点击next(其中有一部选择添加桌面图标),直到完成即可。
    使用hexo搭建博客并部署到服务器_第14张图片
  3. 直接利用cmd输入git(非git bash),查看是否安装成功
  4. 开始输入命令
git init
git config user.name "your name"
git config user.email "your email"
ssh-keygen -R 服务器IP

3.2 安装hexo

3.2.1 安装node.js

  1. 进入node.js的官网 点击下载win 64位安装包。
  2. 下载完成后,一路点击下一步完成安装。
  3. 进入nodejs的安装目录,新建两个文件夹(node_global, node_cache)如下:
    使用hexo搭建博客并部署到服务器_第15张图片
  4. 在cmd中输入:
设置缓存文件夹
npm config set prefix "D:\Develop\nodejs\node_global"
设置全局模块存放路径
npm config set cache "D:\Develop\nodejs\node_cache"

这两步设置成功后,使用npm install XX安装的模块就放在node_global里。
  1. 设置环境变量
    使用hexo搭建博客并部署到服务器_第16张图片
    使用hexo搭建博客并部署到服务器_第17张图片
  2. 由于一些原因,我们需要使用国内镜像。所以我们要做的第一步工作是将npm换成淘宝的服务器。然后使用cnpm来使用淘宝源。在cmd中输入:
npm config set registry https://registry.npm.taobao.org
# 然后安装cnpm
npm install -g cnpm --registry=https://registry.npm.taobao.org

安装完成后如下显示。
在这里插入图片描述

3.2.2 使用cnpm安装hexo

在cmd(管理员运行模式)中输入:

cnpm install -g hexo-cli
		安装完成后使用
hexo -v 
		进行验证,结果如下:

使用hexo搭建博客并部署到服务器_第18张图片

4. 使用hexo建立自己的blog

4.1 自动化生成blog

建立一个存放blog的文件夹,并将cmd的路径改为该文件夹:
例如我放在E:\blog下,则在cmd中输入:

E:
cd blog
	这样就进入E:\blog下了

接下来就是利用hexo生成blog文件夹下的内容了:

hexo init

如果出现以下错误,还是由于网速太慢导致的。
使用hexo搭建博客并部署到服务器_第19张图片
解决方法,按照提示输入:

cnpm install

生成的文件内容如下:
使用hexo搭建博客并部署到服务器_第20张图片
启动静态网页

hexo s

使用hexo搭建博客并部署到服务器_第21张图片
cmd中所示,在浏览器中打开该连接后,效果如下:
使用hexo搭建博客并部署到服务器_第22张图片

4.2 将博客推至服务器端。

打开E:\blog目录下的_config.yml文件,对其进行修改,形式如下:

deploy:
  type: git
  repo: git@服务器IP:/home/website/repos/blog.git
  branchL master

使用hexo搭建博客并部署到服务器_第23张图片
cmd中输入:

npm install hexo-deployer-git --save

hexo clean
hexo g
hexo d

登录服务器在bash中重启nginx服务

service nginx restart

至此,网页就可以在浏览器上正常访问了。
在浏览器中输入公网IP,刷新就可以看到刚才上传的博客了。


从此一下为不成内容

5. hexo的其余操作

5.1. 利用hexo写一篇博客

hexo n "first blog"
	可以看到在\source\_posts\下生成了我们新建的blog
	这个.md文件可以直接用VScode编辑

在这里插入图片描述
在编辑完自己的博客后,需要将页面更新

hexo clean	清理
hexo g		生成
hexo s		启动,在进入localhost:4000 预览就能看到页面已经更新了。

hexo d		推送至服务器

5.2. 修改博客主题

		下载主题到指定的themes/yilia文件夹
git clone https://github.com/litten/hexo-theme-yilia.git themes/yilia		

下载完成后,需要在_config.yml中对主题进行配置
使用VS code或者记事本打开 _config.yml,修改theme项,改为下载的主题名字。
使用hexo搭建博客并部署到服务器_第24张图片

hexo clean
hexo g
hexo s
hexo d

6.下载JDK,Tomcat

在本地电脑下载jdk.
下载好jdk后,试用winscp上穿都/home/packages/下

tar -zxvf jdk-8u241-linux-x64.tar.gz -C /usr/local/

配置环境变量

vim /etc/profile

在最后添加:

export JAVA_HOME=/usr/local/jdk1.8.0_241
export JRE_HOME=${JAVA_HOME}/jre
export CLASSPATH=.:$JAVA_HOME/lib:$JRE_HOME/lib:$CLASSPATH
export PATH=$JAVA_HOME/bin:$JRE_HOME/bin:$JAVA_HOME:$PATH

完成后

source /etc/profile

显示如下:
在这里插入图片描述
为了使长期生效 我们重启一下服务器。
使用hexo搭建博客并部署到服务器_第25张图片

Reference

  1. https://blog.csdn.net/NoCortY/article/details/99631249
  2. https://www.jianshu.com/p/70bf58c48010
  3. https://www.jianshu.com/p/e03e363713f9
  4. https://blog.csdn.net/qq_28299311/article/details/88844442
  5. https://blog.csdn.net/hdn_kb/article/details/90696500
  6. https://blog.csdn.net/tomatocc/article/details/83933041

你可能感兴趣的:(博客搭建,云服务器)