Hexo博客迁移至树莓派
树莓派配置
环境配置
安装操作系统后,打开cmd,使用ssh连接树莓派,如下
ssh pi@192.168.43.190
更新树莓派源
sudo vim /etc/apt/sources.list
输入小写字母i
进入编辑模式,将原来的注释掉,替换为清华源
deb http://mirrors.tuna.tsinghua.edu.cn/raspbian/raspbian/ stretch main contrib non-free rpi
deb-src http://mirrors.tuna.tsinghua.edu.cn/raspbian/raspbian/ stretch main contrib non-free rpi
使用ECS
退出编辑模式,输入 :w
保存,:q
退出
安装git
sudo apt-get install git
查看版本
git --version
安装nginx
sudo apt-get install nginx
查看版本
nginx -v
建立远程仓库
树莓派作为远程服务器,需要创建一个远程仓库
新建文件夹,并添加权限
sudo mkdir /var/repo/ #创建一个文件夹
sudo chown -R $USER:$USER /var/repo/ #给分到用户组
sudo chmod -R 755 /var/repo/ #改变文件夹权限
文件夹建立后,把文件夹变为一个git仓库(web_blog为自定义的名字)
cd /var/repo/
git init --bare web_blog.git
创建nginx网站根目录
Git仓库创建完成后,我们需要再创建一个文件夹,用来做Nginx的根目录
sudo mkdir -p /var/www/hexo
并修改目录权限
sudo chown -R $USER:$USER /var/www/hexo
sudo chmod -R 755 /var/www/hexo
然后再仓库 web_blog
下创建一个钩子,将静态 HTML
文件传送到树莓派服务器的根目录下,即 /var/www/hexo
下面,钩子代码如下:
#使用vim在仓库下创建一个新的钩子文件
sudo vim /var/repo/web_blog.git/hooks/post-receive
然后添加如下shell脚本
#!/bin/bash
git --work-tree=/var/www/hexo --git-dir=/var/repo/web_blog.git checkout -f
保存退出文件后,改变文件权限,让该文件变为可执行文件。
sudo chmod +x /var/repo/web_blog.git/hooks/post-receive
Nginx网页根目录配置
上一步我们已经创建好网页根目录,并且已经做好文件传送钩子,这一步我们配置Nginx的配置文件,开启Nginx并将根目录映射到我们创建的目录下
打开Nginx默认配置项
sudo vim /etc/nginx/sites-available/default
然后找到如下位置,修改root的值为我们设置的根目录文件夹
保存退出,重新启动nginx
sudo service nginx restart
然后可以在局域网下访问 http://树莓派的ip:82
,访问如下说明目录设置成功了,Nginx配置基本完成
添加本地公钥到远程Git仓库
添加公钥到树莓派,其实就是添加本地PC到远程Git的白名单中,之前我们已经在本地生成了公钥,下一步我们就是上传公钥,方法很简单,在公钥目录下面打开git bash,按格式输入:
ssh-copy-id -p 22 pi@192.168.43.190 # ip地址改为自己的树莓派ip
安装完成会有提示:
本地Hexo博客配置
修改_config.yml
deploy:
type: git
repo: pi@192.168.43.190:/var/repo/web_blog #注意ip后的冒号":"后没有空格
branch: master
另外还要改
改为后输入:
hexo cl && hexo g -d
然后即可访问 192.168.43.190:82
查看自己的博客
bug记录
- nginx服务器开启后发现80端口被占用(改为82端口)
- 本地hexo配置_config.yml文件时,repo写错
repo: pi@192.168.43.190:/var/repo/web_blog
# "190:"与"/var"之间的冒号后面没有空格
提醒
按照这种方法配置完成后,外网还不能访问自己的博客,只能在内网访问