因为最近有给VPS装系统,用到比较多的FTP什么的,觉得有点麻烦。从朋友那里知道h5ai这个文件目录系统,不但好看,而且很实用,于是花了点时间折腾了下,中间碰到了太多无奈的事,所以预留个教程吧,万一哪天痴呆了,还能这里来翻翻..

h5ai介绍

h5ai is a modern file indexer for HTTP web servers with focus on your files. Directories are displayed in a appealing way and browsing them is enhanced by different views, a breadcrumb and a tree overview. Initially h5ai was an acronym for HTML5 Apache Index but now it supports other web servers too. h5ai的官网地址为:https://larsjung.de/h5ai/
h5ai需要php支持,其中php要求版本为PHP 5.3+
h5ai的最新版本为0.27.0,下载地址为:https://release.larsjung.de/h5ai/h5ai-0.27.0.zip
它的主要特点如下:
•可按文件名、日期或大小排序
•支持多种视图及图标模式
•支持多国语言
•可自定义页面顶部及底部
•可过滤显示文件及文件夹
•可计算文件夹大小
•自动刷新文件夹内容
•支持文件二维码
•支持生成图片、视频、PDF文档缩略图
•可以在线预览txt,图片,音频,视频等文件格式

h5ai安装

其实自己用lnmp或者lamp多可以安装,不过这里我推荐一种比较方便的,不用自己去配置那些参数,我采用的是WDCP的面板,安装的时候,php选择要选5.3,因为h5ai要求是php版本大于5.3,之前爆出漏洞,所以我在后面放了一个php升级的脚本。
1.面板安装
源码安装(ssh登录服务器,执行如下操作即可,需root用户身份安装)

wget http://dl.wdlinux.cn:5180/lanmp_laster.tar.gz
tar zxvf lanmp_laster.tar.gz
sh install.sh

安装apache环境,后面php版本选择5.3,下面就是等待安装。
2.配置h5ai
面板安装完成后,自己进面板的地址 ip:8080,创建一个站点,基本配置就可以,然后把_h5ai文件夹上传至网站目录下,假设此时文件夹地址为http://YOUR-DOMAIN.TLD/_h5ai/。可以看到系统检测,正常应该没什么问题,有几项说明下: Cache directory 这个是系统文件夹的权限,设置成www就可以正常 Use EXIF thumbs 这个我就正常了一次,所以我也不清楚怎么回事,不过不影响 Movie thumbs 视频预览的,我用的是ubuntu系统,执行:

sudo apt-get install libav-tools

PDF thumbs

apt-get install aptitude
aptitude install imagemagick 

因为我们用到的是apache,所以配置如下: _h5ai平级目录下创建.htaccess

DirectoryIndex _h5ai/server/php/index.php

这样我们应该就可以正常访问了,但是还有个问题,中文会乱码,

_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"));

3.h5ai使用
正常安装后,文件放置到和_h5ai平级目录就可以,当然也可以建立文件夹等等..

php升级脚本

因为之前被爆出低版本php有漏洞,所以还是升级一下比较好.下面的是php5.6.9升级脚本,升级之前最好备份,我测试了没问题,不保证别的系统不出问题.

php5.6.9升级脚本(百度盘)点击下载

Centos sh php_up56.sh
Ubuntu bash php_up56.sh