最近尝试了Hexo+github来配置属于自己的博客,但是访问速度有些慢。在网上看到一些教程,基于网上教程总结了这一篇《win10+阿里云ECS服务器+hexo搭建个人博客》。

原文来自: 公众号:阿汤笔迹 (我只是个工具人) 向大佬学习。
为什么会选择他的教程呢?这是我自己动手做过之后,没出多少错的教程,所以推荐给大家,有兴趣的可以尝试一下。

一、搭建个人博客的多种选择

目前,主流的博客主要分静态博客和动态博客两类:
所谓动态,就是指有前端有后端,可以登录到后台进行管理。
静态博客是纯前端的展示,没有后端。

1、动态博客搭建

直接在简书、CSDN、知乎、博客园等动态博客公共平台上写。
使用WordPress等成熟框架(上述主流框架)搭建动态博客+服务器部署
使用JavaPHP、Python等语言开发属于自己的动态博客+服务器部署

2、静态博客搭建

使用Hexo、Hugo、jekyll等主流博客框架搭建静态博客+托管在GitHub等公共平台上
使用Hexo、Hugo、jekyll等主流博客框架搭建静态博客+云端服务器部署

3、什么是Hexo

Hexo 是一个快速、简洁且高效的博客框架。Hexo 使用Markdown(或其他渲染引擎)解析文章,在几秒内,即可利用靓丽的主题生成静态网页。

4、为什么选择Hexo

Hexo在本地安装,不需要部署到我们的服务器上。
我们只需要在本地通过markdown编写文章,然后让Hexo把我们生成静态的html页面,并通过Hexo将生成的html文件上传到我们的服务器。

二、工作原理

在本地计算机搭建Hexo环境 Hexo通过generate命令将*.md文件渲染成静态的html页面 然后Hexo通过deploy命令触发git用户通过公钥免密登陆服务器 将静态页面推送到服务器的git仓库(repository)中 服务器再通过钩子(git-hooks) 将静态页面checkout到网站的根目录下,进而实现博客的自动部署。

三、搭建步骤

1、在本地计算机安装Hexo环境

1.1 安装Node.js

官网链接:https://nodejs.org/en/download/
选择LTS(长期支持版 Long Term Support schedule)
默认安装就可以,官网有些慢,可以选择其他来源,注意别踩雷。
安装完成后打开win+R打开cmd,输入node -v 显示版本号则说明安装成功

C:\Users\ASUS>node -v
v12.14.1

Node.js中自带了npm包管理工具,在cmd中查看npm版本。

C:\Users\ASUS>npm -v
6.13.4

我们是借助npm来安装Hexo,但是国内镜像源的速度很慢,所以在使用前利用npm安装一个cnpm(淘宝的源)。

npm install -g cnpm --registry=http://registry.npm.taobao.org

它会自己安装,安装结束后 cnpm -v 来查看版本号

1.2 安装Hexo

在D盘(或任意盘)新建一个blog文件夹用来存放个人博客,使用cmd命令进入该文件夹(不会进入,自行百度)

D:\blog>cnpm install -g hexo-cli

cmd输入hexo -v 有版本好说明安装成功
Hexo安装完成后,在blog文件夹下新建myblogs项目,并对其进行初始化。

D:\blog>hexo init myblogs
D:\blog>cd myblogs
D:\blog\myblogs>npm install

此时,会在blog文件夹下新建myblogs文件夹,并在其内部生成相应的项目文件。
在myblogs文件夹下启动hexo服务。

D:\blog\myblogs>hexo server

若初始化错误,提示没有server命令。输入以下命令,然后重新初始化

D:\blog\myblogs>npm install hexo-server --save

此时,通过 http://localhost:4000/ 便可访问基于Hexo的个人博客主页了。

1.3安装Git

git是一个版本控制工具,国外镜像下载巨慢,建议寻找淘宝源下载。
安装完成后右键菜单中出现Git Bash和Git GUI菜单表明安装成功,如下图所示。

2、服务端准备工作

2.1 域名注册

阿里云域名注册官网上直接注册购买。

2.2 域名实名认证

域名注册过程中,必须进行邮箱和身份证实名认证才可以继续购买,我们只需按提示进行操作即可。

2.3 购买阿里云ECS服务器

