[详细] 搭建hexo博客并部署阿里云服务器

最近购买了阿里云的云服务器和域名,自己折腾搭建博客,这里我把搭建的过程记录分享一下。

这是我搭建的博客,欢迎大家来访问呀!!!

一、本地电脑

1.1 安装node.js

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

按住win+R,输入cmd,进入cmd命令行工具,输入node -v查看node版本,

若出现版本信息,则说明node安装成功。

1.2 安装hexo

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

  • 初始化根目录

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

  • 本地查看

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

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

  • 美化

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

二、购买域名

  • 购买域名

    在阿里云上以学生认证优惠购买了lzxjack.top这个域名。

  • 域名备案

    域名绑定国内的服务器,必须要进行备案操作,否则将无法访问。

    从提交备案信息,到管局审核通过,备案号下来一共花了不到10天的时间。

  • 域名解析

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

    • 主机记录中,www代表域名前加www.,如www.lzxjack.top@就代表lzxjack.top,这样两个地址都能访问到服务器了
    • 记录类型A是指,将域名指向一个IPV4地址
    • 记录值就是服务器的公网IP

三、服务器端

3.1 购买服务器

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

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

3.2 配置端口

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

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

3.3 服务器环境搭建

此步骤需要在云服务器上完成,具体方法可以使用远程连接,也可以使用 Xshell 客户端进行连接。

  • 安装nginx
  1. 切换到root帐号
sudo su root

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

  1. 安装完成后启动nginx服务器
systemctl start nginx
systemctl enable nginx

  • 建立博客根目录

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

cd /home
mkdir www
cd www
mkdir website

查看创建的文件:

  • 配置nginx路由

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

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

    查看nginx的默认配置文件:

cd ~
cd /etc/nginx
ls

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

但不采用直接修改nginx配置文件的方式,而是新建一个文件夹,将自己的配置写在新建的文件夹中。再利用include,在配置文件nginx.conf中将文件夹引入进来即可。这样若有新的需求时,只需在文件夹中添加新需求的配置文件即可,不会再次修改配置文件nginx.conf,提高效率。

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

cd /etc/nginx
mkdir vhost
cd vhost

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

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

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

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

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

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

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

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

3.4 安装node.js

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

安装完成后执行node -vnpm -v如果打印版本号则安装成功

四、配置Git

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

4.1 安装Git

yum install git

4.2 配置Git用户

添加Git用户:

adduser git

修改用户权限:

chmod 740 /etc/sudoers

打开/etc/sudoers:

vi /etc/sudoers

在这个位置添加语句:

git ALL=(ALL) ALL

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

chmod 400 /etc/sudoers

设置Git用户的密码:

sudo passwd git

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

su git
cd ~
mkdir .ssh
cd .ssh

4.3 配置Git密钥

生成公钥密钥文件:

ssh-keygen

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

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

cp id_rsa.pub authorized_keys

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

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

客户端生成密钥:

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

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

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

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

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

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

4.4 创建Git仓库

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

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

输入以下内容:

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

保存退出并授予该文件可执行权限

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

到此服务端配置完成。

五、配置hexo,部署发布

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

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

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

deploy:
  type: git
  repo: git@云服务器公网IP:/home/git/blog.git
  branch: master

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

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

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

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

nginx -s reload

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

欢迎访问我的博客!!


搭建过程参考地址:

从零搭建Hexo博客并部署阿里云服务器(奶妈级教学)

猜你喜欢

转载自blog.csdn.net/Jack_lzx/article/details/114271069