h5ai 目录列表程序完整安装使用教程
什么是 h5ai
H5ai是一款功能强大 php 文件目录列表程序,由德国开发者 Lars Jung 主导开发,它提供多种文件目录列表呈现方式,支持多种主流 Web 服务器,例如 Nginx、Apache、Cherokee、Lighttpd 等,支持多国语言,可以使用本程序在线预览文本、图片、音频、视频等。
请注意,默认情况下,放到目录下的 .php 文件将会被直接执行,并不以文本显示。
安装
1.1 首先需要搭建好 Web 服务器,例如 LNMP(Linux/Nginx/MySQL/Php)组合,本文直接以 LNMP 组合为例。
推荐使用 PHP 7 版本。
1.2 下载 h5ai 安装包
转至官网下载:https://larsjung.de/h5ai/
1.3 设置好虚拟主机后,编辑虚拟主机配置文件:
vim /usr/local/nginx/conf/vhost/your_domain.conf
1.3.1 将配置默认首页 一行,改为:
index index.html index.php /_h5ai/public/index.php;
1.4 去除被禁用的 PHP 函数:
vim /usr/local/php/etc/php.ini
搜索 scandir
、exec
、passthru
,将其从被禁用的函数中删除。
1.5 重启 web 服务器:
service php-fpm restart service nginx reload
1.6 虚拟主机 ROOT 目录大概是这个样子的,要在网站上显示的目录和 _h5ai 文件夹放在一起:
.
├── _h5ai
│ ├── CHANGELOG.md
│ ├── private
│ ├── public
│ └── README.md
├── 您要显示的文件夹
│ ├── 子文件夹1
│ ├── 文件1
│ └── 文件2
└── 您要显示的文件夹
├── 文件1
└── 文件2
开启 h5ai 更多功能
到目前为止,h5ai 可以正常使用了,但是我们可以开启 _h5ai 全部功能。通过 http(s)://your_domain/_h5ai/public/index.php 可以查看 _h5ai 的全部功能开启情况,默认密码是空的。
2.1 安装 FFmpeg
[v_organge]debian 8:2.1.1 编辑软件源文件:
vim /etc/apt/sources.list
2.1.2 添加四个软件源
deb http://www.deb-multimedia.org jessie main non-free deb ftp://ftp.deb-multimedia.org jessie main non-free deb http://www.deb-multimedia.org stable main non-free deb ftp://ftp.deb-multimedia.org stable main non-free
2.1.3 更新软件源
apt-get -y update
[/v_organge]
[v_organge]
Ubuntu 16.04+:
直接通过命令安装:
apt-get -y install ffmpeg
[/v_organge]
[v_organge]
CentOS:需要安装 FFmpeg 或 libav软件
安装详情请查看:https://waterbear.pw/796.html
[/v_organge]
2.2 略缩图功能
2.2.1 图片:
将 _h5ai 中,private 与 public 文件夹中的 cache 目录设置权限为 755。
2.2.2 EXIF:
通过 phpize 安装 PHP 的 exif 模块即可。
2.2.3 视频略缩图:
参考 2.1 安装 FFmpeg 即可。
2.2.3 PDF 略缩图:
安装 ImageMagick。
可使用如下命令:
Ubuntu/Debian:apt-get install ImageMagick -y
CentOS:yum install ImageMagick ImageMagick-devel -y
2.3 Shell tar、Shell zip和Shell du
参考 1.4 去除在 php.ini 中被禁用函数 exec与 passthru 、putenv即可。
另外去除禁用的 scandir 函数(如果有),不然会导致无法显示目录。
2.4 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我使用时候的设置,也是比较常用的设置,开启之后使用更加方便了,更加符合我们的操作习惯了,因此我推荐以上功能全部启用。
默认密码:
首先生成自定义 sha512 密码:http://md5hashing.net/hashing/sha512
然后搜索 “passhash”,大概第 10 行,将其密码改成自己生成的。
上一张完整开启所有功能的截图:
2.5 在目录头部或尾部显示 HTML 内容
在需要显示自定义 HTML 的目录下,添加 _h5ai.headers.html
和/或 _h5ai.footers.html
。这个通常用于对该目录的一些说明。支持 HTML 标签。
_h5ai.headers.html 头部 HTML
_h5ai.footers.html 尾部 HTML
2.6 H5ai加密目录
对于h5ai的目录加密来说,我个人的需求仅仅是部分目录加密,比如存放个人资料或者某类种子的时候,才需要加密,其余目录依旧是属于公共开放目录。
1.在nginx的安装目录下生成一个用户登录的账号和密码。
#生成你的账号密码信息,请替换命令中的用户名和密码。
printf “youruser:$(openssl passwd -crypt yourpassword)\n” >> /usr/local/nginx/conf/htpasswd
2.编辑虚拟主机配置文件,其实在安装h5ai的时候就已经配置过一次了,路径不变依旧是:
#虚拟主机配置文件路径
/usr/local/nginx/conf/vhost/your_domain.conf
在截图位置处添加一下代码。
代码如下:
location ~ ^//.* { auth_basic "please login!"; auth_basic_user_file htpasswd; autoindex on; }
其中将红色部分xzymoe替换为你需要加密的目录即可。
不要忘记重启nginx哦。依旧直接重启lnmp。
lnmp restart
重新打开你的h5ai,登陆刚才已经加密了的目录试一试。