欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页

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

程序员文章站 2022-03-25 17:03:32
...

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

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

二:本地博客搭建

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

三:云服务器操作

3.1.配置安全组

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

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博客到阿里云服务器

    使用保存命令: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: aaa@qq.com:/var/repo/hexo_static
      branch: master
    

    保存并退出文件。

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

    npm install hexo-deployer-git --save
    

    安装好后可以部署:

    hexo generate && hexo deploy
    

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

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

相关标签: 博客