一、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
- 链接成功,如下图
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
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