当前位置:   article > 正文

Hexo 个人博客搭建超详细指南_宝塔hexo

宝塔hexo

前言

本文记录了我搭建个人博客的详细教程,从 本地龟速在线访问的Github 再到 个人云服务器上的部署。一番折腾,终于成功。(然而。。。如今已经放弃自建博客了)

环境部署

Node.js安装

  • Node.js官网:https://nodejs.org/en/download/ 下载对应的版本安装即可。

    node-js

  • 检查Node.js环境是否安装成功

    打开cmd或者powershell,输入:

    $ node -v
    $ npm -v
    
    • 1
    • 2

    显示版本号

    node-v-npm-v

Git安装

  • Git官网:https://git-scm.com/downloads

  • 检查Git是否安装成功

    鼠标桌面右击选择 Git bash here 或者自行找到 Git bash 程序打开,输入:

    $ git --version
    
    • 1

​ 显示版本号

git-bash

Hexo的安装

  • 在自己心仪的文件夹下,如E:/hexo,鼠标右击选择 Git bash here,依次执行以下命令:

    $ npm install hexo-cli -g
    $ npm install hexo --save
    
    • 1
    • 2

hexo-cli

​ 如图所示,我之前已经安装好,所以这里是updated

​ 图中红框的警告原因:fsevents是苹果系统的可选依赖,windows用户可忽略此类警告

  • 安装后检查,输入:

    hexo -v
    
    • 1

    hexo-v

  • 先将hexo文件夹下的文件删除(清空hexo文件夹),不然后面会报以下错误:

    error-hexoinit

    输入命令:

    $ hexo init
    $ npm install
    
    • 1
    • 2

    hexo-init

  • 生成 Hexo 页面

    $ hexo generate
    $ hexo g  # 上面的简写方式
    
    • 1
    • 2
  • 启功 Hexo 服务

    $ hexo server
    $ hexo s  # 上面的简写方式
    
    • 1
    • 2

    启动后效果如下(打开网页,输入网址 http://localhost:4000/ )
    hexo-s

恭喜你,成功在本地部署了 Hexo!!!

Hexo 部署到 Github

注册 Github 账号

新建项目

  • 项目名称为:username.github.io,仓库设置为public公开

github-new

  • 设置信息:可以看到可以通过 https://username.github.io 进行访问了

    github-setting

推送代码

  • 推送代码至 Github:Github 推送代码目前已经不支持账号密码方式,所以需要开启 ssh 密钥直接推送。

    $ git config --global user.name "XXXX"                       # 配置个人信息-username
    $ git config --global user.email "XXXXXXXXX@XXX.com"         # 配置个人信息-useremail
    $ ssh-keygen -t rsa -C "XXXXXXXXX@XXX.com"					 # 生成密钥
    
    • 1
    • 2
    • 3
  • 给 git 用户添加 ssh 秘钥 (找到本地的 ssh 公钥,以 .pub 结尾,我的是C:\Users\用户名\.ssh\id_rsa.pub )并整个复制。然后再在 Github 中添加id_rsa.pub文件中的内容。

    github-sshkey

部署Hexo

  • 打开 hexo 的配置文件 _config.yml 修改 deploy 位置的配置

    注意:目前 Github 的分支已经不是 master 了,而是 main

    deploy:
        type: git
        repo: github: git@github.com:XXXXXXX/XXXXXXXX.github.io.git    # 仓库地址
        branch: main    # 分支!!!!!!!!!!是 main
    
    • 1
    • 2
    • 3
    • 4
  • Hexo三连:

    $ hexo cl && hexo g && hexo d
    
    • 1

​ 此时就可以通过https://username.github.io 进行访问你的博客了

Hexo部署到腾讯云服务器

为了解决 hexo 部署到 GitHub 访问速度慢的问题,我们可以将 hexo 部署到云服务器上

部署前准备:

  • 腾讯云服务器(本人基于宝塔腾讯云轻量级服务器 Centos 系统
  • 腾讯云域名(非必须,若有也需备案)

宝塔面板安装

  • 宝塔面板可以可视化地操作远端服务器(这样就不用自己手动装 nginx 了)

​ 进入宝塔面板的下载页面 宝塔面板下载:https://www.bt.cn/new/download.html ,找到 Linux 面板,点击安装 Centos 脚本

centos

  • 进入腾讯云的控制台,选择自己的云服务器,点击登录,进入终端。粘贴 Centos 安装脚本代码,回车,一路确认。

bt-login

  • 浏览器访问上面的 外网面板地址 ,使用宝塔提供的用户名密码

  • 进入面板后,点击一键安装 LNMP。就能直接将 NginxMySQL 等网站所需内容一键安装好。

    LNMP

安装并配置 Git 仓库

  • 输入以下命令:

    $ yum install git   			# 安装 git (远程服务器上)
    $ adduser git       			# 配置 git 用户
    $ chmod 740 /etc/sudoers        # 赋予用户权限
    $ vi /etc/sudoers               # 编辑 sudoers 文件        
    
    • 1
    • 2
    • 3
    • 4
  • 输入 i 进入 insert 模式 ,找到 root ALL=(ALL) ALL ,在其下方加入一行 git ALL=(ALL) ALL,按下 ESC,输入 wq,保存文件。

    root    ALL=(ALL)       ALL
    // 在这里加入代码
    git     ALL=(ALL)       ALL
    
    • 1
    • 2
    • 3

    git-ALL

  • 继续输入以下命令:

    $ chmod 400 /etc/sudoers   		# sudoers 文件权限修改回来
    $ sudo passwd git				# 设置 git 用户的密码
    
    • 1
    • 2
  • 给 git 用户添加 ssh 秘钥 (找到本地的 ssh 公钥,部署 hexo 到 GitHub 时有生成,以 .pub 结尾,我的是C:\Users\用户名\.ssh\id_rsa.pub

    $ su - git
    $ mkdir -p ~/.ssh
    $ touch ~/.ssh/authorized_keys
    $ chmod 600 ~/.ssh/authorized_keys
    $ chmod 700 ~/.ssh
    $ vim ~/.ssh/authorized_keys        # 将ssh密钥粘贴进去
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
  • Git 连接测试

    $ ssh -v git@你的 server_ip 地址    # 输入密码即可成功登录云服务器
    
    • 1
  • 创建一个 Git 仓库,新建一个 post-receive 文件,用来存储本地的提交。

    $ su root
    $ cd /home/git
    $ mkdir /home/hexo  					# 作为网站根目录
    $ chown git:git -R /home/hexo			# 给予git用户权限
    $ git init --bare blog.git  			# 在/home/git下创建新仓库blog.git
    $ chown git:git -R blog.git 			# 给予git用户权限
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
  • 在 blog.git/hooks 文件夹下创建一个 post-receive 钩子,把提交到 git 仓库的文件同步到 home/hexo文件夹中

    $ cd blog.git/hooks
    $ vim post-receive
    
    • 1
    • 2

    文件中输入 i 进入 insert 模式, 输入以下内容后,按下 ESC,输入 wq,保存文件。

    #!/bin/bash 
    git --work-tree=/home/hexo --git-dir=/home/git/blog.git checkout -f
    
    • 1
    • 2
  • 授予 post-receive 文件可执行权限,至此服务端已经配置完成。

    $ chmod +x /home/git/blog.git/hooks/post-receive
    
    • 1

    检查文件及内容

    server-check

宝塔及腾讯云服务器配置

  • 腾讯云服务器管理规则

txy-rule

  • 宝塔配置(直接上图)

    bt-config

    ssl证书:可自行去腾讯云里面搜索ssl证书,然后申请,一般为免费一年的,证书下载后将对应文件内容复制到图中位置即可

    bt-ssl

部署Hexo

  • 打开 hexo 的配置文件 _config.yml 修改 deploy 位置的配置

    deploy:
        type: git
        repo: root@你的 server_ip 地址:/home/git/blog.git    # 仓库地址
        branch: master    # 分支
    
    • 1
    • 2
    • 3
    • 4

    如果是多部署,由于 Github 和云上的 Git 的分支不同,可以这样写:

    deploy:
      type: git
      repo: 
        github: git@github.com:XXXXXXX/XXXXXXX.github.io.git,main
        my_server: root@你的 server_ip 地址:/home/git/blog.git,master
    
    • 1
    • 2
    • 3
    • 4
    • 5
  • Hexo三连:

    $ hexo cl && hexo g && hexo d
    
    • 1
  • 通过网页浏览器 server_ip:80 来访问。若登录 server_ip:80 出现以下错误:

     没有找到站点
     您的请求在Web服务器中没有找到对应的站点!
     可能原因:
     1. 您没有将此域名或IP绑定到对应站点!
     2. 配置文件未生效!
     如何解决:
     1. 检查是否已经绑定到对应站点,若确认已绑定,请尝试重载Web服务;
     2. 检查端口是否正确;
     3. 若您使用了CDN产品,请尝试清除CDN缓存;
     4. 普通网站访客,请联系网站管理员;
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9
    • 10

解决途径:将server_ip添加到站点的域名管理即可,具体操作如下图。

nginx-nofound

声明:本文内容由网友自发贡献,不代表【wpsshop博客】立场,版权归原作者所有,本站不承担相应法律责任。如您发现有侵权的内容,请联系我们。转载请注明出处:https://www.wpsshop.cn/w/一键难忘520/article/detail/941117
推荐阅读
  

闽ICP备14008679号