阿里的云服务产品有很多种,如阿里云主机、ECS服务器等。我这里购买的是阿里云ECS服务器。所谓ECS,即弹性计算服务。
最近百度云高校大学生活动可以免费撸六个月的ECS服务器(2 vCPU 4 GiB(I/O优化) ),真香。

2.4 ECS服务器备案

备案需要有服务器和域名。

国家法律规定,使用中国大陆境内服务器托管你的网站时,你必须对你的网站进行备案申请。当你使用阿里云中国大陆境内节点的服务器时,你可以直接在阿里云备案管理系统中提交ICP备案申请。

ICP备案申请审核通过后,管局(工信部)会给我们一个ICP备案号,我们需要将备案号在网站底部标明。网站在工信部备案成功后,还需要在网站开通之日起30日内登录全国公安机关互联网站安全管理服务平台提交公安联网备案申请。

2.5 阿里云服务器设置

(1)重置实例密码

点击阿里云首页的控制台按钮,登录到云服务器管理控制台,便可以查看自己购买的实例了。

新买的ECS服务器实例对root用户是没有设置初始密码的,ECS服务器的root密码需要重置才能用。

重置步骤如下:选中ECS服务器实例,点击下面的重置密码按钮即可重置root用户的密码,密码在实例重启后生效。(该密码必须是字母、数字和其它字符组成的8位以上字符串。)

(2)远程连接Linux实例

远程连接服务器的方法都很多。我们既可以通过阿里云自带的VNC(Virtual Network Console,虚拟网络控制台)远程连接Linux实例,也可以通过远程连接软件(例如PuTTY、Xshell、SecureCRT等)连接Linux实例。

需要说明的是:使用阿里云自带的VNC远程连接Linux实例,登录VNC窗口时还要输入一个6位数的远程连接密码,用于连接ECS管理控制台的管理终端,注意不要与root密码混淆。如果使用VNC这个密码一定要记住。

具体连接步骤如下:
a. 在实例列表中选中当前实例,点击右侧按钮:远程连->VNC。
b. 输入远程连接密码。
c. 在控制台中输入用户名:root,及其root密码(实例密码)。回车即可进入阿里云ECS服务器的后台。

(3)配置安全组

由于我们要通过80端口访问nginx服务,而阿里云默认是禁止80端口访问权限的,所以我们要为实例手动添加安全组,让阿里云给相应的端口和IP放行。该步骤非常重要,若不手动配置,我们将无法通过“公网IP+端口”的方式访问我们的ECS服务器。

具体操作步骤如下:
a. 打开阿里云服务管理控制台,点击左侧菜单中的“安全组”按钮,查看安全组列表。
b. 点击右上角的“创建安全组”按钮,创建一个新的安全组。
c. 立即为新建的安全组添加安全组规则,在入方向解除端口和IP限制,具体参数设置如下图所示。这里建议切换到旧版本进行操作.

添加完成后

3、Hexo博客的阿里云部署

该步骤是整个博客搭建过程中最重要的一步,实现过程中一定要注意是在服务端操作还是在本地计算机上操作。若在服务器上操作,还要注意是使用root用户进行操作还是使用git用户进行操作。

3.1 安装nginx

因为我们用nginx作Web服务器,所以我们需要先安装nginx服务。具体步骤如下:
使用root用户远程登录阿里云服务器,使用yum命令进行安装。
a. 安装nginx依赖环境,安装期间有提示一律选yes。

#yum install gcc-c++
#yum install -y pcre pcre-devel
#yum install -y zlib zlib-devel
#yum install -y openssl openssl-devel

b. 下载nginx安装包。(下面的链接可以换成官网的最新版本)

#wget -c http://nginx.org/download/nginx-1.18.0.tar.gz

c.将安装包解压到/usr/local目录下。

#tar -xvf nginx-1.18.1.tar.gz -C /usr/local

d. 进入/usr/local目录,确认nginx解压到该目录下。

#cd /usr/local
#ls

ls命令会显示该目录下所有文件,你可以在任意位置查看当前目录下所有的文件。

e. 进入nginx-1.18.1目录,会发现该目录下有一个configure文件,执行该配置文件。

#cd nginx-1.18.1/
#ls
#./configure

f. 编译并安装nginx。

#make
#make install

