本文主要介绍如何将Hexo博客部署在树莓派上,从而实现在本地局域网直接访问博客内容。由于博客的源码保存在本地PC,并已经同步到Github。因此,只需将Hexo生成的网页文件发布到树莓派的Nginx服务器。
安装nginx
首先在树莓派上安装nginx服务器,用于发布博客网站。
获取并更新软件列表。
sudo apt-get update |
安装 nginx服务器。
sudo apt-get install nginx |
查看nginx服务器的版本,确认已安装成功。
$ nginx -v |
配置nginx服务器随机启动。
sudo systemctl enable nginx.service |
创建一个新的文件夹/var/www/hexo
,用于存放博客的网页文件,并将该文件夹作为nginx服务器的根目录。
sudo mkdir -p /var/www/hexo |
打开nginx的配置文件,将根目录设置为/var/www/hexo
。
sudo vi /etc/nginx/sites-available/default |
将配置文件中默认的根目录root /var/www/html
用#号注释掉,并在下方添加新的根目录为root /var/www/hexo
。
# Default server configuration |
配置完成后,重启 nginx服务器。
sudo service nginx restart |
安装 git
查看树莓派上是否已安装git,如果没有安装,可以执行以下命令。
sudo apt-get install git |
安装完成后,查看版本,确认已安装成功。
$ git --version |
远程Git仓库
在树莓派上建立一个远程仓库,这样本地PC就可以将网页文件提交到该仓库。
创建一个新的文件夹,并在该文件夹下面建立一个新的Git仓库。
mkdir /home/pi/myapps/git_repository |
git init - 创建一个空的Git仓库或者重新初始化现有的仓库。
–bare - 创建一个全新的Git仓库。
myblog.git - 仓库的名称为myblog,并添加后缀.git。
然后在仓库 myblog.git
下创建一个钩子,将网页文件传送到nginx服务器的根目录下,即 /var/www/hexo
下面:
#在仓库下创建一个新的钩子文件 |
在文件中添加以下命令,然后保存文件。该命令中的--work-tree
参数可以将目录/var/www/hexo
映射到仓库中,本地提交的网页文件会自动存储到/var/www/hexo
目录下。
#!/bin/bash |
为文件post-receive
添加可执行权限。
sudo chmod +x /var/repo/web_blog.git/hooks/post-receive |
配置SSH公钥登录
在本地 PC上生成公钥文件id_rsa.pub
。
$ ssh-keygen -t rsa -P '' |
本地PC的公钥上传到树莓派。
ssh-copy-id -i ~/.ssh/id_rsa.pub pi@pi |
以上命令会将本地PC的公钥写入到树莓派的~/.ssh/authorized_keys
文件中。如果树莓派上不存在文件authorized_keys
,ssh-copy-id
会新建文件。
配置本地Hexo
打开Hexo的配置文件_config.yml
,设置部署博客的方式。
type: git
repo: pi@pi:/home/pi/myapps/git_repository/myblog
branch: main
deploy: |
在本地PC执行命令hexo g -d
后,本地生成的网页文件会自动部署到树莓派上。
hexo g -d |