Hexo部署>>云服务器


Hexo部署>>云服务器

一、Win10部署Hexo

1. 安装Node和Git

Node下载

直接下载稳定版的

image-20220711005503104

我这里改下安装路径,也可以不改

image-20220711005833044

后面一直Next到安装成功就好

image-20220711010008992

然后添加Node的环境变量,环境变量配置写Node的安装路径即可

image-20220711011024255

Git下载

进入到安装包下载页面

image-20220711005258450

选择对应版本

image-20220711005433174

直接也是一直Next到安装好

image-20220711011232819

验证Node安装完成
在cmd中输入 node -v npm -v出现版本号代表安装完成

image-20220711011635737

如果有用npm WARN config global –global, –localare deprecated. Use–location=global instead.报错

先更换npm包源,不更换会导致下载时间过长或报错

1.查看现在用的什么源:

npm config get registry

2.作为临时使用修改npm源(不会影响到本地配置)
在npm install XXX 时加入 –registry URL即可,如修改成淘宝npm镜像:

npm --registry https://registry.npm.taobao.org install express

3.永久修改本地npm的源
永久修改就需要修改本地npm的配置了

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

4.切换之后再查看一下现在的源是什么
为什么需要切换之前之后都查看一下现在的源是什么呢?这是为了准确,避免因为网络或设备、软件等问题造成并没有切换成功,这个之前之后检查适用于所有操作行为,知己知彼方能百战不殆。

npm config get registry

5.官方源地址
如果需要重置为官方源的话:

npm config set registry https://registry.npmjs.org/

本地简单演示

image-20220711012744632

将 npm 升级到最新版本

在 windows 中以管理员身份打开 cmd ,然后执行命令

npm install -g npm-windows-upgrade

如果提示 npm 命令未找到,则执行以下命令来更改脚本策略。

set-ExecutionPolicy RemoteSigned

执行 npm 更新命令,选择最新的版本回车

npm-windows-upgrade

本地简单演示

image-20220711013326300

推荐软件(可能要梯子)

Hexo支持markdown语法来写文章,可以下载markdown的文本编辑器

Typora

在编辑配置文档的时候我们可以用 Notepad++ 来编辑文档

Notepad++

or

Visual Studio Code(vscode)

2. 安装Hexo

官方安装文档

2.1 安装Hexo

打开cmd 然后在cmd中输入

npm install -g hexo-cli

image-20220711014244106

2.2 生成Hexo

我们执行以下命令,生成一个博客

hexo init blog

image-20220711015611308

安装过程中,他会自动生成一个文件夹,这个文件夹就是Hexo的配置文件,blog是你要生成博客的文件夹名称,可以自定义

image-20220711015656363

后面的终端(cmd)在这个文件夹下进行

image-20220711015803303

推荐在当前打开终端的两种方式

2.2.1 安装powershell 或 git bash here 右击打开

image-20220711020125116

2.2.2 地址栏输入cmd打开

image-20220711020412208

回车就以打开

image-20220711020446824

然后输入命令启动

hexo s

image-20220711020612589

打开给出链接就能访问到网站,按Ctrl+C可以关闭网站

image-20220711020733619

到这Win10上的hexo就部署完毕了~

二、Hexo部署到腾讯云

1. 部署环境与准备

1.1 环境

本地Windows10操作系统

腾讯云/华为云Cenots7.6服务器

1.2 准备

Hexo 本地博客

连接到你的服务器,使用ssh工具或用终端

为了方便这里演示用终端连接服务器,服务器要开放22端口

ssh -v root@服务器公网IP

2. 云服务器配置Git

1.安装依赖库

yum install curl-devel expat-devel gettext-devel openssl-devel zlib-devel 

2.安装编译工具

yum install gcc perl-ExtUtils-MakeMaker package

3.查看git的版本

git version

4.删除老版本git

yum remove git -y

5.下载解压最新版

https://mirrors.edge.kernel.org/pub/software/scm/git/

cd /usr/local/src    #下载的目录
wget https://www.kernel.org/pub/software/scm/git/git-2.9.5.tar.gz    #下载最新版
tar -zxvf git-2.9.5.tar.gz        #解压到当前文件夹

6.编辑并安装

cd git-2.9.5    #进入文件夹
make prefix=/usr/local/git all    #编译源码
make prefix=/usr/local/git install    #安装路径

7.配置git的环境变量

echo 'export PATH=$PATH:/usr/local/git/bin' >> /etc/bashrc

8.刷新环境变量

source /etc/bashrc

9.查看版本号

git --version

10.创建git用户并且修改权限,注意用户名是自定义的

adduser test
passwd test
然后设置密码
chmod 740 /etc/sudoers
vim /etc/sudoers

在英文输入法下,按Esc然后按shift和冒号,输入set nu就可以显示行号

image-20220711031823982

在101行root下面添加你所创建的用户,这里是test

root    ALL=(ALL)       ALL
test     ALL=(ALL)       ALL

在英文输入法下按I键进入修改模式,然后添加内容

image-20220711032047283

在英文输入法下,按Esc然后按shift和冒号,输入wq就可以保存并退出了,q!不保存并退出

可以通过这个命令,查看是否保存成功

cat -n /etc/sudoers

image-20220711032326857

11.本地windows10使用Gitbash创建密钥

ssh-keygen -t rsa

一直回车就可以了

image-20220711032434748

文件会产生在C盘的用户文件夹中

image-20220711032630275

