netblog

Last updated on November 30, 2023 am

博客上云

博客的访问速度实在是太慢了,准备尝试把博客部署到华为云ECS。

环境:

华为云CentOS

新鲜事第一步:打开官方文档

Hexo博客的官方文档

安装前提

安装 Hexo 相当简单,只需要先安装下列应用程序即可:

  • Node.js (Node.js 版本需不低于 10.13,建议使用 Node.js 12.0 及以上版本)
  • Git

如果您的电脑中已经安装上述必备程序,那么恭喜您!你可以直接前往 安装 Hexo 步骤。

Node的安装

为了后续排错方便,我们使用 NVM 来进行 Node 的安装。

1
2
3
4
5
# 安装NVM
$ curl -o- https://raw.githubusercontent.com/nvm-sh/nvm/v0.38.0/

# 激活配置
$ source ~/.bashrc

image-20230822013352104

Node.js 版本限制

如果你坚持使用旧的 Node.js,你可以考虑安装 Hexo 的过去版本。

请注意,我们不提供对过去版本 Hexo 的错误修复。

我们强烈建议永远安装 最新版本 的 Hexo,以及 推荐的 Node.js 版本

Hexo 版本最低版本 (Node.js 版本)最高版本 (Node.js 版本)
6.2+12.13.0latest
6.0+12.13.018.5.0
5.0+10.13.012.0.0
4.1 - 4.28.1010.0.0
4.08.68.10.0
3.3 - 3.96.98.0.0
3.2 - 3.30.12未知
3.0 - 3.10.10 或 iojs未知
0.0.1 - 2.80.10未知

Git的安装

1
yum install git-core

image-20230822013716334

安装完毕!!!

开始搭建Git服务器:

  1. 添加一个git用户
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
# 添加git用户
$ adduser git

# 改变sudoers文件的权限为文件所有者可写
$ chmod 740 /etc/sudoers
$ vim /etc/sudoers

# 添加一行内容,按esc,再按:wq退出编辑
将 git ALL=(ALL) ALL 添加到root ALL=(ALL) ALL下方

# 将sudoers文件的权限改回文件所有者可读
$ chmod 400 /etc/sudoers

# 设置服务器的git密码,用于git连接。输入时看不到任何显示,输入完成回车即可
$ sudo passwd git
  1. 给服务器和主机的Git配置SSH密钥
  • 如果你的本地电脑中已有ssh密钥则跳过这一步,直接到C:\Users\你的用户名\.ssh中找到id_rsa.pub通过宝塔面板或者FTP将id_rsa.pub上传到/home/git/.ssh

注意,如果你是云服务器的话这里一定要将密钥上传到 /home/git/.ssh 这个路径,不然是不生效的,为什么不生效,这里就相当于什么呢?!就是相当于你把你服务器中的密钥添加到了 git 中,其中 git 的路径为/home/git ,所以肯定要添加到这个地方。

如果你是在虚拟机中,那么.ssh是有一个默认路径的,一般为:/root/.ssh,直接把生成的公钥放到这个位置或者通过 ssh 上传即可。

究其原因,你在你的Windows电脑上,需要将一个项目或者文件上传到GitHub(或者Gitee),然后通过仓库的https链接很多时候会报网络超时的错误,相信很多时候大家都会遇到,于是,我们发现GitHub官方还给出了仓库的ssh链接:git@github.com:username/repositoryname,就是这个样子,然后要是用这个的话,你就需要在本地生成一个密钥对,生成方法和下面的方法一样,然后就可以在电脑的C:\Users\你的用户名\.ssh这个路径下看到已经生成的id_rsa(私钥)、id_ras.pub(公钥)。然后你需要将生成的公钥添加到GitHub的设置中,如图:

image-20230824204900135

同理以上操作就相当于 Linux 系统的操作,只是系统不同罢了,知识点 + 1.

  • 如果你本地电脑C:\Users\你的用户名\.ssh中没有生成过ssh密钥,可以按照如下步骤生成密钥:

    1
    2
    3
    4
    5
    用户
    git config --global user.name "你要设置的git软件的用户名"
    git config --global user.email "你要设置的邮箱"

    ssh-keygen -t rsa -C "你刚刚设置的邮箱"
  • 为什么要进行通过配置ssh密钥?*

这样主机和服务器的git连接时无需密码即可,更加方便。

  1. 在服务器中新建仓库

    1
    2
    cd /home/git
    git init --bare hexoblog.git #在/home/git下初始化一个名为hexoblog的仓库
  2. 配置钩子实现自动部署

    找到/home/git/hexoblog.git/hooks下的post-receive文件,如果没有则新建一个该文件,将其内容改为

    1
    2
    #!/bin/sh
    git --work-tree=/home/www/xxx --git-dir=/home/git/hexoblog.git checkout -f

    以上内容是一条命令,前者/home/www/xxx为网页资源目录,后者/home/git/hexoblog.git为云git仓库。意为当主机将静态文件推给服务器的git仓库后,自动触发hooks文件下的脚本,服务器能够自动将文件部署到网页资源目录,也就是什么呢,相当于Windows系统中 GitHub 网站的 Action,或者也就是Git pages部署,只不过在 Linux 系统中,操作麻烦一点。

  3. 然后设置网页资源目录的IO权限,否则git没有权限修改网页资源目录的内容,无法实现自动部署!!!

1
2
3
sudo chmod +x /home/git/hexoblog.git/hooks/pre-receive #赋予其可执行权限
sudo chown -R git:git /home/git/ #仓库目录的所有者改为git
sudo chown -R git:git /home/www/ #站点文件夹所有者改为git

Hexo脚手架安装

直接全局安装:

1
$ npm install -g hexo-cli

安装很慢的话,可以先设置npm的淘宝镜像:

1
$ npm config set registry https://registry.npm.taobao.org

官网也给出了进阶局部安装方法,如下:

进阶安装和使用

对于熟悉 npm 的进阶用户,可以仅局部安装 hexo 包。

1
$ npm install hexo

安装以后,可以使用以下两种方式执行 Hexo:

  1. npx hexo <command>

  2. Linux 用户可以将 Hexo 所在的目录下的 node_modules 添加到环境变量之中即可直接使用 hexo <command>

    1
    echo 'PATH="$PATH:./node_modules/.bin"' >> ~/.profile

本地跑一个hexo博客Demo

直接参考官方文档,初始化一个博客,已经有hexo博客的话就直接跳过。

在你的博客目录下面的.config.yml中添加远程git仓库的地址,也就是上面我们在服务器中新建的仓库地址,如图:

image-20230824210942989

然后就可以愉快的hexo deploy了。

推荐一起使用:hexo cl && hexo g && hexo d

怎么访问部署到云服务器的博客呢?

云服务器IP:+ 端口号进行访问

在宝塔面板添加站点

由于云服务器在域名没有备案的情况下不开放80端口,所以手动设置一个空闲的32端口用于访问网页。

img

将网站目录设置为如下(自定义即可)

img

这里使用的是宝塔面板,也可以使用nginx进行配置,参考文章:https://blog.csdn.net/weixin_56301399/article/details/129270887

全网最全SEO强化篇之怎么让百度、谷歌、必应各大搜索引擎收录自己的文章

  • 百度

    • 是需要域名备案的,前提是拥有一台云服务器,所以我先搁置,后续补充
  • 谷歌:Google Search Console

    • 如何进行验证?

    image-20230825013409616


netblog
https://wlei224.gitee.io/2023/08/21/netblog/
Author
WLei224
Posted on
August 21, 2023
Updated on
November 30, 2023
Licensed under