Hexo部署到阿里云服务器ECS!

Posted zdc博客-小白上云

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Hexo部署到阿里云服务器ECS!相关的知识,希望对你有一定的参考价值。

原文作者:小白上云网

原文链接:https://www.dechenyun.com/985.html

阿里云服务器地址:https://www.aliyun.com/minisite/goods

1 前言

最近想搭建一个博客,分享自己所学的知识。经过分析,选择了Hexo + Aliyun ECS来部署博客,刚开始选择Hexo+Github Pages的方式部署,但是由于访问页面速度很慢,用户体验不是很好,因此决定采用阿里云ECS来部署Hexo,访问速度更快。

2 环境介绍

物理机:MacBook

云服务器:Aliyun ECS/Centos 7.8 配置:1核 2GB内存 系统盘40GB

软件:Hexo、Node.js、Git

3 本地环境部署

3.1 安装node.js

Node.js直接在官网下载,安装即可,方便省事。
Hexo部署到阿里云服务器ECS

之后输入node -vnpm -v 检验是否安装成功,如果输出版本号则安装成功。

Hexo部署到阿里云服务器ECS

3.2 添加国内镜像源

可以使用阿里的国内镜像进行加速。

复制

npm config set registry https://registry.npm.taobao.org

3.3 安装git

方式一:官网下载安装

git官网上下载安装即可

Hexo部署到阿里云服务器ECS

方式二:Homebrew安装git

复制

brew install git 

安装完成后在命令提示符中输入git --version验证是否安装成功。

Hexo部署到阿里云服务器ECS

4 使用Hexo

4.1 安装Hexo

上面环境搭建好之后,在合适的地方新建一个目录作为你的博客文件夹,之后切换到该目录,输入以下命令:

复制

npm install -g hexo-cli

可能会有一些警告Warn等,可以忽略。安装好Hexo之后,执行hexo -v检验是否成功。

Hexo部署到阿里云服务器ECS

4.2 初始化Hexo

然后就要初始化我们的网站,输入hexo init初始化文件夹,接着输入npm install安装必备的组件。

这样本地的网站配置也弄好啦,输入hexo g生成静态网页,然后输入hexo s打开本地服务器,然后浏览器打开http://localhost:4000/,就可以看到我们的博客啦,效果如下:

Hexo部署到阿里云服务器ECS

4.3 下载主题Matery

方式一:git clone下载

复制

git clone https://github.com/blinkfox/hexo-theme-matery.git

方式二:github直接下载

Hexo部署到阿里云服务器ECS

4.4 更换主题为Matery

修改博客根目录下的_config.yml中的theme为matery

Hexo部署到阿里云服务器ECS

重新在项目根目录下进行本地部署调试

复制

hexo s --debug

Hexo部署到阿里云服务器ECS

5 配置SSH密钥

为了使本地可以跟远程的github建立联系,需要在本地配置SSH密钥,这样我们就可以在本地直接提交代码到GitHub上或者远端git仓库。
如果你是第一次配置SSH,则配置一下git的username 和 email

复制

$ git config --global user.name "你要设置的名字"
$ git config --global user.email "你要设置的邮箱"

之后生成SSH密钥:

复制

$ ssh-keygen -t rsa -C "你刚刚设置的邮箱"

如果不需要设置密码的话,连续三个回车就好了。在这之后会得到两个文件: id_rsa 和 id_rsa.pub,找到id_rsa.pub文件,复制其内容。

6 服务器部署

6.1 git配置

1、安装git

复制

yum install git

2、创建git账户

复制

adduser git

3、添加git账户权限

复制

chmod 740 /etc/sudoers
vim /etc/sudoers

输入上面的命令之后,进入编辑界面:

Hexo部署到阿里云服务器ECS

root ALL=(ALL) ALL 下面添加

复制

git    ALL=(ALL)   ALL

Hexo部署到阿里云服务器ECS

4、改回权限

复制

chmod 400 /etc/sudoers

5、设置git账户密码

复制

passwd git

6、切换至git用户,创建 ~/.ssh 文件夹和 ~/.ssh/authorized_keys 文件,并赋予相应的权限

复制

su git
mkdir ~/.ssh
vim ~/.ssh/authorized_keys

按”i”进入编辑模式,将我们在MacBook中生成的id_rsa.pub文件中的公钥复制到authorized_keys中,按”esc”,然后按”:wq”,保存退出。

Hexo部署到阿里云服务器ECS

接着,输入一下命令,赋予权限

复制

chmod 600 /home/git/.ssh/authorized_keys
chmod 700 /home/git/.ssh

在本地Git终端中测试是否能免密登录git,其中SERVER为填写自己的云主机IP,执行输入yes后输入你之前配置的git密码,无报错就说明好了。

