H5ai搭建教程
what:
h5ai(hypertext 5 file browser)是一个用于浏览和管理文件系统的开源文件浏览器。用它可以搭建一个轻量简洁的下载站
https://larsjung.de/h5ai/ 作者官网
H5ai的网站目录树结构
- 网站根目录
- ├─ _h5ai
- ├─ _h5ai ─ private
- ├─ _h5ai ─ public
- ├─ 展示文件
- ├─ 展示文件夹
- └─ 展示文件夹 ─ 展示文件
具体安装步骤
一、系统准备
- 准备好一个纯净的Liunx系统 (以ubuntuServer22.04.3为例)
配置静态IP
- 打开终端或SSH连接到服务器。
- 使用root权限登录(如果没有sudo访问权限)
编辑网络配置文件
/etc/netplan/
目录中的相应文件。通常情况下,该文件名为50-cloud-init.yaml
network: version: 2 renderer: networkd ethernets: enpXsY: # 此处的"enpXsY"需要替换成你自己的网络接口名字 dhcp4: no addresses: [192.168.1.100/24] # 此处的IP地址和子网掩码需要替换成你想要设置的值 routes: - to: default via: 192.168.1.1 # 此处的默认网关需要替换成你自己的网关地址 nameservers: addresses: [8.8.8.8, 8.8.4.4] # 此处的DNS服务器地址也可以根据需求进行调整
- 运行以下命令以重新加载网络配置:
sudo netplan apply
部署好BT面板
wget -O install.sh https://download.bt.cn/install/install-ubuntu_6.0.sh && sudo bash install.sh ed8484bec
- 切换为root用户,输入bt,查看ip地址,以及用户名密码,打开宝塔web界面
二、宝塔设置
- 部署NMP环境(Nginx+MySQL+PHP7.0+)
- 网站添加站点
设置默认网站文档
- 在网站-站点设置-默认文档 添加 /_h5ai/public/index.php,记得点击添加
- 官网下载压缩包
- 通过宝塔上传到网站目录,删除默认生成的404 index等页面,在线解压
- 这里我用的动态公网,因此需要去网关里做一下映射,否则外网无法访问
- 域名解析到动态公网IP,也可以自己搭建一个DDNS服务,不然每次IP变换都需要手动修改解析地址
三、H5AI依赖设置
- 此时,都配置好以后,就可以通过解析的域名和映射的IP地址访问到H5ai的页面了
你的域名/_h5ai/public/index.php
- 可以看出,现在显示不完整,这是因为php中的putenv函数被禁用,我们需要删除禁用
- 再次刷新,就显示正常了,默认没有密码,直接点击登录即可
- 有很多条件没有满足,我们需要一个个解决
- PHP安装插件fileinfo,imagemagick,exif (Use EXIF thumbs、PDF thumbs依赖)
- 删除被禁用PHP函数exec、passthru (Shell tar、Shell zip、Shell du依赖)
Movie thumbs (ffmpeg)安装
- ssh连接到命令行窗口执行
apt-get -y install ffmpeg -y
安装
- ssh连接到命令行窗口执行
- 至此,所有的依赖项就都满足了
四、H5AI详细配置
修改自检页密码
- 密码修改路径:_h5ai/private/conf/options.json,开头就是密码部分,下面是默认配置。
- 使用sha512计算生成(SHA512在线生成)自己的密码,替换掉原本的空值sha512并保存
设置/_h5ai/private目录访问返回404
在网站配置文件中添加下面的内容即可
location = /_h5ai/private/ { return 404; }
<img src="http://cdn.zlovej.top/www.zlovej.top/20240131/png/1706707386798Snipaste_2024-01-31_21-24-10.png" style="zoom:80%" />
设置网站全局访问密码 (这里为了方便下载,可以不加)
即访问网站需要先登录账号密码才能查看,修改文件路径/你的域名/_h5ai/public/index.php,将下面内容添加到末尾
1. function auth () { 2. $valid_passwords = array ("账号" => "密码"); 3. $valid_users = array_keys($valid_passwords); 4. $user = $_SERVER['PHP_AUTH_USER']; 5. $pass = $_SERVER['PHP_AUTH_PW']; 6. $validated = (in_array($user, $valid_users)) && ($pass == $valid_passwords[$user]); 7. if (!$validated) { 8. header('WWW-Authenticate: Basic realm="Storage Server"'); 9. header('HTTP/1.0 401 Unauthorized'); 10. die ("Your permission is denied!"); 11. } 12. } 13. auth();#分别修改代码内的“账号”和“密码”即可
基本功能设置
H5ai基本设置的配置文件路径是:_h5ai/private/conf/options.json
设置默认语言
//找到“l10n”,将en改为zh-cn。 "l10n": { "enabled": true, "lang": "zh-cn", "useBrowserLang": true },
+ 开启文件搜索功能
//找到“search”,将false改为true。
"search": {
"enabled": true,
"advanced": true,
"debounceTime": 300,
"ignorecase": true
},
+ 下载设置
//找到“download”,如果需要设置打包文件的格式为zip,则修改type的值为shell-zip。
"download": {
"enabled": true,
"type": "shell-zip",
"packageName": null,
"alwaysVisible": false
},
+ 显示文件信息与二维码下载
//找到"info",将false改为true。H5ai可以通过扫码的方式下载文件
"info": {
"enabled": true,
"show": true,
"qrcode": true,
"qrFill": "#999",
"qrBack": "#fff"
},
+ 字体加速,替换google字体库
//找到"resources",替换http://fonts.googleapis.com为国内源,例如http://fonts.lug.ustc.edu.cn
"resources": {
"scripts": [],
"styles": [
"//fonts.lug.ustc.edu.cn/css?family=Ubuntu:300,400,700%7CUbuntu+Mono:400,700"
]
},
参考博客
- https://zhuanlan.zhihu.com/p/496909749
- https://blog.csdn.net/weixin_39640444/article/details/116286489
- https://wtools.io/sha512-generator-online
- https://blog.csdn.net/Canz245630/article/details/134709900?spm=1001.2101.3001.6650.2&utm_medium=distribute.pc_relevant.none-task-blog-2%7Edefault%7EYuanLiJiHua%7EPosition-2-134709900-blog-111553623.235%5Ev43%5Epc_blog_bottom_relevance_base3&depth_1-utm_source=distribute.pc_relevant.none-task-blog-2%7Edefault%7EYuanLiJiHua%7EPosition-2-134709900-blog-111553623.235%5Ev43%5Epc_blog_bottom_relevance_base3&utm_relevant_index=4
- https://blog.csdn.net/jks212454/article/details/133652187?spm=1001.2101.3001.6650.1&utm_medium=distribute.pc_relevant.none-task-blog-2%7Edefault%7ECTRLIST%7ERate-1-133652187-blog-134709900.235%5Ev43%5Epc_blog_bottom_relevance_base3&depth_1-utm_source=distribute.pc_relevant.none-task-blog-2%7Edefault%7ECTRLIST%7ERate-1-133652187-blog-134709900.235%5Ev43%5Epc_blog_bottom_relevance_base3&utm_relevant_index=2
评论 (0)