为方便本人浏览和存储文件,故将一些文件存储在服务器上,通过开源的服务h5ai提供文件浏览功能。

在线文件浏览有诸多开源服务,比如最简洁的Directory Lister和升级版的Evoluted Directory Listing,还有其他的比如filebrowser。我采用的是h5ai,主要是因为它…简单。

基础环境需求

  • Linux
  • Apache/Nginx
  • PHP

本人的环境如下:

  • Arch Linux
  • Apache
  • PHP

配置过程

基本配置

我将需要文件浏览的部分放在了一个字目录下,所以比和官网的配置细节有一定出入,这里记录一下。

在根目录下配置 .htaccess

1
DirectoryIndex  index.html  index.php  /path/to/_h5ai/public/index.php

这里的配置和以下安全设置有一定关联。

安全设置

  1. /etc/http/conf/http.conf 中配置
    1
    2
    3
    4
    5
    <Directory "/path/to/home//">
    Options FollowSymLinks
    AllowOverride None
    Require all granted
    </Directory>

关闭目录浏览模式;

  1. 将原来的 _h5ai/.htaccess 删掉,原因未明,它的存在和目录浏览模式冲突;
  2. 要关闭H5AI搜索模式,否则通过搜索就可以发现其它的目录里的内容;
  3. _h5ai/目录中添加index.html ;
  4. 给h5ai增加查看需要输入用户名和密码

_h5ai/public/index.php 编辑

在头部<?php的下一行,增加

1
auth();

在底部增加

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
function auth ()
{
$valid_passwords = array ("账号" => "密码");
$valid_users = array_keys($valid_passwords);

$user = $_SERVER['PHP_AUTH_USER'];
$pass = $_SERVER['PHP_AUTH_PW'];

$validated = (in_array($user, $valid_users)) && ($pass == $valid_passwords[$user]);

if (!$validated) {
header('WWW-Authenticate: Basic realm="My Realm"');
header('HTTP/1.0 401 Unauthorized');
die ("Not authorized");
}
}

注:账号和密码可以随便填。

如果是Nginx或者Apache的话,可以利用其配置的功能进行账户保护 :

其它配置

Google字体加速添加缓存
Google字体加速

_h5ai/private/conf/options.jsonfonts.googleapis.com替换为fonts.lug.ustc.edu.cn