树莓派宝塔部署hexo博客
Posted nooobme
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了树莓派宝塔部署hexo博客相关的知识,希望对你有一定的参考价值。
其余树莓派搭建文章
树莓派宝塔搭建NAS私有云盘nextcloud
树莓派宝塔搭建图床Chevereto
树莓派宝塔部署hexo博客
烧录系统
准备好树莓派,sd卡,和读卡器。
进入树莓派官网,下载软件。
下载后打开,就可以自行选择烧录系统,我选择烧录第一个树莓派32位系统。
登录树莓派
ssh连接
如果有显示器的话,可以忽略,只要连接网线或者wifi后记下私有IP地址即可。
如果没有显示器的话,先别开机,往sd卡的boot文件夹里面放入空白文件,文件命名为ssh
。
继续新建文件,命名为wpa_supplicant.conf
,然后写入:
ctrl_interface=DIR=/var/run/wpa_supplicant GROUP=netdev
update_config=1
network={
ssid="无线名称"
psk="无线密码"
key_mgmt=WPA-PSK
priority=1 优先级,值大优先
}
然后开机,不管是通过连接网线还是wifi连上树莓派后,可以在路由器管理界面,或者dataplicity等软件,查看树莓派的私有IP地址。
然后,我们可以通过ssh pi@树莓派IP地址
来连接,默认账户是pi
,端口号是22
,密码是respberry
。
简单而言,我们可以先通过内部地址来访问树莓派。
当然也可以内网穿透
通过公网IP访问树莓派:ssh -p 外部端口号 pi@公网IP
具体步骤可以参考我的上一篇博客[电信光猫+路由器+树莓派]。
图形化显示
如果有显示器的话就忽视吧。
参考 该篇博客 ,内容非常详细介绍了如何使用VNC,Windows 远程桌面以及Terminal软件来图形化访问桌面系统。
安装宝塔
安装命令:
wget -O install.sh http://download.bt.cn/install/install-ubuntu_6.0.sh && sudo bash install.sh
安装完后会有以下提示:公网地址/安全入口,内网地址/安全入口,以及账户密码。
如果忘记,也可以通过bt
转14
来查看,或者通过/etc/init.d/bt default
来查看默认设置。
登上网站后,有两种模块LNMP、LAMP自行选择安装,我选择安装的第一种。
在面板设置里面,可以修改面板账户密码,面板端口,安全入口等等。
部署git和hexo
我是在本地端调试hexo博客,然后上传到树莓派的宝塔网站上,首先默认已经在本地调试好了hexo,知道如何hexo g,hexo d。
服务器(树莓派):
我们安装git:sudo apt install git
以下步骤可做可省略
- 客户端:
ssh-keygen cd ~/.ssh #回车 cat id_rsa.pub
- 服务器:
复制id_rsa.pub的内容到服务器端的~/.ssh/authorized_keys文件中 如果没有这个文件就touch一个 如果文件中已经存在别的key,就另起一行复制进去
切换root权限:sudo su
建立存放hexo博客网址的文件夹:mkdir /home/hexo
建立git仓库文件夹:mkdir /home/git
进入该文件夹:cd /home/git
初始化Hexo的git仓库:git init --bare hexoblog.git
Hexo仓库新增hook:vi hexo-blog.git/hooks/post-receive
,vi
命令也可以改成nano
。
写入内容:
rm -rf /home/hexo
git clone /home/git/hexoblog.git /home/hexo
给post-receive权限:chmod +x /home/git/hexoblog.git/hooks/post-receive
本地端:
在本地端安装好hexo后,选好主题啥的,可以在本地端调试hexo c
,hexo g
,hexo d
。
修改hexo根目录下的_config.yml
文件,找到deploy
这一行:
deploy:
- type: git
repo:
pi: ssh://root@公网IP地址:外部端口号/home/git/hexoblog.git
#或者
#pi: ssh://root@内部IP地址:/home/git/hexoblog.git
内部IP地址的端口号一般为22,可不填。
然后,如果我是以公网IP地址登录的话,需要将连着公网IP的路由器来进行端口转发,内部端口号22
,内部IP地址
,然后记录下设置的端口转发的外部端口号
。
注意是要root@
来部署hexo,如果还没设置root权限,请看下面bug记录。
最后本地端hexo三连:hexo c&&hexo g&&hexo d
就可以部署到树莓派上了。
如何设置内网穿透[电信光猫+路由器+树莓派],具体步骤可以参考我上一篇文章。
BUG记录
我一开始按pi@IP地址:端口号/path/to/blog.git
来部署博客到树莓派后出现了这个BUG:
fatal: sha1 file '<stdout>' write error: Broken pipe
error: remote unpack failed: unable to create temporary object directory
我一开始还以为是文件太大,然后我发现是pi权限问题,因为在git目录下不用root权限没法写入git文件夹(例如git init --bare hexoblog.git
),因此想解决只能设置以root登录树莓派。
解决方法:
- 编辑文件:
sudo vim /etc/ssh/sshd_config
- 找到并注释掉这行:
#PermitRootLogin prohibit-password
- 新建一行:
PermitRootLogin yes
- 重启ssh:
sudo service ssh restart
- 设置密码:
sudo passwd root
然后root@公网IP地址:外部端口号/path/to/blog.git
或者root@内部IP地址:端口号/home/git/hexoblog.git
就可以通过root身份部署hexo deploy
到树莓派了。
宝塔建站
添加站点:
域名中一定要填写树莓派IP地址:网站端口号
,其次是写上域名。
然后就可以通过树莓派IP地址:网站端口号
,或者通过域名
来访问hexo网站了。
如果要填域名,需要购买域名,然后将域名解析到公网IP地址。
电信非常坑,把80和443端口给屏蔽了,所以即使填写了域名,也无法访问!需要我们去备案公网IP地址和域名,但是电信分配的公网IP,一重启路由就会变,感觉不值得,所以我打算只备案域名,不备案公网IP地址,然后在云解析域名搞个隐式url转发,指向ddns域名:外部端口号
。
ddns域名指向会跳变的公网IP地址,在路由器中转发树莓派IP地址
和网站端口号
到外部端口号
,这样访问公网IP:外部端口号
或者ddns域名:外部端口号
就相当于访问本地hexo的网站树莓派IP地址:网站端口号
,然后我们设置了隐式url
就可以相对于通过隐式url
来访问公网IP:外部端口号
。成功后再详细写点。
(隐式url转发需要备案域名的原因)
然后如果是ECS服务器建站的话,只需要备案域名,将域名解析到ECS的公网IP就行,好处是公网IP基本不会变,不需要备案IP地址,也不需要设置什么ddns。
以上是关于树莓派宝塔部署hexo博客的主要内容,如果未能解决你的问题,请参考以下文章