阿里云ECS+hexo框架搭建个人博客

原文地址(转载请注明来源):http://www.qiaojintao.top/2020/04/23/myblogs_construction/
   博客的搭建如果有Linux的相关基础知识,搭建起来可能会更加省时省力!

小提示:

  •    Linux中在编辑配置文件时,vim 文件名->按i键即可编辑,退出时先按ESC->然后按shift+:(冒号键)->输入wq回车即可保存退出
  •    阿里云ECS选择操作系统镜像时,我这里采用的时Centos7.5版本,切记不要选择最新版,我在第一次搭建时的系统镜像为Centos8.3版本,由于系统版本过高,然后会导致nginx服务无法编译安装这是一个大坑,不要去踩
  •    安装好的主题及myblogs下的文件可以备份一份,以免出现问题后方便恢复到原来的状态
  1. 【Hexo博客】搭建准备

    1. 首先呢,你自己得有一台电脑,这没的说

    2. 其次需要一个FTP工具,我这里使用的是WinScp

      下载地址:https://winscp.net/eng/docs/lang:chs

    3. 然后你要有足够的耐心,建造过程中各种错误,可能会让你觉得困难重重,但是记得坚持,我的博客的搭建也是在网上看文档搭建的,各种坑都踩过,文章中我会把我遇到过的坑都列举出来。

  2. 【Hexo博客】搭建步骤

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

       首先需要说明的是:我本地使用的是Win10(64位)操作系统。更权威的安装过程可以参照Hexo官方主页

    2.1 安装Node.js

       去Node.js官网下载Windows (x64)长期支持版 Long Term Support (LTS) schedule。按提示逐步安装即可,安装完成后打开cmd查看版本号验证是否安装成功。(下载最新版即可)

    C:\Users\tangcl> node -v
    v12.13.1
    

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

    C:\Users\tangcl> npm -v
    6.12.1
    

       显示版本号即为安装成功!

    2.2 安装Git

       git是一个版本控制工具,国外镜像下载巨慢,建议前往淘宝 Git for Windows 镜像下载 git 安装包。按提示逐步安装即可,安装完成后右键菜单中出现Git Bash Here和Git GUI Here菜单表明安装成功,如下图所示。

    [外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-dHcmTj5N-1587718832495)(http://www.qiaojintao.top/images/4-23-1.png)]

    2.3 安装Hexo

       在D盘新建MyHexoBlog文件夹用来存放个人博客,进入该文件夹,右键打开Git Bash Here,使用 npm 安装 Hexo。

       注意:安装时的命令不需要 , 只 需 要 在 G i t B a s h H e r e 打 开 的 终 端 运 行 ,只需要在Git Bash Here打开的终端运行 GitBashHere后面的命令即可!

    $ npm install -g hexo-cli
    

    安装好的界面如图所示:

    image-4-23-2

       Hexo安装完成后,在MyHexoBlog文件夹下新建myblogs项目,并对其进行初始化。

    $ hexo init myblogs
    $ cd myblogs
    $ npm install
    

       安装完成后会有发现有以下目录结构

    [外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-dmLDFQjZ-1587718832501)(http://www.qiaojintao.top/images/4-23-3.png)]

       在myblogs文件夹下启动hexo服务。

    $ hexo server
    

       此时在本地打开浏览器,通过 http://localhost:4000/ 便可访问基于Hexo的个人博客主页了。如下图所示:

    [外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-qXlMgLoe-1587718832503)(http://www.qiaojintao.top/images/4-23-4.png)]

  3. 【Hexo博客】服务端准备工作

    3.1 域名注册

       一个正常的网站都是有域名的,我这里是在阿里云买的域名,

       友情提示:服务器的购买和域名最好都在同一个平台,以后的操作会方便很多!

    3.2购买阿里云ECS服务器

       阿里的云服务产品有很多种,如阿里云主机、ECS服务器等。我这里购买的是阿里云ECS服务器。所谓ECS,即弹性计算服务。

       进入阿里云官网的ECS专区购买即可。 (有学生认证的话会有优惠,选择入门级配置即可,有矿的可自行抉择)

    3.3 ECS服务器备案

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

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

    3.4阿里云服务器设置

       服务器的设置在阿里云购买的的过程中实际上有些已经完成了,包括root用户的密码创建,这个需要你牢记,因为是后期服务器远程登陆的依据,其他的不多叙述。需要注意的是设置完其他程序之后,你需要给服务器配置安全策略,添加80端口,能够让我们在公网上访问。

    image-20200423094358395

  4. 【Hexo博客】Hexo博客的阿里云部署

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

    4.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 https://nginx.org/download/nginx-1.10.1.tar.gz
    

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

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

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

    #cd /usr/local
    #ls
    

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

    #cd nginx-1.10.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命令停止服务

    4.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键由命令模式切换到编辑模式。 + 将其中的部署根目录(root)修改为/home/www/hexo; + 将域名(server_name)修改为http://www.atangbiji.com,如果暂时没有域名就填阿里云实例的公网ip,以后有了再改回来; + 查看监听端口(listen)的系统默认值是否为80(不用修改)。

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

    4.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
    

    4.4 安装Git

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

    #yum install git
    

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

    #git --version
    

    4.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。修改完成后,先按Esc由编辑模式切换到命令模式,再输入:wq命令保存并退出编辑器。

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

    #chmod 400 /etc/sudoers
    

       e. 设置git用户的密码。

    #sudo passwd git
    

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

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

       该步骤是基于Hexo搭建个人博客的核心步骤,也是坑我时间最长的地方。它既需要在本地计算机上操作,也需要在服务器上进行操作,新手一定要搞清原理才不会弄错。

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

    [外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-gSQb8H7L-1587718832507)(http://www.qiaojintao.top/images/4-23-6.png)]

       具体操作步骤如下:

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

    #su git
    $cd ~
    $mkdir .ssh
    

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

    $cd ~
    $cd .ssh
    $ssh-keygen
    

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

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

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

       d. 下载并安装FTP工具,我这里用的是阿里云官方提供的FileZilla(Windows版本)

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

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

    $cd ~/.ssh
    $cp id_ras.pub authorized_keys
    $cat id_ras.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)
    

    4.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服务器实例。

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

  5. 【Hexo博客】其它配置

    5.1 客服端hexo配置

       a. 在本地计算机hexo的工程目录下,找到_config.yml,对deploy参数进行修改,如下图所示。

    image-4-23-7

    deploy:
     type: git
     repo: git@公网ip:/home/git/hexo.git
     branch: master
    

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

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

       这俩插件的作用分别是使用Git自动部署,和hexo本地简单的服务器。

       c. 在本地计算机配置Git全局变量。 输入以下命令:注意user.name 后面的用户名引号为中文状态,其他一般都为英文!

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

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

    $ hexo clean
    $ hexo generate
    $ hexo deploy
    

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

  6. 【Hexo博客】结语

       在配置过程中,可能会遇到各种各样的困难,但不要灰心,别人能做出来,你也可以,学会去解决问题,这将是一个成长的过程!

$ git config --global user.name “tangcl”


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

```text
$ hexo clean
$ hexo generate
$ hexo deploy

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

  1. 【Hexo博客】结语

       在配置过程中,可能会遇到各种各样的困难,但不要灰心,别人能做出来,你也可以,学会去解决问题,这将是一个成长的过程!
    原文地址(转载请注明来源):http://www.qiaojintao.top/2020/04/23/myblogs_construction/

  • 0
    点赞
  • 11
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值