12.将本地创建id_rsa.pub中文件复制

su 用户名
mkdir ~/.ssh

打开文件Ctrl+A全选,复制内容

image-20220711033019643

再vim创建并打开一个文件authorized_keys

vim ~/.ssh/authorized_keys

将内容粘贴并保存退出

image-20220711033135527

13.本地测试

ssh -v test@服务器ip

可能还是不能免密登录服务器用户,但不影响正常使用,只是每次同步需要输入密码

三、云服务器网站配置

1.创建网站目录并且设置权限

su root
mkdir /home/hexo
chown test:test -R /home/hexo

2.安装Nginx

yum install -y nginx
systemctl start nginx.service    #启动服务

3.修改Nginx配置文件

vim /etc/nginx/nginx.conf 

 38     server {
 39         listen       80 default_server;
 40         listen       [::]:80 default_server;
 41         server_name  example.com;        #域名
 42         root         /home/hexo;        #网站目录

image-20220711033610321

保存并退出

4.重启服务器

systemctl restart nginx.service

5.建立git仓库

su root
cd /home/test
git init --bare blog.git
chown test:test -R blog.git

6.同步网站根目录

vim blog.git/hooks/post-receive
插入内容
#!/bin/sh
git --work-tree=/home/hexo --git-dir=/home/test/blog.git checkout -f

7.修改权限

chmod +x /home/test/blog.git/hooks/post-receive

8.在windows10本地hexo目录修改_config.yml文件

_config.yml非常重要的文件

image-20220711033800667

deploy:
  type: git
  repository: test@服务器IP:/home/test/blog.git    #用户名@服务器Ip:git仓库位置
  branch: master

image-20220711033917108

9.在本机gitbash部署

清除本地缓存
hexo clean 
同步到服务器
hexo g -d

四、常见报错

1.git-upload-pack: 未找到命令

bash: git-upload-pack: command not found
fatal: Could not read from remote repository
解决方法

sudo ln -s  /usr/local/git/bin/git-upload-pack  /usr/bin/git-upload-pack

2.git-receive-pack: 未找到命令

bash: git-receive-pack: command not found
fatal: Could not read from remote repository
解决方法

sudo ln -s /usr/local/git/bin/git-receive-pack  /usr/bin/git-receive-pack

3.fatal: Could not read from remote repository

解决方法

重试或者 删掉本地ssh公钥重新上传至服务器

4.Host key verification failed

解决方法

ssh-keygen -R 你要访问的IP地址

5.ERROR Deployer not found: git

解决方法在本地运行

npm install --save hexo-deployer-git

6. Please tell me who you are

git信息不全导致

image-20220711034907091

解决方法

(注意 "前面是有空格的)
git config --global user.email "你的邮箱"
git config --global user.name "你的名字"

输入完后再接着执行git commit 即可成功!

五、本地同步到服务器

服务器部署成功,正常显示

image-20220711035448641

这里可以简单演示一下,通过makedown编辑器修改,并同步更新到服务器

找到文件,新的文章文件都是放在此目录下的

image-20220711035627357

vscode打开,简单修改,makedown修改器这里还是推荐Typora

image-20220711035804447

保存后同步一下,可以发现,发生了更新

image-20220711040716913

因为是本地同步到服务器的,本地的先发生修改,文章更新可以先在本地演示,没有问题再部署到服务器上,本地和服务器可以同时开启

image-20220711040734354

如果要给文章进行加密,就需要安装SSL证书

六、Hexo+Nginx 部署SSL证书

这里需要将文件上传到服务器这里推荐xftp

部署SSL证书,这里以腾讯云为例

image-20220711043510426

解压得到

image-20220711044118366

image-20220711044034854

通过cd /etc/nginx/进入安装目录

在这目录下查看是否存在conf目录。没有的话在此目录下通过mkdir -p conf创建出一个conf目录接下来我们要将我们下载的SSL证书和密钥文件传送到服务器中我们刚刚创建的conf目录下

image-20220711044314442

直接拖进去就可以上传到conf目录中

image-20220711044414530

接下来编写nginx配置文件通过vim /etc/nginx/nginx.conf,可以参考我写的

# Settings for a TLS enabled server.

    server {
        listen       443 ssl;
#        listen       [::]:443 ssl http2;
        server_name  www.flamiec.cn; #域名
        root         /home/hexo;	 #网站主目录
#
        ssl_certificate /etc/nginx/conf/www.flamiec.cn_bundle.crt; #之前上传的文件,根据文件拓展名来修改为你的文件名
        ssl_certificate_key /etc/nginx/conf/www.flamiec.cn.key;    #之前上传的文件,根据文件拓展名来修改为你的文件名
        ssl_session_cache shared:SSL:1m;
        ssl_session_timeout  10m;
        ssl_ciphers HIGH:!aNULL:!MD5;
        ssl_prefer_server_ciphers on;
#
#        # Load configuration files for the default server block.
        include /etc/nginx/default.d/*.conf;
#
#        error_page 404 /404.html;
            location = / {


        }
#
#        error_page 500 502 503 504 /50x.html;
#            location = /50x.html {
        }
}

image-20220711044604729

查看是否有报错,无报错重启服务器

nginx -t
systemctl restart nginx

然后访问https://你的域名或ip即可


文章作者: Flamiec
版权声明: 本博客所有文章除特別声明外,均采用 CC BY 4.0 许可协议。转载请注明来源 Flamiec !
  目录