只需5步!在轻量应用服务器部署Hexo博客-阿里云开发者社区

开发者社区> 弹性计算-百晓生> 正文

只需5步!在轻量应用服务器部署Hexo博客

简介: 轻量应用服务器征文活动投稿教程帖,只需5步完成Hexo博客的部署实践,步骤完整,操作性强~
+关注继续查看

本文来自于轻量应用服务器征文活动的用户投稿,已获得作者(昵称飞鸟)授权发布

引言

Hexo是一款基于Node.js的静态博客框架,依赖少易于安装使用,是搭建博客的首选框架。本篇教程记述了作者用阿里云轻量应用服务器部署Hexo的详细过程,步骤完整,操作性强,一起来看看吧~


步骤一:本地电脑部署


1、安装nodeJS

浏览器进入NodeJS 官网,安装 LTS(Long Term Support)版本。


image001.png


验证nodeJS是否安装成功:

按住win+R,输入cmd,进入 cmd 命令行工具,输入node -v查看 node 版本,若出现版本信息(如下图示),则说明 node 安装成功。

image003.png


2.、安装Hexo

i. 安装Hexo

在 cmd 命令行中输入npm install hexo-cli -g,安装 hexo。完成后输入hexo -v查看版本信息,确认安装成功。


image004.png

ii. 初始化根目录

创建文件夹Hexo-Blog,在 cmd 命令行中进入该目录,输入hexo init初始化根目录。

image005.png

iii. 本地查看

输入hexo g&&hexo s(生成静态文件,并开启本地服务器)


image007.png

根据提示,在浏览器中打开http://localhost:4000,即可看到初始的博客页面。


image009.png


iv. 美化博客

对自己的博客进行更改样式、美化、增删功能、发布文章等操作,就不展开介绍了。


步骤二:购买域名


本教程后续涉及域名处,以test.top为例进行演示;读者在自己学习部署时,应将此域名替换为自己网站的域名

1、购买域名

在阿里云上可以购买域名,.com/.cn/.top/.xyz/.store等域名一应俱全,部分域名只需要1块钱。

image012-域名购买.jpg


2、域名备案

域名绑定国内的服务器,必须要进行备案操作,否则将无法访问。从提交备案信息,到管局审核通过,备案号下来一共花了不到 10 天的时间。


image013.png

3、域名解析

域名解析是把域名指向网站空间 IP,让人们通过注册的域名可以方便地访问到网站的一种服务。IP 地址是网络上标识站点的数字地址,为了方便记忆,采用域名来代替 IP 地址标识站点地址。

image017-打码.png

说明

◾ 主机记录中,www代表域名前加www.,如www.test.top,@就代表test.top,这样两个地址都能访问到服务器了

◾ 记录类型A是指,将域名指向一个IPV4地址

◾ 记录值就是服务器的公网 IP


步骤三:服务器端配置


1、购买服务器

为了让其他用户在自己的客户端访问到自己的博客,就需要将博客部署到服务器上,其他用户通过访问服务器的公网 IP 来访问到服务器上的资源。若绑定了域名,还可以通过域名访问。

通过阿里云开发者成长计划,购买了轻量应用服务器。在系统的选择上,作为服务器系统,CentOS 稳定、强大,所以系统镜像选择了 Linux 系统的 CentOS 7.3 版本。

image019.png


2、配置端口

点击云服务器管理页面的防火墙,再点击添加规则。

image021.png


使用 HTTP 协议访问服务器,需要在服务器端监听 80 端口,因为 80 端口是服务器的默认端口号。而阿里云服务器默认关闭 80 端口,则需要我们手动打开监听 80 端口。另外,服务器端配置 Git 时需要使用 SSH 协议进行本地与服务器的连接,需要服务器监听 22 端口,也需要手动打开。

image023-打码.png


3、服务器环境搭建

此步骤需要在轻量应用服务器上完成。具体方法可以使用远程连接(如下图示),也可以使用 Xshell 客户端进行连接。

image025-打码.png



i. 安装 nginx

①切换到 root 帐号,输入命令:


sudo su root

image027.png

②需要使用 nginx 作为 Web 服务器,所以我们首先要安装 nginx。可以使用 yum 命令直接进行安装:


yum install -y nginx

image028.png

③安装完成后启动 nginx 服务器,命令如下:

systemctl start nginx
systemctl enable nginx

image030.png


ii. 建立博客根目录

将博客的页面文件放在/home/www/website/路径下,需要先创建这些文件。

cd /home
mkdir www
cd www
mkdir website


查看创建的文件:

image032.png


iii. 配置 nginx 路由

建立了博客的根目录后,需要将 nginx 服务器指向这个根目录地址,才能访问到博客页面,所以需要修改 nginx 的配置文件。

阿里云默认的库下载的是基于 fedora 的 nginx,查阅资料发现,默认配置文件位于etc/nginx/下的nginx.conf。