如果编译出现错误,自行百度。

g. 查找nginx安装目录。

#whereis nginx

h.进入安装目录。

#cd /usr/local/nginx
#ls

​i. 由于nginx默认通过80端口访问,而Linux默认情况下不会开发该端口号,因此需要开放linux的80端口供外部访问。

#/sbin/iptables -I INPUT -p tcp –-dport 80 -j ACCEPT

j. 进入/usr/local/nginx/sbin目录,启动nginx。

#cd sbin
#./nginx

没有任何消息,代表启动成功。此时,便可以通过“公网IP+端口”的方式访问 http://xx.xx.xxx.xxx:80/ 进入nginx欢迎页面了。注:可以使用./nginx -s stop命令停止服务

3.2 配置nginx服务器路由

a. 专门为hexo创建一个部署目录/home/www/hexo。

#mkdir -p /home/www/hexo

b. 进入/usr/local/nginx/conf目录,打开该文件夹下的nginx.conf配置文件。

#cd /usr/local/nginx/conf
#ls
#vim nginx.conf

进入后按i键由命令模式切换到编辑模式(左下角会显示INSERT)。
将其中的部署根目录(root)修改为/home/www/hexo;
将域名(servername)修改为你自己的域名(www.____.__),如果暂时没有域名就填阿里云实例的公网ip,以后有了再改回来;
查看监听端口(listen)的系统默认值是否为80(不用修改)。
完成以上修改后,先按 Esc 由编辑模式切换到命令模式,再输入 :wq 命令保存并退出编辑器。

3.3 安装node.js

a. 退回根目录,安装node.js。

#cd ~
#curl -sL https://rpm.nodesource.com/setup_10.x | bash -
#yum install -y nodejs

b. 查看安装结果,打印版本号即为安装成功。

#node -v
#npm -v

3.4 安装Git

a. 使用yum命令安装Git,安装期间有提示一律选yes。

#yum install git

​b. 安装成功后,查看版本号。

#git --version

3.5 创建git用户

为了实现博客的自动部署,我们后面要使用公钥免密登录服务器。为了安全起见,最好不要使用root用户免密登录。因此,我们要创建一个新的git用户,用于远程公钥免密登录服务器。

a. 创建git用户。

#adduser git

b. 修改git用户的权限。

#chmod 740 /etc/sudoers

c. 打开文件。

#vim /etc/sudoers

进入后按i键由命令模式切换到编辑模式。找到 root ALL=(ALL) ALL,在下面添加一行 git ALL=(ALL) ALL(注意和上面的命令对齐(TAB键))。修改完成后,先按 Esc 由编辑模式切换到命令模式,再输入 :wq 命令保存并退出编辑器。

d. 保存退出后改回权限。

#chmod 400 /etc/sudoers

e. 设置git用户的密码。

#sudo passwd git

设置密码:****,这样我们就可以使用git用户远程登录阿里云服务器了。

3.6 给git用户配置ssh免密公钥登录

使用git用户免密公钥登录阿里云服务器的原理是:在本地计算机生成一个公钥文件和一个秘钥文件(类似于一个钥匙配一把锁),然后使用FTP工具将公钥文件上传到阿里云服务器,并将公钥安装到authorized_keys列表中去(即:将公钥文件的内容拷贝到authorized_keys文件中去)。这样本地计算机便可以通过ssh方式免密连接我们的阿里云服务器了。

a. 在服务器端将登陆用户切换到git用户,然后在~目录(根目录)下创建.ssh文件夹,用来存放公钥。

#su git
$cd ~
$mkdir .ssh

b. 在本地计算机桌面右键打开GitBash,在本地生成公钥/私钥对。

$cd ~
$cd .ssh
$ssh-keygen

接下来,碰见系统询问就直接按回车键。此时便会在本地计算机的用户根目录(C:\Users\ASUS)下自动生成.ssh(隐藏)文件夹,并在其中创建两个文件,分别为:id_rsa(私钥)和id_rsa.pub(公钥)。

​c. 在本地计算机上给私钥设置权限。

​$ chmod 700 ~/.ssh
$ chmod 600 ~/.ssh/id_rsa

d. 下载并安装FTP工具,这里推荐阿里云官方提供的FileZilla

