"> 腾讯云服务器+Hexo 搭建博客(二) | wsn'Blog

wsn'Blog

和有趣的人做有趣的事

0%

腾讯云服务器+Hexo 搭建博客(二)

环境配置

本地环境

​ 本地环境在第一篇Hexo+Gitee中有介绍,基本一摸一样的,还是安装git、Node.js和Hexo。

安装完Node.js后就可以使用shell指令安装Hexo了

1
npm install -g hexo-cli

安装完Hexo后,需要初始化一个Hexo文件夹,后面博客本地主要环境都在这个文件夹中。

1
2
3
4
md blog
cd blog
hexo init
npm install

​ npm下载很多时候需要管理员权限,当看到出现类似Permission Denied之类的报错时候,就考虑一下是不是没有权限。可以关掉终端,以管理员身份重新运行一下。

​ 初始化后,需要安装插件:

1
2
npm install hexo-deployer-git --save
npm install hexo-server

​ 本地环境配置好后,可以在本地部署一下博客预览一下。

1
2
3
hexo clean
hexo d
hexo s

Hexo常用指令

1
2
3
4
5
6
hexo clean 				#清空缓冲区
hexo d #提交到本地
hexo s #在本地部署
hexo g #提交并部署到服务器
hexo new "blog-name" #创建一篇名为"blog-name"的博客
hexo d -g #提交后直接部署到服务器(谨慎使用)

生成ssh

打开git bash,运行命令:

1
ssh-keygen -t rsa 

获得公钥

1
cat ~/.ssh/id_rsa.pub

服务器环境

服务器设置

重置密码

image-20230311144703313

在服务器防火墙中添加HTTP规则和FTP规则

image-20230311144721396

Nginx配置

  1. 安装nginx依赖环境
1
2
3
4
yum install gcc-c++
yum install -y pcre pcre-devel
yum install -y zlib zlib-devel
yum install -y openssl openssl-devel
  1. 下载nginx安装包
1
wget -c https://nginx.org/download/nginx-1.18.0.tar.gz

​ 下载完成后,解压到/usr/local目录下,安装nginx

1
2
3
tar -zxvf nginx-1.18.0.tar.gz -C /usr/local
cd /usr/local/nginx-1.18.0/
./configure --prefix=/usr/local/soft/nginx --with http_stub_status_module --with-http_ssl_module
  • –prefix 指定安装路径
  • –with-http_stub_status_module 允许查看nginx状态的模块
  • –with-http_ssl_module 支持https的模块

编译安装nginx

1
2
make
make install
  1. 设置外部端口访问

进入nginx安装目录,开放80端口供外部访问。

1
2
cd /usr/local/soft/nginx
/sbin/iptables -I INPUT -p tcp --dport 80 -j ACCEPT
  1. 启动nginx
1
2
3
cd /usr/local/soft/nginx
cd sbin
./nginx

​ 没有消息代表启动成功,此时输入公网IP就可以进入nginx的欢迎界面了。

nginx指令

1
2
3
4
5
6
7
cd /usr/lcoal/soft/nginx
# 停止nginx
./nginx -s stop
# 启动nginx
./nginx
# 重启nginx服务
./nginx -s reload

Git配置

  1. 安装git
1
yum install git
  1. 创建git用户
1
adduser git
  1. 添加git账户权限

注意,以下步骤在root用户权限下完成

修改sudoers文件

1
2
chmod 740 /etc/sudoers
vim /etc/sudoers

在下面这个的地方添加git的权限

image-20230311150719115

然后改回sudoers的权限

1
chmod 400 /etc/sudoers
  1. 设置git账户密码
1
sudo passwd git
  1. 切换至git账户,创建~/.ssh/authorized_keys
1
2
3
su git
mkdir ~/.ssh
vim ~/.ssh/authorized_keys

将本地环境下的公钥拷贝到服务器的authorized_keys文件中,退出保存。

然后赋予authorized_keys权限

1
2
chmod 600 /home/git/.ssh/authorized_keys
chmod 700 /home/git/.ssh

在本地Git终端下测试能否登录git账户

1
ssh -v git@公网ip

创建仓库目录及相关配置

  1. 在root账户下创建目录
1
2
3
su
mkdir /var/repo
mkdir /var/hexo
  1. 赋予权限
1
2
3
4
chown -R git:git /var/repo
chmod -R 755 /var/repo
chown -R git:git /var/hexo
chmod -R 755 /var/hexo
  1. 用git初始化仓库,
1
2
cd /var/repo
git init --bare hexo.git
  1. 创建一个新的git钩子,用于自动部署

    在/var/repo/hexo.git下,有一个自动生成的hooks文件夹,我们需要新建一个钩子文件post-receive

    1
    vim /var/repo/hexo.git/hooks/post-receive

    加入:

    1
    2
    #!/bin/bash
    git --work-tree=/var/hexo --git-dir=/var/repo/hexo.git checkout -f

    修改权限:

    1
    2
    chown -R git:git /var/repo/hexo.git/hooks/post-receive
    chmod +x /var/repo/hexo.git/hooks/post-receive

    修改nginx配置

    进入nginx配置文件目录:

    1
    2
    3
    cd /usr/local/soft/nginx
    cd conf
    vim nginx.conf

    修改配置文件:

    image-20230311152202806

    image-20230311152235875

    主要修改user、server_name和location的根目录(root)

    serer_name为你自己的域名,如果没有可以先填公网ip。

​ 修改后,重启nginx。

cd /usr/local/soft/nginx/sbin
./nginx -s reload

部署博客

环境配置完成后,在本地hexo目录里修改站点配置文件_config.yml,找到deploy

1
2
3
4
deploy:
type: git
repo: git@你的域名:/var/repo/hexo.git
branch: master

在本地电脑的hexo目录右键打开git bash

1
2
3
hexo clean
hexo d
hexo g

这时如果出现权限问题导致部署失败,在服务器端运行:

1
2
chown -R git:git /var/repo/
chown -R git:git /var/hexo/

部署成功后,就可以通过公网或者域名访问博客了。

Q:如果你觉得博主写的不错,可以打赏支持一下

欢迎关注我的其它发布渠道