[经验] h5ai的一些安装使用经验

更:0.28.1版本中文文件名乱码,已解决!但不算完美...

_h5ai/private/php/core/class-context.php中第91行将
$encoded_parts[] = rawurlencode($part);替换为
$encoded_parts[] = rawurlencode(mb_convert_encoding($part, "UTF-8", "GBK"));
apache环境下测试没问题,但在nginx下测试中文名字文件(非中文文件就没事)下载显示为空,即出现404!

h5ai 是一款非常优秀的文件管理器。作者是Lars Jung。
官网链接:https://larsjung.de/h5ai/
官方Demo:https://larsjung.de/h5ai/demo/
开源GitHub: https://github.com/lrsjng/h5ai
它的主要特点如下:

可按文件名、日期或大小排序
支持多种视图及图标模式
支持多国语言
可自定义页面顶部及底部
可过滤显示文件及文件夹
可计算文件夹大小
自动刷新文件夹内容
支持文件二维码
支持生成图片、视频、PDF文档缩略图
可以在线预览txt,图片,音频,视频等文件格式


点击那个在官网右边有一个黑色按钮
可见最新版本是0.27.0,我们下载并解压。
②上传_h5ai到服务器。
【注意】例如我希望用h5ai管理/dl这个文件夹,那么_h5ai整个文件应该放到/dl下面,而不是将_h5ai里面的文件放到/dl下。
然后在浏览器内打开h5ai的安装界面,例:http://www.abc.com/dl/_h5ai

初始密码是,直接按login即可。

这里PHP Version是yes,前三项是yes即可(如果第二项不是不用担心,下面会解决)。
剩下的各类功能如PDF预览、视频预览等需要各位自己去调整设置了。

:此处来自教程没有测试过!

_h5ai/cache这个文件夹根据官方说明需要可写权限,设置成wwww就可以正常
Movie thumbs 视频预览的,环境是ubuntu系统,执行:
apt-get install libav-tools
PDF thumbs
apt-get install aptitude
aptitude install imagemagick

注:这一步完成之后建议将/_h5ai/index.html的后缀名修改一下,更安全。


③设置

Apache httpd 2.2/2.4设置.htaccess

例如我们的h5ai在/dl/_h5ai下

我们就需要在/dl下新建一个.htaccess

里面的内容是:DirectoryIndex /dl/_h5ai/server/php/index.php


例如我用域名(www.abc.com)访问,环境是nginx
vhost里找到www.abc.com.conf添加红色部分
server {
listen 80;
server_name www.abc.com;
access_log /home/wwwlogs/www.abc.com_nginx.log combined;
index index.html index.htm index.php /_h5ai/public/index.php;
保存后记得重启nginx:service nginx restart
其他环境请看下面官方的设置:


保存该文件。用浏览器进入/dl看一看,如果你看到这个界面,说明h5ai已经搭建完成了。
:h5ai是自带中文的,点击左上角菜单按钮可设置

④修复中文文件夹名、文件名

由于h5ai作者比较懒直接从UTF-8编码的URL中截取文件夹名、文件名显示出来,所以中文文件夹名、文件名会显示乱码。

下面是解决方法:

用任意文本编辑器打开/_h5ai/server/php/inc/class-app.php

修改以下内容:
第84行
原为:$encoded_parts[] = rawurlencode($part);
修改为:$encoded_parts[] = rawurlencode(mb_convert_encoding($part, "UTF-8", "GBK"));
第95行
原为:return Util::normalize_path(ROOT_PATH . "/" . rawurldecode($rel_url));
修改为:return Util::normalize_path(ROOT_PATH . "/" . mb_convert_encoding(rawurldecode($rel_url), "GBK", "UTF-8"));
完成上述操作后保存文件,刷新页面,中文文件夹名、文件名就不是乱码了。

⑤自定义设置

h5ai支持个性化设置,需要修改/_h5ai/conf/option.json

建议保持默认。
真的要修改,无特殊情况请勿修改view内的设置。

另外(头部和底部的显示,语言设置)

如果你觉得官方的翻译不够好,或者想个性化,可以修改_h5ai/conf/l10n/zh-cn.json
默认没有显示header和footer:手动新建_h5ai.header.html_h5ai.footer.html,各自输入想显示的内容即可,
这两个可以放在当前文件夹里或放在其他文件夹里,在其他文件夹里只要浏览到那个文件夹才会显示,
就是说只会自动识别当前文件夹里的header和footer文件,支持不同文件夹显示不同内容
**默认语言是en要显示为中文在options.json的165行改为zh-cn即可;
**默认语言设置在0.28.1版本的路径是_h5ai/private/conf/options.json中201行把en改为zh-cn即可;
进入/_h5ai的密码(默认为空)在_h5ai/server/php的index.php的第11行删掉原来的,进入http://www.sha1.cz/
输入你的密码,生成一个sha1,复制回到define("PASSHASH", "新的sha1");
默认不显示文件(夹)信息和二维码:在options.json的150行改为"show": true,即可,当然也可以点左边的(info)显示
默认不显示文件夹的大小:定位到foldersize,在127行改为"enabled": true,即可
⑥收工

至此h5ai的搭建工作全部结束,如本文中的例子,将文件放入/dl内,在浏览器内就能查看到这些文件了。

发一张本站搭建好后的截图:

点击文件的名字即可下载。

除非你的网站是个单纯的文件仓库,否则不推荐将h5ai直接搭建在网站根目录下。
为了站点的安全,可以适当修改设置,如view内的hidden,可以隐藏你不想在h5ai内显示出来的文件/文件夹。

本站点的_h5ai

教程来自:关于在自己的站点使用 h5ai

相关:
pdirl
轻量级php目录列表程序-pdirl
6款功能强大的php目录列表程序

标签:PHP, h5ai, 文件管理

你的评论