什么是 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 将 root 一行,改为:
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
需要注意的是,在虚拟主机根目录下,如果有 index.html 的话(一些面板可能会放置一个默认的 index.html 文件),请将其删除,否则不显示虚拟主机下的任何目录及文件。
开启 h5ai 更多功能
到目前为止,h5ai 可以正常使用了,但是我们可以开启 _h5ai 全部功能。通过 http(s)://your_domain/_h5ai/public/index.php 可以查看 _h5ai 的全部功能开启情况,默认密码是空的。
2.1 安装 FFmpeg
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
2.1.4 安装 ffmpeg
apt-get -y install ffmpeg
Ubuntu 16.04+:
2.1.1 直接通过命令安装:
apt-get -y install ffmpeg
CentOS:
2.1.1 安装 FFmpeg 或 libav。
FFmpeg:
注意:请转至 http://www.ffmpeg.org/releases/ 查看最新的 FFmpeg 版本。
编译安装。
wget http://www.ffmpeg.org/releases/ffmpeg-..tar.gz
tar -zxvf ffmpeg-..tar.gz
cd ffmpeg-.
./configure
make
make install
libav:
下载源码编译即可。
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 -y
2.3 Shell tar、Shell zip和Shell du
参考 1.4 去除在 php.ini 中被禁用函数 exec与 passthru 即可。
另外去除禁用的 scandir 函数(如果有),不然会导致无法显示目录。
2.4 options.json 中的更多功能
位于 _h5ai/private/conf 目录下。
打包下载:
搜索 “download”
127 行,enabled 由 false 改为 true。
文件信息及二维码:
搜索 “info”
185 行,enabled 由 false 改为 true。
默认简体中文:
搜索 “l10n”
202 行,enabled 由 false 改为 true。
文件及文件夹多选:
搜索 “select”
323 行,enabled 由 false 改为 true。
默认密码:
首先生成自定义 sha512 密码:http://md5hashing.net/hashing/sha512
然后搜索 “passhash”,大概第 10 行,将其密码改成自己生成的。
2.6 在目录头部或尾部显示 HTML 内容
在需要显示自定义 HTML 的目录下,添加 _h5ai.headers.html 和/或 _h5ai.footers.html。这个通常用于对该目录的一些说明。支持 HTML 标签。
_h5ai.headers.html 头部 HTML
_h5ai.footers.html 尾部 HTML