由于之前使用dosify搭建的文档博客,但是样式和主题比较单一,在发现hexo+stellar之后,觉得这款博客主题很美观很简洁,本文主要记录了将就博客迁移到本地主机的过程、在阿里云搭建hexo博客的操作步骤

1、将docsify文档博客迁移到小主机上

a. 小主机上创建虚拟机

b. 虚拟机安装git

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
1、进入git在GitHub上发布版本页面https://github.com/git/git/releases,这个页面我们可以找到所有git已发布的版本。这里我们选择最新版的tar.gz包。
2、下载最新版本的tar.gz的Git到本地电脑上,利用WinSCP工具将压缩包上传至Linux服务器的/usr目录下
3、解压压缩包
tar -zxvf git-2.22.0.tar.gz
4、进入到解压后的文件夹
cd git-2.22.0
5、拿到解压后的源码以后我们需要编译源码了,不过在此之前需要安装编译所需要的依赖。
yum install curl-devel expat-devel gettext-devel openssl-devel zlib-devel gcc perl-ExtUtils-MakeMaker
耐心等待安装完成,中途出现提示的时候输入y并按回车。
6、提示,安装编译源码所需依赖的时候,yum自动帮你安装了git,这时候你需要先卸载这个旧版的git。
yum -y remove git
7、编译git源码
make prefix=/usr/local/git all
8、安装git至/usr/local/git路径
make prefix=/usr/local/git install
9、配置环境变量
vi /etc/profile
在底部加上
export PATH=$PATH:/usr/local/git/bin
( 输入 :wq! 保存修改)
10、刷新环境变量
source /etc/profile
11、查看Git是否安装完成
git --version

c. 虚拟机安装node

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
nodejs官方:http://nodejs.cn/
cd /usr/local/src #进入目录
wget https://nodejs.org/dist/v16.13.0/node-v16.13.0-linux-x64.tar.xz #下载软件
tar -xvf node-v16.13.0-linux-x64.tar.xz #解压
mv node-v16.13.0-linux-x64 nodejs #重命名
#添加软链接
ln -s /usr/local/src/nodejs/bin/node /usr/local/bin/node
ln -s /usr/local/src/nodejs/bin/npm /usr/local/bin/npm
#设置命令环境变量
cd ~ #进入家目录
vi .bash_profile
PATH后面追加参数保存:/usr/local/src/nodejs/bin
例如:PATH=$PATH:$HOME/bin:/usr/local/src/nodejs/bin
source .bash_profile #生效文件
node -v #查看版本
npm -v #查看版本
#设置全局模块环境变量
npm prefix -g #查看nodejs模块目录
vi /etc/profile
#添加环境变量
export NODE_PATH=/usr/local/src/nodejs/lib/node_modules
source /etc/profile #生效文件
退出当前用户,再次登录,环境变量生效
npm config get registry # 查看npm源
npm config set registry https://registry.npm.taobao.org # 替换为淘宝源

d. 虚拟机安装docsify

1
2
3
4
5
npm i docsify-cli -g
ln -s /usr/local/node/bin/docsify /usr/local/bin

npm config set strict-ssl false # 此处可能会报错,使用改行命令取消ssl验证

image-20240219225026281

image-20240219225622649

image-20240219225703815

e. 虚拟机安装启动脚本

image-20240219230806439

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

在本地计算机搭建Hexo环境,Hexo通过generate命令将*.md文件渲染成静态的html页面,然后Hexo通过deploy命令触发git用户通过公钥免密登陆服务器,进而将静态页面推送到服务器的git仓库(repository)中。然后,服务器再通过钩子(git-hooks) 将静态页面checkout到网站的根目录下,进而实现博客的自动部署

a. 本地电脑准备工作

  • 本地电脑安装git
  • 本地电脑安装node
  • 本地电脑安装hexo
1
2
3
4
5
npm install -g hexo-cli # 安装hexo
hexo init blog-hexo
cd blog-hexo
npm install
hexo server # 本地启动博客 http://localhost:4000/

注意:

  1. 以管理员身份运行 启动命令行窗口

  2. npm config set strict-ssl false # 取消ssl验证

  3. windows命令行切换路径如下图所示:

    image-20240220110216206

安装完成后检查下安装结果:

image-20240221101646693

b. 阿里云服务器准备工作

  1. 服务器安装nginx并配置路由

    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    43
    44
    45
    46
    47
    48
    49
    50
    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

    k. 专门为hexo创建一个部署目录/home/www/hexo。
    mkdir -p /home/www/hexo

    l. 进入/usr/local/nginx/conf目录,打开该文件夹下的nginx.conf配置文件。

    cd /usr/local/nginx/conf
    ls
    vim nginx.conf
    将部署目录修改为/home/www/hexo
    将域名修改为阿里云公网ip
    将监听端口号修改为80

  2. 安装nodejs

    1
    2
    3
    4
    5
    6
    7
    8
    9
    a. 退回根目录,安装node.js。

    cd ~
    curl -sL https://rpm.nodesource.com/setup_10.x | bash -
    yum install -y nodejs
    b. 查看安装结果,打印版本号即为安装成功。

    node -v
    npm -v
  3. 安装git

    1
    2
    3
    4
    5
    6
    a. 使用yum命令安装Git,安装期间有提示一律选yes。

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

    git --version
  4. 阿里云服务器增加git用户

    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    用于本地电脑远程免密钥登录服务器
    使用root账号
    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账号的密码
  5. 给git用户配置ssh免秘钥登录

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

    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    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)
  6. 配置git仓库

    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    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目录下原有的文件,然后从hexo.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服务器实例。

d. hexo博客配置

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
a. 在本地计算机hexo的工程目录下,找到_config.yml,对deploy参数进行修改。

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全局变量。 输入以下命令:

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

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

hexo clean
hexo generate
hexo deploy

本站由 卡卡龙 使用 Stellar 1.29.1主题创建

本站访问量 次. 本文阅读量 次.