CentOS部署Hexo博客

一、Git安装及配置

1、安装依赖库和编译工具

  • 安装依赖库:
yum install curl-devel expat-devel gettext-devel openssl-devel zlib-devel 
  • 安装编译工具
yum install gcc perl-ExtUtils-MakeMaker package 

2、下载 git并解压编译安装

  • 查看服务器已有的git版本
git --version

官网版本已经更新到2.40.0,因为yum仓库的Git版本更新的时间会存在延时,通过命令行安装,版本应该是1.8.3.1,所以我们这里采用源码包安装方式安装2.26.0

  • 移除旧版本的git
yum remove git
  • /usr/local/src 目录存放下载下来的 git 安装包
cd /usr/local/src  
  • 下载最新版git到/usr/local/src
wget http://ftp.ntu.edu.tw/software/scm/git/git-2.26.0.tar.gz
  • 解压到当前目录
tar -zvxf git-2.26.0.tar.gz
  • 进入 git-2.26.0 目录下
cd git-2.26.0
  • 编译
make prefix=/usr/local/git all
  • 安装 git 到 /usr/local/git 目录下
make prefix=/usr/local/git install

3、配置 git 环境变量

  • 打开环境变量配置文件
vim /etc/profile

按i进入编辑模式,按向下键到底部,添加下面两行命令:

PATH=$PATH:/usr/local/git/bin   # git 的目录
export PATH
  • 使 git 环境变量生效
 source /etc/profile
  • 验证安装完成,查看 git 的版本号
git --version

4、创建 git 用户

  • 创建git用户
adduser git
  • 获取权限
chmod 740 /etc/sudoers
vim /etc/sudoers

i 键进入文件的编辑模式,按向下键找到如下字段

root    ALL=(ALL)       ALL
# 增加此句
git     ALL=(ALL)       ALL
  • 退回权限
chmod 400 /etc/sudoers

5、配置密匙

  • PC端创建密钥
# 生成公钥
ssh-keygen -t rsa
# 进入 C:\Users\主机名\.ssh 目录, id_rsa.pub 里面的信息就是SSH公钥
  • id_rsa.pub里面的密钥复制,在服务器运行下面命令,创建.ssh文件夹
su git
mkdir ~/.ssh
  • 创建.ssh/authorized_keys文件,打开authorized_keys文件并将SSH公钥内容拷贝其中并保存
vim ~/.ssh/authorized_keys
  • 修改权限
chmod 755 ~
chmod 700 ~/.ssh
chmod 600 ~/.ssh/authorized_keys
  • 测试本地连接服务器
ssh -v git@IP     #IP为你的服务器ip
  • 链接成功,如下图
    git测试

6、服务器端创建git仓库

  • 切换到root用户,创建一个目录用于存储网站的根目录
su root
mkdir /home/hexo	#创建网站的根目录
chown git:git -R /home/hexo		#授予权限

7、自动化部署

  • 建立git仓库(root用户下操作)
cd /home/git
git init --bare blog.git
  • 修改blog.git权限
chown git:git -R blog.git
  • /home/hexo/blog.git 下,有一个自动生成的 hooks 文件夹,我们创建一个新的 git 钩子 post-receive,用于自动部署
vim blog.git/hooks/post-receive

i 键进入文件的编辑模式,指定 Git 的工作树(源代码)和 Git 目录

 #!/bin/bash 
 git --work-tree=/home/hexo --git-dir=/home/git/blog.git checkout -f 
  • 修改文件权限
chmod +x /home/git/blog.git/hooks/post-receive

二、PC端(本地)部署Hexo

1、安装 Hexo

Hexo安装目录位置随意,你高兴就好!

  • 全局安装
npm install -g hexo-cli
  • 在Hexo目录中打开CMD窗口
hexo init
npm install
  • 新建完成后,指定文件夹的目录如下:
.
├── _config.yml
├── package.json
├── scaffolds
├── source
|   ├── _drafts
|   └── _posts
└── themes

更多请参考:文档 | Hexo

三、宝塔面板(BT)部署网站

1、在线安装宝塔面板

https://www.bt.cn/new/download.html

BT安装

2、命令安装

yum install -y wget && wget -O install.sh https://download.bt.cn/install/install_6.0.sh && sh install.sh ed8484bec

3、部署网站

,自行百度

四、Nginx

1、宝塔面板安装

宝塔面板 --> 软件商店 -->搜索Nginx --> 点击安装

2、命令安装

以下只是参考:

https://blog.csdn.net/shallow72/article/details/123878716

3、Nginx配置

说明:宝塔安装Nginx会默认给你配置好,只需修改 root /home/hexo; #此处配置成你的指令域 此处

server
{
    listen 80;
	listen 443 ssl http2;
    server_name www.example.com; #请修改(你的域名)
	index index.html index.htm default.php default.htm default.html;
    root /home/hexo; #此处配置成你的指令域

    #SSL-START SSL相关配置,请勿删除或修改下一行带注释的404规则
    #error_page 404/404.html;
    #HTTP_TO_HTTPS_START
    if ($server_port !~ 443){
        rewrite ^(/.*)$ https://$host$1 permanent;
    }
    #HTTP_TO_HTTPS_END
    limit_conn perserver 300;
    limit_conn perip 200;
    limit_rate 5120k;
    ssl_certificate    fullchain.pem;	#请修改
    ssl_certificate_key    privkey.pem;		#请修改
    ssl_protocols TLSv1.1 TLSv1.2 TLSv1.3;
    ssl_ciphers EECDH+CHACHA20:EECDH+CHACHA20-draft:EECDH+AES128:RSA+AES128:EECDH+AES256:RSA+AES256:EECDH+3DES:RSA+3DES:!MD5;
    ssl_prefer_server_ciphers on;
    ssl_session_cache shared:SSL:10m;
    ssl_session_timeout 10m;
    add_header Strict-Transport-Security "max-age=31536000";
    error_page 497  https://$host$request_uri;
		#SSL-END

    #ERROR-PAGE-START  错误页配置,可以注释、删除或修改
    error_page 404 /404.html;
    #error_page 502 /502.html;
    #ERROR-PAGE-END

    #PHP-INFO-START  PHP引用配置,可以注释或修改
    

    #禁止访问的文件或目录
    location ~ ^/(\.user.ini|\.htaccess|\.git|\.env|\.svn|\.project|LICENSE|README.md)
    {
        return 404;
    }

    #一键申请SSL证书验证目录相关设置
    location ~ \.well-known{
        allow all;
    }

    #禁止在证书验证目录放入敏感文件
    if ( $uri ~ "^/\.well-known/.*\.(php|jsp|py|js|css|lua|ts|go|zip|tar\.gz|rar|7z|sql|bak)$" ) {
        return 403;
    }

    location ~ .*\.(gif|jpg|jpeg|png|bmp|swf)$
    {
        expires      30d;
        error_log /dev/null;
        access_log /dev/null;
    }
    location ~ .*\.(js|css)?$
    {
        expires      12h;
        error_log /dev/null;
        access_log /dev/null;
    }
}

五、PC端配置

1、博客根目录_config下增加

deploy:
    type: git
    repo: root@***(服务器IP):/home/git/blog.git    #仓库地址
    branch: master    #分支

2、部署(Hexo的一键三联)

hexo d后,出现类似root@127.0.0.1's password:的信息,再输入自己的服务器登录密码即可

hexo cl && hexo g && hexo d

六、Issue

bash: git-receive-pack: command not found
解决方法:

sudo ln -s /usr/local/git/bin/git-receive-pack  /usr/bin/git-receive-pack
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

✎浅笑

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值