hexo本地博客部署到云服务器

hexo本地博客部署到云服务器

1 准备工作

在开始部署之前,你需要做如下准备:

  • 本地搭建完成的博客
  • 一台windows/mac电脑(如果你的电脑是linux应该不用看本篇教程吧)
  • 一台云服务器(理论上来说任何服务商都可以,本教程以腾讯云为例)
  • 本地电脑安装一个ssh连接工具(或者bash终端)
  • 可能会多次失败也不怕重来的决心:)

2 安装配置git

1 安装依赖工具包

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

2 安装编译工具

yum install -y gcc perl-ExtUtils-MakeMaker package

3 删除旧版本git

yum remove git -y

4 进入家目录

cd

5 下载git到家目录

鉴于下载地址的时效性,附上官网地址,后续git更新请去官网下载安装包。

wget https://www.kernel.org/pub/software/scm/git/git-2.34.0.tar.gz --no-check-certificate

如果提示没有wget命令,先安装:

yum install wget -y

6 解压文件

tar -zxf git-2.34.0.tar.gz

7 安装git

进入到git目录下

cd git-2.34.0

编译

make all prefix=/usr/local/git

安装git到/usr/local/git

make install prefix=/usr/local/git

8 配置git环境变量

将git加入PATH目录中

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

使配置生效

source /etc/bashrc

查看git版本

git --version

如果能查看到git的版本号,说明安装成功。

3 创建用户并配置SSH免密登录

1 创建用户并设置密码

这里的username改成你自己的用户名,并且为用户设置一个密码。

adduser [username]
passwd [username]

2 为用户分配权限

把用户添加到wheel组

usermod [username] -G wheel

3 本地创建密钥

在本机电脑终端输入:

ssh-keygen -t rsa

然后一直回车,新建一个密钥。

一般来说在你创建的时候命令行会提示你密钥文件的路径,windows电脑一般是C:\Users\Administrator\.ssh

复制id_rsa.pub文件中的内容备用。

4 配置公钥

回到服务器终端,切换用户

su - yyyz

创建.ssh文件夹

mkdir .ssh

新建authorized_keys

vim .ssh/authorized_keys

如果提示没有vim,则先安装:

sudo yum install -y vim

将刚刚id_rsa.pub公钥中的内容,复制粘贴到文件里,保存退出。

4 git仓库配置

退出用户登录

exit

此时应该是root用户,创建git目录,并修改目录的所有权和用户权限

mkdir /home/git/
chown -R [username]:[username] /home/git/
chmod -R 755 /home/git/

进入目录,建立git仓库,修改权限

cd /home/git/
git init --bare blog.git
chown [username]:[username] -R blog.git

新建钩子文件 post-receive

vim /home/git/blog.git/hooks/post-receive

进入文本编辑器,粘贴下面两行。

#!/bin/bash
git --work-tree=/home/blog --git-dir=/home/git/blog.git checkout -f

保存退出。然后修改文件权限

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

5 nginx配置

首先创建blog目录用户nginx转发

mkdir /home/blog/
chown -R [username]:[username] /home/blog/
chmod -R 755 /home/blog/

1 第一种方法安装nginx

两种方法任选其一,如果yum安装成功就不用第二种。

yum install -y nginx

启动nginx

systemctl start nginx.service

查看nginx服务状态,绿色的active说明启动成功

systemctl status nginx.service

2 第二种方法安装nginx

针对yum无法安装的情况,这里介绍第二种方法,源码安装。

回到家目录

cd

下载安装包,鉴于下载地址的时效性,附上官网地址

wget http://nginx.org/download/nginx-1.21.4.tar.gz

解压

tar -zxf nginx-1.21.4.tar.gz

进入目录,编译安装

cd nginx-1.21.4
./configure
make install prefix=/usr/local/nginx

配置nginx环境变量,并使环境变量生效

echo 'export PATH=$PATH:/usr/local/nginx/sbin' >> /etc/bashrc
source /etc/bashrc

查看nginx版本号

nginx -v

配置Systemd服务

vim /lib/systemd/system/nginx.service

在文本编辑器中粘贴以下内容:

[Unit]
Description=nginx
After=network.target
  
[Service]
Type=forking
ExecStart=/usr/local/nginx/sbin/nginx
ExecReload=/usr/local/nginx/sbin/nginx -s reload
ExecStop=/usr/local/nginx/sbin/nginx -s quit
PrivateTmp= true
  
[Install]
WantedBy=multi-user.target

内容说明:

[Unit]:服务的说明
Description:描述服务
After:描述服务类别
[Service]服务运行参数的设置
Type=forking是后台运行的形式
ExecStart为服务的具体运行命令
ExecReload为重启命令
ExecStop为停止命令
PrivateTmp=True表示给服务分配独立的临时空间
注意:[Service]的启动、重启、停止命令全部要求使用绝对路径
[Install]运行级别下服务安装的相关设置,可设置为多用户,即系统运行级别为3

设置开机自启动

systemctl enable nginx.service

重启电脑

reboot

重启后,查看nginx服务状态,绿色的active说明启动成功

systemctl status nginx.service

3 修改nginx转发配置

在浏览器中输入服务器公网ip地址,测试是否能打开。

查看nginx的默认配置文件的安装位置

nginx -t

修改nginx的默认配置,其中cd后边就是刚刚查到的安装位置,每个人可能都不一样,我这里是/usr/local/nginx/conf/nginx.conf

vim /usr/local/nginx/conf/nginx.conf

在文本编辑器中找到如下位置

server {
    listen 80 default_server;
    listen [::]:80 default_server;
    root /home/blog;    # 修改为创建的blog目录地址
    server_name www.example.com; # 需要修改为你的域名(或者公网ip)
    
    # Load configuration files for the default server block.
    include /etc/nginx/default.d/*.conf;
    location / {
    }
    error_page 404 /404.html;
        location = /40x.html {
    }

保存退出。重启nginx服务

systemctl restart nginx.service

6 在hexo站点配置文件中配置

打开你本地的hexo博客所在文件,打开站点配置文件_config.yml

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

在本地hexo博客根目录下,打开终端,部署

hexo clean
hexo g
hexo d

打开浏览器输入你的服务器公网ip,应该已经部署成功了。

7 附:nginx常用命令

# 停止开机自启动
systemctl disable nginx.service
#设置nginx服务开机自启动
systemctl enable nginx.service
#启动nginx服务
systemctl start nginx.service
#停止nginx服务
systemctl stop nginx.service
#重启nginx服务
systemctl restart nginx.service
#重新读取nginx配置(这个最常用, 不用停止nginx服务就能使修改的配置生效)
systemctl reload nginx.service
# 查看服务当前状态
systemctl status nginx.service
# 查看所有已启动的服务
systemctl list-units --type=service
上一篇:【转】Android bluetooth介绍(三): 蓝牙扫描(scan)设备分析


下一篇:Hexo+GithubPage搭建Fan主题的博客(9)不用图床为博客配置本地插入图片