1.配置免密登录

「注意事项:」

注意一定要在当前登录用户的根目录下的.ssh放置公钥才有用!例如普通用户别去root的根目录下.ssh放置公钥,没有用!!!

另外自行创建.ssh文件夹会出现各种权限问题,最好使用命令

1
2
// 远程主机同样使用此命令
ssh-keygen -t rsa -C "2513177689@qq.com"

为本机生成钥匙对的同时顺带生成.ssh文件夹。

「方法:」

使用下例中ssky-keygen和ssh-copy-id,仅需通过3个步骤的简单设置而无需输入密码就能登录远程Linux主机。

  • ssh-keygen 创建公钥和密钥。
  • ssh-copy-id 把本地主机的公钥复制到远程主机的authorized_keys文件上。
  • ssh-copy-id 也会给远程主机的用户主目录(home)和/.ssh, 和/.ssh/authorized_keys设置合适的权限 。

步骤1: 用 ssh-key-gen 在本地主机上创建公钥和密钥

1
ssh-keygen -t rsa -C "2513177689@qq.com"

步骤2: 用 ssh-copy-id 把公钥复制到远程主机上

1
ssh-copy-id -i ~/.ssh/id_rsa.pub  远程用户名@ip地址

[注: ssh-copy-id 把密钥追加到远程主机的 .ssh/authorized_key 上.]

步骤3: 直接登录远程主机

1
ssh root@192.168.2.43

2.配置仓库

『Git 仓库的安装配置』

1.安装 Git

1
2
3
4
git --version // 如无,则安装
yum install curl-devel expat-devel gettext-devel openssl-devel zlib-devel perl-devel
yum install -y git

2.创建用户并配置仓库

1
2
3
4
5
6
7
8
useradd git
passwd git // 设置密码
su git // 这步很重要,避免文件权限的各种问题
cd /home/git/
mkdir -p project/hexo-blog // 项目存在的真实目录,存放hexo静态文件
mkdir repos && cd repos // 放置git仓库的文件夹
git init --bare hexo-blog-repo.git// 创建一个裸露的仓库

3.创建钩子函数
新建文件,编写内容如下:

1
cd hexo-blog-repo.git/hooks //进入hooks文件夹

创建hook钩子函数文件(git提交时自动部署)

1
vim post-receive

输入以下内容:

1
2
#!/bin/sh
git --work-tree=/home/git/project/hexo-blog --git-dir=/home/git/repos/hexo-blog-repo.git checkout -f

修改权限

1
chmod +x post-receive
1
2
3
exit // 退出到 root 登录
chown -R git:git /home/git/repos/hexo-blog-repo.git // 添加权限

本地电脑找一个文件夹测试能否拉取

1
2
git clone git@server_ip:/home/git/repos/hexo-blog-repo.git

3.配置nginx

1.下载安装 Nginx

1
2
3
4
5
6
7
8
cd /usr/local/src 
wget "http://nginx.org/download/nginx-1.17.8.tar.gz" //下载安装文件
tar -xvzf nginx-1.17.8.tar.gz -C ../
cd ../nginx-1.17.8
./configure --prefix=/usr/local/nginx-webServer --with-http_stub_status_module --with-http_ssl_module --with-file-aio --with-http_realip_module
make && make install // 编译安装
alias nginx='/usr/local/nginx-webServer/sbin/nginx' //取别名为nginx,方便调用

2 配置 Nginx
根据上面的步骤,安装完成,在控制台输入

1
nginx -v

image-20231214234224283
可看到版本信息,代表安装成功

运行

1
nginx

在浏览器输入你购买的服务器的 IP ,可看到

「注意在安全组或者防火墙开启 80端口」

image-20200303161553972

接下来执行

1
2
3
4
5
6
nginx -s stop //先停止nginx
cd /usr/local/nginx-webServer/conf
vim nginx.conf //打开配置文件
将 user 修改为 root // 避免权限不足无法访问博客目录,去掉前面 # 号
将 root 解析路径修改为博客目录 /home/git/project/hexo-blog
nginx -s reload //重启nginx

image-20200303162637211

4.配置 Hexo

配置站点配置文件_config.yml 的 deploy:

1
2
3
4
5
deploy:
type: git
repo:
server: git@server_ip:/home/git/repos/hexo-blog-repo.git // server_i为远程服务器ip地址
branch: master

在本地hexo根目录下,执行部署

1
hexo clean && hexo g && hexo d