关于如何搭建 H5ai ,网上虽然有很多教程,但详细的却不多,有的也是比较模糊。本文将介绍一下如何在宝塔Nginx环境下搭建 H5ai 以及其中的一些注意事项。

Ⅰ、简介


demo - h5ai   demo.png
H5ai是一款德国程序员Lars Jung打造的基于HTTP Web服务器的现代文件索引器,是一款功能强大的PHP文件目录列表程序,适合做个人仓库,它提供多种文件目录列表呈现方式,支持 Apache Httpd, Lighttpd, Nginx等多种WEB服务器,支持多国语言(如英语,简体中文等),你可以在线预览以及下载TXT,图片,音频,视频等文件格式。

Github地址:https://github.com/lrsjng/h5ai

值得一试的理由:
可在线预览多种文件格式,适合用来做个人仓库。
提供多种文件目录列表呈现方式。
支持多种Web服务器以及多国语言。

Ⅱ、安装教程

1.环境要求

  • PHP 5.5+
  • scandir函数需开放

2.进入安装

宝塔面板安装
Centos安装命令

yum install -y wget && wget -O install.sh http://download.bt.cn/install/install.sh && sh install.sh

Ubuntu/Deepin安装命令

wget -O install.sh http://download.bt.cn/install/install-ubuntu.sh && sudo bash install.sh

Debian安装命令

wget -O install.sh http://download.bt.cn/install/install-ubuntu.sh && bash install.sh

Fedora安装命令

wget -O install.sh http://download.bt.cn/install/install.sh && bash install.sh

安装完成后登录面板并选择安装 LNMP环境。
上传源码
H5ai下载(文章底部有提供)后将文件解压后放在网站根目录下的_h5ai文件夹内,结构如下

DOC_ROOT
 ├─ _h5ai
 ├─ your files
 └─ and folders

修改配置文件
在宝塔面板首页->左边的网站 -> H5ai(放H5ai的网站) -> 设置 -> 配置文件中,
找到 index index.php index.html改为 index index.html index.php /_h5ai/public/index.php
修改前

server
{
    listen 80;
    ...
    index index.php index.html index.htm default.php default.htm default.html;
    ...

修改后

server
{
    listen 80;
    ...
    index  index.html  index.php  /_h5ai/public/index.php;
    ...

安装完成
把你需要列的文件及目录放在_h5ai同目录下即可。

Ⅲ、高级教程

1、查看全部功能开放情况

访问 http(s)://你的网站名/_h5ai/public/index.php来查看H5ai的功能开放情况,默认密码为空。

2、Use EXIF thumbs安装

宝塔用户可直接在后台点击php版本,安装扩展 -> exif 一键安装即可。

3、Movie thumbs (ffmpeg)安装

CentOS 6和7安装方法是不一样的,下面分别说明:
安装前都需要先安装epel扩展源:

# yum -y install epel-release

CentOS 6比较简单,安装yum源之后直接安装即可:

# su -c 'yum localinstall --nogpgcheck https://download1.rpmfusion.org/free/el/rpmfusion-free-release-6.noarch.rpm https://download1.rpmfusion.org/nonfree/el/rpmfusion-nonfree-release-6.noarch.rpm'
# yum -y install ffmpeg ffmpeg-devel

4、PDF thumbs安装

选择安装convert

# yum -y install ImageMagick

5、Shell tar/Shell zip/Shell du安装

这三项根据h5ai官网,在 php.ini被禁用函数中去掉 execpassthru即可,是否有危险不知道,自己掂量,禁用好像也不影响一些功能,另外顺便把 scandir函数去掉禁用,不然会出现无非显示目录中文件的情况。

6、给H5ai加密码

首先我们要找到这个文件 _h5ai/public/index.php,在最下面增加以下代码:

function mima()
{
        $user=array('填写你的用户名','填写你的密码');

        if(!($user[0]===$_SERVER['PHP_AUTH_USER'] && $user[1]===$_SERVER['PHP_AUTH_PW'])){

          header('WWW-Authenticate: Basic realm="MY Mark"');

          header('HTTP/1.0 401 Unauthorized');

          die("please login");
         }
}

然后在第一行,也就是<?php的下面(也就是第二行)插入以下代码:

mima();

7、目录头部或尾部显示自定义HTML内容

在需要显示自定义 HTML 的情况下,在H5ai目录下添加 _h5ai.headers.html_h5ai.footers.html 另外还支持改成 MD_h5ai.headers.md_h5ai.footers.md

8、版权修改

只要修改 _h5ai/private/php/pages/index.php就行了,非常简单,建议保留网站右上角的powerby部分!

Ⅲ、注意事项

1.读取不出文件

如果存在文件,但读不出来,可能原因就是 php 已禁用 scandir函数了,请修改 php.ini解决。

disable_functions=passthru,exec,system,chroot,scandir,...

删掉 scandir,字样,再重启 php 即可:/etc/init.d/php-fpm restart

2.文件仍读不出

把h5ai程序_h5ai中 privatepublic两个文件夹中的 cache目录权限设置为 777

3.404报错

检查上面步骤说到的配置文件步骤,如果正确请重启服务器试一试。

Ⅳ、下载链接

提取码:6h39

魔改版基于DPlayer播放器,来源于第三方魔改版

如果觉得我的文章对你有用,请随意赞赏