查看 nginx 的默认配置文件:

cd ~
cd /etc/nginx
ls

image034.png


文件中的nginx.conf就是默认配置文件。

但不采用直接修改 nginx 配置文件的方式,而是新建一个文件夹,将自己的配置写在新建的文件夹中。再利用include,在配置文件nginx.conf中将文件夹引入进来即可

这样若有新的需求时,只需在文件夹中添加新需求的配置文件即可,不会再次修改配置文件nginx.conf,提高效率。

切换/etc/nginx/目录,在此目录下创建一个文件夹vhost:

cd /etc/nginx
mkdir vhost
cd vhost

image036.png

输入vim blog.conf新建blog.conf文件并编辑内容:

server{        listen    80;
                             root /home/www/website;
               server_name test.top;
               location /{        
               }
}

image037-打码.png


其中,listen代表监听 80 端口。root是博客的根目录,页面存放的地址。server_name是服务器名称,填域名test.top,将域名和博客的页面根目录绑定。

为了让http://www.test.top/也能访问到博客页面,再新建一个配置文件wwwblog.conf,将server_name设置为www.test.top:

image038-打码.png


这样,/etc/nginx/vhost目录下就有两个配置文件,blog.conf和wwwblog.conf:

image039.png


打开/etc/nginx/目录下的nginx.conf文件,添加下面一行代码,将刚才新建的配置文件引入进来。*.conf的意思是将vhost文件夹下的所有.conf后缀的文件都引入了进来。注意:要写在http{}的里面。

