h5ai安装、使用及加密目录教程

h5ai是一款非常优秀的文件目录列表程序,对于在vps上存放少量文件,那是完美的满足需求,而没必要去安装网盘级别的程序,刚好我也最近需要用到一款类似的程序,所以选择了h5ai。

h5ai

一、关于H5ai

H5ai是一款功能强大 php 文件目录列表程序,由德国开发者 Lars Jung 主导开发,它提供多种文件目录列表呈现方式,支持多种主流 Web 服务器,例如 Nginx、Apache、Cherokee、Lighttpd 等,支持多国语言,可以使用本程序在线预览文本、图片、音频、视频等。

二、H5ai安装教程

我在vps上部署的是lnmp,所以写一下在lnmp(nginx)下的安装教程,由于h5ai只是一款轻量级的文件目录列表,无需用到数据库,总体安装比较容易,仅需修改下php和虚拟主机的配置文件即可。

1.vps上安装lnmp,并创建好虚拟主机,将域名绑定。

#lnmp教程

https://lnmp.org/

2.将h5ai的文件下载到虚拟主机的根目录下,并解压h5ai安装包。目前h5ai的最新版为0.29.0,已经有一段时间没有更新了,不过依然不影响使用。

#下载h5ai

cd /home/wwwroot/yourdomain.com/

wget https://release.larsjung.de/h5ai/h5ai-0.29.0.zip

#解压h5ai

unzip h5ai-0.29.0.zip

#如果上面的命令保存,是你没有安装unzip

yum install zip unzip(CentOS)

apt-get install zip unzip (Ubuntu/Debian)

3.修改php配置,解除禁用函数scandir、exec和passthru。

#php配置文件路径

/usr/local/php/etc/php.ini

搜索disable_functions,将其后面的scandir、exec和passthru删除,保存即可。

4.修改虚拟主机配置文件。

#虚拟主机配置文件路径

/usr/local/nginx/conf/vhost/your_domain.conf

打开配置文件,找到有root的那一行,在下面添加下面的配置,如图。

index index.html index.php /_h5ai/public/index.php;

h5ai-nginx-config

(点击放大)

保存配置文件,重启lnmp(重启nginx即可,个人习惯)。

lnmp restart

5.打开绑定h5ai的域名,即可看见h5ai安装成功,可以丢几个文件进去看看,是否有显示。

h5ai-dir(点击放大)

不出意外的话,你的文件和文件夹都可以显示了,一般不显示文件和文件夹都是php的配置出了问题。

三、H5ai使用教程

由于H5ai只是一款文件目录列表程序,使用很简单,仅需将文件下载或者上传到虚拟主机的根目录即可。至于目录结构可以通过tree /home/wwwroot/yourdomain.com/看看树状结构,就应该知道他的文件目录了。虽然h5ai的安装和使用很简单,不过h5ai也有很多功能,只是默认没有启开,那么看看有什么功能可以设置的呢。

以下不专门注明的话,都是在h5ai的默认设置文件中进行修改即可。默认设置文件路径为:

_h5ai/private/conf/options.json

1.设置默认语言。在配置文件中搜索“l10n”找到设置,将en改为zh-cn即可。

 "l10n": {
     "enabled": true,
     "lang": "zh-cn",
     "useBrowserLang": true
 },

2.开启文件搜索功能。在配置文件中搜索“search”,将false改为true。

 "search": {
     "enabled": true,
     "advanced": true,
     "debounceTime": 300,
     "ignorecase": true
 },

设置好后,h5ai左上角就有会有一搜索按钮,即可搜索h5ai目录里的文件。

3.多文件下载支援设置。多文件下载设置需要配置两步。第一步,先配置让h5ai支持文件选择(就是复选框喽!),第二步支援打包下载。

3.1在配置文件中搜索“select”,将false改为true。之后你的h5ai点击文件先端的时候,并不是下载,而是选中文件,下载的按钮呢在左上角喽。如果要下载文件呢,可以点击文件名字依旧还是下载功能。

 "select": {
     "enabled": true,
     "clickndrag": true,
     "checkboxes": true
 },

3.2在配置文件中搜索“download”,将false改为true,如果需要设置打包文件的格式为zip,而不是默认的tar的话,需要将php-tar改为shell-zip。

 "download": {
     "enabled": true,
     "type": "shell-zip",
     "packageName": null,
     "alwaysVisible": false
 },

4.二维码下载,可以通过扫码的方式下载文件。在配置文件中搜索“info”,将false改为true,这里有2个地方要改。

 "info": {
     "enabled": true,
     "show": true,
     "qrcode": true,
     "qrFill": "#999",
     "qrBack": "#fff"
 },

当你鼠标置于文件上时,可以看见h5ai右侧显示文件类型和二维码,手机扫码就可以下载文件。

以上就是h5ai我使用时候的设置,也是比较常用的设置,开启之后使用更加方便了,更加符合我们的操作习惯了,因此我推荐以上功能全部启用。

四、H5ai加密目录

对于h5ai的目录加密来说,我个人的需求仅仅是部分目录加密,比如存放个人资料或者某类种子的时候,才需要加密,其余目录依旧是属于公共开放目录。

1.在nginx的安装目录下生成一个用户登录的账号和密码。

#生成你的账号密码信息,请替换命令中的用户名和密码。

printf “xzymoe:$(openssl passwd -crypt yourpassword)\n” >> /usr/local/nginx/conf/htpasswd

2.编辑虚拟主机配置文件,其实在安装h5ai的时候就已经配置过一次了,路径不变依旧是:

#虚拟主机配置文件路径

/usr/local/nginx/conf/vhost/your_domain.conf

在截图位置处添加一下代码。

h5ai-crypt-nginx(点击放大)

代码如下:

 location ~ ^/xzymoe/.*
 {
        auth_basic "please login!";
        auth_basic_user_file htpasswd;
        autoindex on;
 }

其中将红色部分xzymoe替换为你需要加密的目录即可。不要忘记重启nginx哦。依旧直接重启lnmp。

lnmp restart

重新打开你的h5ai,登陆刚才已经加密了的目录试一试。

h5ai-crypt

(点击放大)

输入设置好了的账号密码就可以登陆刚才的加密目录了,而没有加密的目录依旧可以直接访问文件及文件夹。

五、总结

h5ai除了以上介绍的功能外还可以通过安装别的程序来支援一些新的特性,比如视频、图片、PDF等缩略图的功能,仅需安装相应软件即可,不过缩略图的功能需要给public\和private\文件夹中的cache\文件夹权限设置为755。不过h5ai还是可以结合aria2让vps变成一款离线下载的机子,总归用途很多。

除了h5ai也还有不少优秀的文件目录列表程序,诸如Directory Lister、Apaxy和pdirl等,有空都可以试一试找到一款自己最适合的文件目录列表程序。

发表评论