一、Git安装及配置
1、安装依赖库和编译工具
1
| yum install curl-devel expat-devel gettext-devel openssl-devel zlib-devel
|
1
| yum install gcc perl-ExtUtils-MakeMaker package
|
2、下载 git并解压编译安装
官网版本已经更新到2.40.0,因为yum仓库的Git版本更新的时间会存在延时,通过命令行安装,版本应该是1.8.3.1,所以我们这里采用源码包安装方式安装2.26.0
- 在
/usr/local/src
目录存放下载下来的 git 安装包
1
| wget http://ftp.ntu.edu.tw/software/scm/git/git-2.26.0.tar.gz
|
1
| tar -zvxf git-2.26.0.tar.gz
|
1
| make prefix=/usr/local/git all
|
- 安装 git 到 /usr/local/git 目录下
1
| make prefix=/usr/local/git install
|
3、配置 git 环境变量
按i进入编辑模式,按向下键到底部,添加下面两行命令:
1 2
| PATH=$PATH:/usr/local/git/bin export PATH
|
4、创建 git 用户
1 2
| chmod 740 /etc/sudoers vim /etc/sudoers
|
按 i
键进入文件的编辑模式,按向下键找到如下字段
1 2 3
| root ALL=(ALL) ALL
git ALL=(ALL) ALL
|
5、配置密匙
- 将
id_rsa.pub
里面的密钥复制,在服务器运行下面命令,创建.ssh文件夹
- 创建
.ssh/authorized_keys
文件,打开authorized_keys
文件并将SSH公钥
内容拷贝其中并保存
1
| vim ~/.ssh/authorized_keys
|
1 2 3
| chmod 755 ~ chmod 700 ~/.ssh chmod 600 ~/.ssh/authorized_keys
|
6、服务器端创建git仓库
- 切换到root用户,创建一个目录用于存储网站的根目录
1 2 3
| su root mkdir /home/hexo chown git:git -R /home/hexo
|
7、自动化部署
1 2
| cd /home/git git init --bare blog.git
|
1
| chown git:git -R blog.git
|
- 在
/home/hexo/blog.git
下,有一个自动生成的 hooks
文件夹,我们创建一个新的 git
钩子 post-receive
,用于自动部署
1
| vim blog.git/hooks/post-receive
|
按 i
键进入文件的编辑模式,指定 Git 的工作树(源代码)和 Git 目录
1 2
| #!/bin/bash git --work-tree=/home/hexo --git-dir=/home/git/blog.git checkout -f
|
1
| chmod +x /home/git/blog.git/hooks/post-receive
|
二、PC端(本地)部署Hexo
1、安装 Hexo
Hexo安装目录位置随意,你高兴就好!
1 2 3 4 5 6 7 8
| . ├── _config.yml ├── package.json ├── scaffolds ├── source | ├── _drafts | └── _posts └── themes
|
更多请参考:文档 | Hexo
三、宝塔面板(BT)部署网站
1、在线安装宝塔面板
1
| https://www.bt.cn/new/download.html
|
2、命令安装
1
| yum install -y wget && wget -O install.sh https://download.bt.cn/install/install_6.0.sh && sh install.sh ed8484bec
|
3、部署网站
略,自行百度
四、Nginx
1、宝塔面板安装
1
| 宝塔面板 --> 软件商店 -->搜索Nginx --> 点击安装
|
2、命令安装
以下只是参考:
CSDN教程
3、Nginx配置
说明:宝塔安装Nginx会默认给你配置好,只需修改 root /home/hexo; #此处配置成你的指令域
此处
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66
| 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;
if ($server_port !~ 443){ rewrite ^(/.*)$ https://$host$1 permanent; } 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;
error_page 404 /404.html;
location ~ ^/(\.user.ini|\.htaccess|\.git|\.env|\.svn|\.project|LICENSE|README.md) { return 404; }
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下增加
1 2 3 4
| deploy: type: git repo: root@***(服务器IP):/home/git/blog.git branch: master
|
2、部署(Hexo的一键三联)
入hexo d
后,出现类似[email protected]'s password:
的信息,再输入自己的服务器登录密码即可
1
| hexo cl && hexo g && hexo d
|