e. 打开FileZilla,使用git用户通过22端口远程连接到阿里云服务器,将客服端生成的公钥上传到服务器的~/.ssh目录下。

主机:你的服务器公网ip
用户名:git
密码:自己设定的
端口:22

f. 上传完成后切回服务器端,继续以git用户的身份进入服务器~/.ssh目录,新建一个authorized_keys文件,并将id_rsa.pub文件中公钥的内容拷贝到该文件中。(注:该步骤既可以用命令行操作,也可使用FTP工具操作。)

$cd ~/.ssh
$cp id_rsa.pub authorized_keys
$cat id_rsa.pub >> ~/.ssh/authorized_keys

g. 在服务器上设置文件权限:

$chmod 600 ~/.ssh/authorized_keys
$chmod 700 ~/.ssh

h. 确保设置了正确的SELinux上下文。

$ restorecon -Rv ~/.ssh

现在,当您使用ssh远程登录服务器时,将不会提示您输入密码(除非您在创建密钥对时输入了密码)。

i. 接下来在本地计算机上使用ssh方式连接我们的云服务器。

$ssh -v git@xxx.xxx.xxx.xxx(阿里云公网IP)
或
$ssh git@xxx.xxx.xxx.xxx(阿里云公网IP)

3.7 配置Git仓库

a. 在服务器上使用git用户创建一个Git仓库,并且在该仓库中新建一个post-receive钩子文件。

$cd ~
$git init --bare hexo.git
$vi ~/hexo.git/hooks/post-receive

b. 进入后按i键由命令模式切换到编辑模式。输入: git --work-tree=/home/www/hexo --git-dir=/home/git/hexo.git checkout -f

即:让钩子文件删除/home/www/hexo目录下原有的文件,然后从blog.git仓库 clone 新的博客静态文件到/home/www/hexo目录下。

完成以上修改后,先按 Esc 由编辑模式切换到命令模式,再输入 :wq 命令保存并退出编辑器。

c. 授予钩子文件可执行权限。

$chmod +x ~/hexo.git/hooks/post-receive
$cd ~
$sudo chmod -R 777 /home/www/hexo

d. 重启ECS服务器实例。

至此我们就完成了所有关于服务器端的配置。

4、其它配置

4.1 客服端hexo配置

a. 在本地计算机hexo的工程目录(myblogs)下,找到_config.yml,对deploy参数进行修改,如下图所示。马赛克是你的服务器公网ip。

b. 在本地计算机安装插件: hexo-deployer-git 和 hexo-server。在myblogs文件夹下右键打开GitBash,输入以下命令:

$npm install hexo-deployer-git --save
$npm install hexo-server

c. 在本地计算机配置Git全局变量。输入以下命令:

$ git config --global user.email "xxxxxxxxxx@qq.com"
$ git config --global user.name “qimu”

d. 使用Hexo生成、发布个人博客。

$ hexo clean
$ hexo generate
$ hexo deploy

此时,便可以通过浏览器访问http://xxx.xxx.xxx.xxx:80/ 进入hexo我的博客主页了。

4.2 域名绑定

待ECS服务器备案审核通过,在阿里云后台对域名解析进行设置,将域名的解析值修改为ECS实例的公网IP。进而完成域名与ECS服务器实例的公网IP进行绑定。

之后就可以通过域名进入自己的博客网站了。

我的服务器和域名还没有备案(www.qimubiji.club) 这种后缀的域名特别便宜,适合新手注册,.com的一年大概60+,服务器1g1核的就可以了,搭建博客够用了。

