部署hexo博客到阿里云服务器

一:域名购买、服务器ECS购买

购买域名,服务器ECS,并将域名解析到服务器的公网ip
通常域名的实名认证需要花一段时间,建议提早准备好。

二:本地博客搭建

首先建立一个博客,本地能访问就行

三:云服务器操作

3.1.配置安全组

在服务器控制台页面,点击本实例安全组
部署hexo博客到阿里云服务器_第1张图片
点击配置规则
部署hexo博客到阿里云服务器_第2张图片
点击添加安全组规则
部署hexo博客到阿里云服务器_第3张图片
如下图添加安全组规则
部署hexo博客到阿里云服务器_第4张图片

3.2.配置服务器环境

安装git。

  • 在阿里云上Centos7.X镜像中一般都自带git工具,但版本都比较低,不影响

    如果没有Git,可以使用yum来安装

    yum install git

创建管理博客的用户并配置

  • 创建一个专门管理博客除root以外的用户,如:

    useradd git

  • 修改用户权限:

    chmod 740 /etc/sudoers

    vim /etc/sudoers

  • 找到这个位置添加下面这句话

    git ALL=(ALL) ALL

    部署hexo博客到阿里云服务器_第5张图片

    使用保存命令:wq保存后退出

  • 设置git用户的密码

    passwd git

  • 为本地的Blog文件夹配置一个部署静态文件的远程仓库

    创建私有 Git 仓库:在 /var/repo/ 下(如果没有 /var/repo 目录,需要先创建)

    mkdir /var/repo/

    然后修改目录的所有权和用户权限

    chown -R git:git /var/repo/

    chmod -R 755 /var/repo/

    进入文件夹,创建一个名为 hexo_static 的裸仓库(bare repo)

    cd /var/repo/

    git init --bare hexo_static.git

    此后git 用户都具备/var/repo 目录下所有新生成的目录和文件的权限

配置 Nginx 托管文件目录

  • 创建 /var/www/hexo 目录,用于 Nginx 托管。

    mkdir -p /var/www/hexo
    

    和上一步类似,这里也需要修改目录的所有权和权限

    chown -R git:git /var/www/hexo
    chmod -R 755 /var/www/hexo
    
  • 安装Nginx(安装的软件路径建议放到/usr/local目录下)

    安装之前先安装一些依赖

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

    现在我们开始安装nginx,1.17.7,这个是目前最新版本

    wget -c https://nginx.org/download/nginx-1.17.7.tar.gz

    解压并进入nginx目录

    tar -zxvf nginx-1.17.7.tar.gz

    cd nginx-1.17.7

    使用nginx的默认配置

    ./configure

    编译安装

    make

    make install

    查找安装路径:

    whereis nginx

    进入sbin目录,可以看到有一个可执行文件nginx,直接./nginx执行就OK了

    运行起来之后访问服务器ip,可以看到nginx的欢迎页面

    另外nginx也可以设置成开机自启,这里不做赘述。

  • 配置nginx

    我安装nginx的目录为/usr/local/nginx,进入nginx目录里的conf目录,里面有个nginx.conf配置文件

    vim nginx.conf

    修改如下:

    server{
    	listen    80;
    	server_name komorebishao.com www.komorebishao.com //如果暂时没有域名就填阿里云的公网ip,以后有了再改回来;
    	root /home/www/website;//这里填博客目录存放的地址
    	location /{
    	}
    }
    

    修改好后,:wq退出

    之后,到nginx安装目录重装nginx配置,(必须为root用户执行):

    cd /usr/local/nginx

    ./nginx -s reload

  • 配置nginx开机自启动

    即在rc.local增加启动代码就可以了。

    • 首先vi /etc/rc.local

      增加一行 /usr/local/nginx/sbin/nginx,保存退出。

    • 命令行输入cd /etc/

      设置执行权限:

      chmod 755 rc.local

  • 创建 Git 钩子
    接下来,在云服务器上的裸仓库 hexo_static 创建一个钩子,就能在满足特定条件时将静态 HTML 文件传送到 Web 服务器的目录下,即 /var/www/hexo

    在自动生成的 hooks 目录下创建一个新的钩子文件:

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

    在该文件中添加两行代码,指定 Git 的工作树(源代码)和 Git 目录(配置文件等)。

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

    保存并退出文件,并让该文件变为可执行文件。

    chmod +x /var/repo/hexo_static.git/hooks/post-receive

云服务端的配置基本结束。

四:本地hexo配置

  • 修改 Hexo 部分默认配置

    进入本地博客目录,修改_config.yml (Hexo 的主配置文件)

    • 首先修改博客的 URL 地址

      # URL
      ## If your site is put in a subdirectory, set url as 'http://yoursite.com/child' and root as '/child/'
      url: http://www.yunxdr.top # 没有绑定域名时填写服务器的实际 IP 地址。
      root: /
      permalink: :year/:month/:day/:title/
      permalink_defaults:
      
    • 修改 default_layout

      将其从 post 修改为 draft ,表示每篇博文默认都是草稿,必须经过发布之后才能在博客站点上访问。

      # Writing
      new_post_name: :title.md # File name of new posts
      default_layout: draft # 原来的值是 post
      titlecase: false # Transform title into titlecase
      
  • 新建博客草稿并发布,这里简单演示通过 Hexo 新建博文草稿,并发布的过程。
    执行如下命令,创建第一篇博文。

    hexo new 我的第一篇在阿里云上部署的hexo博文
    

    ​ 在本地通过自己熟悉的编辑器,编辑博文。这里,把本文的内容写入第一篇博客中

    ​ 然后,通过如下命令发布博客:

    hexo publish 我的第一篇在阿里云上部署的hexo博文

    ​ 博客推送到服务器之后,就可以在网站上访问了。

  • 通过 Git 部署
    继续编辑 _config.yml 文件,找到 Deployment 部分,如下修改:

    repo:Centos用户@云服务器IP:云服务器上创建的裸仓库

    deploy:
      type: git
      repo: [email protected]:/var/repo/hexo_static
      branch: master
    

    保存并退出文件。

    之后,需要安装一个 Hexo 包,负责将博客所需的静态内容发送到设置好的 Git 仓库。

    npm install hexo-deployer-git --save
    

    安装好后可以部署:

    hexo generate && hexo deploy
    

    期间会提示输入 git 用户的登录密码。

完成!输入你的域名访问自己的博客吧~

你可能感兴趣的:(博客)