打开终端,输入以下命令,其中SERVER填写自己的云主机ip,执行输入yes后不用密码说明配置成功了。

复制

ssh -v git@SERVER

6.2 创建仓库目录及相关配置

1、创建目录
在var目录下创建repo作为Git仓库目录,返回服务端命令行切换到root账户,然后输入:

复制

mkdir /var/repo

2、赋予权限:

复制

chown -R git:git /var/repo
chmod -R 755 /var/repo

3、接下来创建hexo目录作为网站根目录,并赋予权限:

复制

mkdir /var/hexo
chown -R git:git /var/hexo
chmod -R 755 /var/hexo

接下来创建一个空白的git仓库

复制

cd /var/repo
git init --bare hexo.git

5、创建一个新的 Git 钩子,用于自动部署.

在 /var/repo/hexo.git 下,有一个自动生成的 hooks 文件夹。我们需要在里边新建一个新的钩子文件 post-receive。

复制

vim /var/repo/hexo.git/hooks/post-receive

进入编辑模式,然后将下面那两行代码粘贴进去,保存退出。

复制

#!/bin/bash
git --work-tree=/var/hexo --git-dir=/var/repo/hexo.git checkout -f

修改权限:

复制

chown -R git:git /var/repo/hexo.git/hooks/post-receive
chmod +x /var/repo/hexo.git/hooks/post-receive

到这里Git仓库已经搭建完毕了。

7 配置nginx

为了方便部署和维护,我们使用宝塔面板来一键部署Nginx

复制

yum install -y wget && wget -O install.sh http://download.bt.cn/install/install_6.0.sh && bash install.sh

中途输入”y”回车等待一会就好了。在执行结果最后会出现地址,用户名,密码等。

Hexo部署到阿里云服务器ECS

复制这个地址打开,输入账号密码即可进入宝塔面板。

Hexo部署到阿里云服务器ECS

注:这里也有可能你进不去面板页面,是因为你的服务器没有开8888这个端口(具体看你的宝塔面板连接的端口),去阿里云轻量服务器控制台中的“网络与安全”->“安全组”,点击配置规则——>手动添加

Hexo部署到阿里云服务器ECS

Hexo部署到阿里云服务器ECS

进入面板之后,会提示叫你修改端口,点击”立即修改”,可以看到”面板端口”这时候是8888,自己选一个值,然后先去服务器防火墙上开放这个端口,跟刚刚的”添加规则”操作一样。

再回到宝塔面板页面将”面板端口”的值修改成你刚刚开放的端口值。

然后需要用新端口,重新进入宝塔面板,就是将原有的链接”:”后面的值改成你的端口即可。

在左侧点击软件商店,输入Nginx,点击搜索,选择Nginx1.18.0安装即可

Hexo部署到阿里云服务器ECS

安装完成后,配置。

部署完成之后,点击网站,添加站点,填写你的域名,没有的话写你的服务器ip地址。其他的不要改。

Hexo部署到阿里云服务器ECS

填写完成后,点击提交,然后点击设置,选择配置文件

复制

server
{
    listen 80;
    server_name xxxxxxx;   # 修改为自己的域名或者ip
    index index.php index.html index.htm default.php default.htm default.html;
    root /var/hexo/;            # 修改为网站目录

保存,然后选择“设置”-“网站目录”,将网站目录修改成以下,保存。

Hexo部署到阿里云服务器ECS

回到服务器终端,重启宝塔服务,使之生效。

复制

service bt restart

8 修改Hexo配置

进入本地电脑hexo博客的根目录,编辑站点配置文件 _config.yml,找到deploy,修改成以下

复制

deploy:
  type: git
  #repo改为repo: git@你的域名:/var/repo/hexo.git
  repo: git@example.com:/var/repo/hexo.git
  branch: master

最后在本地电脑hexo博客的根目录,打开终端,输入以下命令部署

复制

hexo clean
hexo d -g

这时候可能出现权限问题,导致部署到git失败。

Hexo部署到阿里云服务器ECS

在服务器终端输入以下命令即可:

复制

chown -R git:git /var/repo/
chown -R git:git /var/hexo/

最后再hexo d -g部署,用域名访问即可看到部署成功了。

Hexo部署到阿里云服务器ECS

9 总结

部署过程其实很简单,只是由于环境可能会出现很多小问题,一定要有耐心去分析查找解决问题的办法。

以上是关于Hexo部署到阿里云服务器ECS!的主要内容,如果未能解决你的问题,请参考以下文章

Hexo部署到阿里云服务器ECS!

Github Action 部署到阿里云ECS

Hexo部署到阿里云

Java Web项目部署到阿里云服务器(ECS)

SpringBoot部署到阿里云ECS服务器,阿里云ECS服务器安装JDKMysqlnginx详细步骤

如何将Django项目部署到阿里云服务器上