include /etc/nginx/vhost/*.conf;

至此,完成了 nginx 路由的配置,将域名和云服务器指定路径进行了绑定。

image040.png


4、安装nodeJS

输入输入命令:

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

image042.pngimage044.pngimage046.pngimage048.png


安装完成后执行 node -v 和 npm -v ,如果打印版本号则安装成功。

image049.png


步骤四:配置服务端Git


这一部分主要目的是本地电脑可以通过ssh方式连接到云服务器,然后就可以通过命令行方式将博客传到云服务器上。

1、安装Git

输入命令:

yum install git

image050.pngimage052.png


2、配置Git用户

输入以下命令添加 Git 用户:

adduser git

image055.png


修改用户权限命令:

chmod 740 /etc/sudoers


打开/etc/sudoers命令:

vi /etc/sudoers


在这个位置添加语句:

git ALL=(ALL) ALL

image056.png

保存退出后,将sudoers文件权限改回原样:

chmod 400 /etc/sudoers

设置 Git 用户的密码:

sudo passwd git

image058.png


切换到 git 用户,然后在~目录下创建.ssh文件夹,命令:

su git
cd ~
mkdir .ssh
cd .ssh

image060.png


3、配置Git密钥

生成公钥密钥文件命令:


ssh-keygen

输入后都按回车即可!!!

此时在目录下就会有两个文件,分别是id_rsa和id_rsa.pub,其中id_rsa.pub就是公钥文件,复制一份:


cp id_rsa.pub authorized_keys

image062.jpg


这样目录下就会有一个authorized_keys文件,修改它的权限:


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

image063.png


客户端生成密钥:

在本地电脑的CMD命令行工具中输入ssh-keygen -t rsa,都按回车即可!会在本地电脑的用户文件夹下生成密钥:

image065.png

接着,将本地电脑的id_rsa.pub文件的内容拷贝到云服务器的authorized_keys文件的末尾!!!!可采用的方法有:

  •  直接复制内容

  •  通过Xftp文件传输工具,先将本地电脑的id_rsa.pub文件传输到云服务器某位置,再在云服务器上该位置执行cat id_rsa.pub >> ~/.ssh/authorized_keys即可


然后我们在本地电脑上,打开 cmd,使用ssh方式连接云服务器,输入:

ssh -v git@云服务器的公网IP


image067-打码.pngimage068-打码.png


最后提示Welcome to Alibaba Cloud Elastic Compute Service !,说明不用输入密码也登录成功了,即配置 Git 密钥成功,以后更新博客部署的时候不用输入 Git 密码了!


4、创建Git仓库

创建一个 Git 的仓库,并且新建一个post-receive文件


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

image070.png

输入以下内容:


git --work-tree=/home/www/website --git-dir=/home/git/blog.git checkout -f

image072.png


保存退出并授予该文件可执行权限,命令:


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

image074.png


到此服务器端配置完成。


步骤五:配置Hexo并部署发布


1、安装插件

本地电脑和服务器端配置都完成后,在本地电脑的 Hexo 根目录下,输入以下命令安装插件:

npm install hexo-deployer-git --save

npm install hexo-server


2、修改参数

打开_config.yml文件,修改deploy项目如下:

deploy:

  type: git

  repo: git@云服务器公网IP:/home/git/blog.git

  branch: master


其中,type项表示部署类型为git,仓库repo地址为git@云服务器公网IP:/home/git/blog.git,分支branch为master主分支。


3、远程部署

对博客进行的美化、功能添加、文章拟写等完毕后,命令行输入hexo clean清除本地缓存,输入hexo g -d生成静态文件,并部署到远程仓库。


此时本地的博客页面已经部署到了服务器的/home/www/website目录下:

image076.png

注意

部署完成后,若打开页面没变化,可以在云服务器输入以下重启nginx即可:

nginx -s reload

到此,通过 hexo 搭建博客并部署到阿里云轻量应用服务器总算完成啦~


福利时间2021云上架构与运维峰会12月10日下午13:30分进行在线直播,阿里云与优秀企业技术大咖分享;云上自动化运维成熟度模型发布;体验动手实验可领取精美礼品。欢迎点击阅读原文或扫描下方二维码,报名参会或预约直播。

848x1360像素-云上架构与运维峰会海报-公众号底部专用.jpg

版权声明:本文内容由阿里云实名注册用户自发贡献,版权归原作者所有,阿里云开发者社区不拥有其著作权,亦不承担相应法律责任。具体规则请查看《阿里云开发者社区用户服务协议》和《阿里云开发者社区知识产权保护指引》。如果您发现本社区中有涉嫌抄袭的内容,填写侵权投诉表单进行举报,一经查实,本社区将立刻删除涉嫌侵权内容。

相关文章
阿里云服务器怎么设置密码?怎么停机?怎么重启服务器?
如果在创建实例时没有设置密码,或者密码丢失,您可以在控制台上重新设置实例的登录密码。本文仅描述如何在 ECS 管理控制台上修改实例登录密码。
9497 0
Knative 实战:一个微服务应用的部署
在 Istio 中提供了一个 Bookinfo 的示例,用于演示微服务之间的调用,那么如何在 Knative 中部署这个示例呢?本文将会介绍一下在 Knative 中部署 Bookinfo 微服务以及查看调用链追踪信息。
1691 0
阿里云轻量应用服务器基础建站系统部署Web环境与应用
阿里云轻量应用服务器基础建站系统部署Web环境与应用
593 0
物联网应用托管服务应用部署图文解析
您可以使用应用部署功能,将应用配置部署至指定目的地。用户在应用完成配置后,正式上架或者更新之前均需要实际部署进行测试,验证应用功能。另外,对于托管的SaaS应用,属于长时间运行的应用,也需要使用部署功能,将应用配置实例化。
373 0
阿里云托管网格服务入门与应用部署实践(上)
作为开发者来说,重点关注于自身的业务本身,希望底层服务网格技术基础简单、易用、安全、稳定。为了实现这些目标,托管的服务网格模式可能是一个较为合理的方案。阿里云服务网格 ASM 就是这样的一个全托管式的服务网格平台,并且完全兼容社区开源的 Istio。本次直播中,阿里云智能技术专家萧元为大家分享了阿里云服务网格(ASM)的基本功能与优点,并用一个Demo来介绍ASM的基本使用方法。
567 0
阿里云服务器如何登录?阿里云服务器的三种登录方法
购买阿里云ECS云服务器后如何登录?场景不同,阿里云优惠总结大概有三种登录方式: 登录到ECS云服务器控制台 在ECS云服务器控制台用户可以更改密码、更换系.
13186 0
阿里云ECS云服务器初始化设置教程方法
阿里云ECS云服务器初始化是指将云服务器系统恢复到最初状态的过程,阿里云的服务器初始化是通过更换系统盘来实现的,是免费的,阿里云百科网分享服务器初始化教程: 服务器初始化教程方法 本文的服务器初始化是指将ECS云服务器系统恢复到最初状态,服务器中的数据也会被清空,所以初始化之前一定要先备份好。
11508 0
Cloud Toolkit 部署应用到阿里云轻量应用服务器
Cloud Toolkit 部署应用到阿里云轻量应用服务器
6022 0
阿里云ECS云服务器初始化设置教程方法
阿里云ECS云服务器初始化是指将云服务器系统恢复到最初状态的过程,阿里云的服务器初始化是通过更换系统盘来实现的,是免费的,阿里云百科网分享服务器初始化教程: 服务器初始化教程方法 本文的服务器初始化是指将ECS云服务器系统恢复到最初状态,服务器中的数据也会被清空,所以初始化之前一定要先备份好。
6895 0
+关注
弹性计算-百晓生
做技术领先、性能优异、稳如磐石的弹性计算!
92
文章
0
问答
来源圈子
更多
+ 订阅
文章排行榜
最热
最新
相关电子书
更多
《2021云上架构与运维峰会演讲合集》
立即下载
《零基础CSS入门教程》
立即下载
《零基础HTML入门教程》
立即下载