win10+阿里云ECS服务器+hexo搭建个人博客相关推荐

  1. 阿里云ECS服务器环境搭建(2) —— ubuntu 16.04 安装中文输入法(搜狗输入法)

    阿里云ECS服务器环境搭建(2) -- ubuntu 16.04 安装中文输入法(搜狗输入法) 1. 环境 阿里云 ECS服务器 (4核 8G 4M) Ubuntu16.04-64-bit 图形界面 ...

  2. 在阿里云ECS服务器上搭建FTP服务

    在阿里云ECS服务器上搭建FTP服务 一.简介 二.环境简介 三.搭建FTP服务器步骤 1.配置ECS服务器的安全组策略 2.服务器安装vsftpd软件 3.修改配置文件 4.启动FTP服务 5.Wi ...

  3. 阿里云ECS服务器的搭建

    之前写了一个Android小项目,然后里面各种与后台数据库的交互,然后差不多完成了吧!感觉应该买一个服务器,而不是每次都是需要启动MyEclipse,启动Tomcat服务器才能够启动服务,获取到数据. ...

  4. 在阿里云ECS服务器上搭建tomcat

    我购买的ECS安装的是 centos7版本的Linux系统,在网上查了一会资料搞定了,记录一下:  1.远程连接ECS  我用的是window操作系统,每次使用控制台去连接我的ECS显得非常的不方便, ...

  5. 阿里云ECS服务器的搭建和部署

    一.购买服务器 1.首先要进行登录,如果没有账号可以进行免费注册,然后实名认证,注册链接如下: 阿里云注册入口​ 阿里云注册入口http://www.ccusoft.com/a.htm 如下图所示: ...

  6. 使用 git.oschina 码云 来托管 Hexo 搭建的博客

    首先还没有搭建博客的先转到我的另一篇文章:使用 Hexo 免费搭建属于自己的个人博客 ,一般我们都是使用 GitHub + Hexo 来搭建我们的 博客 ,下面分享一下如何用国内的 码云 来托管我们的 ...

  7. 基于阿里云ECS服务器的k8s集群环境搭建

    前言:  网上搭建k8s的文章很多,但很多都无法按其说明在阿里云ecs服务器成功搭建,所以我就花了些时间基于自己成功搭建k8s的步骤写了个 操作手册,希望对想搭建k8s环境的盆友有所帮助. 声明:  ...

  8. 阿里云ECS服务器php运行环境配置全过程

    服务器:阿里云ECS服务器 需要搭建的环境:>php5.4+apache2.2+Postgresql 先用Xshell连上服务器,打开Xshell,新建一个连接 名称随便起一个,主机输入你的服务 ...

  9. 搭建阿里云ecs服务器(一:购买)

    搭建阿里云ecs服务器 第一步:购买阿里云ecs服务器 地域需要选择离自己比较近的,网速可能更快 实例.服务器系统镜像.云盘存储根据自己的需求购买 在网络和安全组中把80端口打开,其他可以默认 在系统 ...

最新文章

  1. Python Qt GUI设计:QTimer计时器类、QThread多线程类和事件处理类(基础篇—8)
  2. spring 3.X与jdk 1.8不兼容
  3. Testing tools
  4. electron builder 打包错误 cannot unpack electron zip file 解决方案
  5. Serverless应用场景
  6. S5PV210开发 -- Linux dd命令
  7. ASP.NET Core 实现基于 ApiKey 的认证
  8. 气死N个女孩子的图片
  9. 构建基本的嵌入式Linux根文件系统
  10. 程序员怒斥:阿里如此嚣张?为所欲为?谁让你动了我的浏览器
  11. 视频主观质量评价工具:MSU Perceptual Video Quality tool
  12. 24.go clean
  13. 关于QQ表情数据库的复制
  14. PLSQL连接Oracle 数据库配置详解
  15. 那些年搞不懂的高深术语——依赖倒置•控制反转•依赖注入•面向接口编程【转】...
  16. tig--颠覆 Git 命令使用体验的神器
  17. Android截取人物头像,Android 图片截取人物头像(仿逗拍)
  18. 计算机不能上网查找原因的步骤,电脑不能上网的原因及操作步骤_电脑突然不能上网...
  19. 川大计算机系导师,川大计算机学院硕士生导师简介
  20. 怎么把Java代码写成一道风景?

热门文章

  1. 【BZOJ 1115】【POI 2009】石子游戏Kam
  2. 腾讯云同地域跨账号服务器配置内网互通教程
  3. mysql对网站seo的作用_友情链接对于网站SEO的作用有哪些
  4. Ghost恢复后Windows 7无法启动解决
  5. python猫狗大战代码_pandlepandle+OpenCV+Pyqt+猫狗分类(猫狗大战)
  6. shiro进阶—与javaweb整合
  7. 昨天和朋友聊完感触不少,次条分享个有意思的事
  8. TCP/IP Monitor
  9. 微信小程序:webview头部状态栏被黑色区域填充问题
  10. ftp登录时,报错“530 Login incorrect.Login failed”