本文记录一下在CentOS7以及lnmp和nginx环境下搭建h5ai服务,可以做一个下载站,但功能远不止于下载站。。。

演示环境

  1. CentOS 7.6
  2. PHP 7.2.17 (cli)
  3. 本文操作以假设域名为dl.zkk.me作基础

搭建步骤

  1. 添加虚拟机 首先添加一个虚拟机,关于如何添加虚拟机,在搭建WordPress博客一文中有讲到
  2. 下载程序 进入到刚创建的虚拟机目录下
    cd /home/wwwroot/dl.zkk.me
    

    下载h5ai程序,你可以去官方网站查看最新版本

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

    解压下载的文件

    unzip h5ai-0.29.0.zip
    
  3. 修改nginx配置
    vi /usr/local/nginx/conf/vhost/dl.zkk.me.conf
    

    找到开头是 index.html index.php的这一行,改为

    index index.html index.php /_h5ai/public/index.php;
    
  4. 解禁php函数 需要解禁的函数有三个scandir、exec、passthru
    sed -i 's/,scandir//g' /usr/local/php/etc/php.ini
    sed -i 's/,exec//g' /usr/local/php/etc/php.ini
    sed -i 's/,passthru//g' /usr/local/php/etc/php.ini
    
  5. 重启以生效
    service php-fpm restart
    service nginx reload
    

    到此为止,h5ai已经搭建完成,下面添加一些非必要功能

添加文件搜索功能

编辑网站配置文件

vim /home/wwwroot/dl.zkk.me/_h5ai/private/conf/options.json

找到以下代码

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

把以上代码中的false改为true,保存退出。然后你就会在网站的左上角发现一个放大镜。

加密目录

加密目录后,被加密的目录需要输入用户名和密码才能访问

  1. 安装htpasswd工具
    yum -y install httpd-tools
    
  2. 设置用户名和密码
    htpasswd -c /usr/local/nginx/htpasswd player
    New password: 
    Re-type new password: 
    Adding password for user player
    

    以上代码中player为用户名。

  3. 修改nginx配置
    vi /usr/local/nginx/conf/vhost/dl.zkk.me.conf
    

    把以下代码添加到上图中红框的位置,代码第一行中的temp为被加密的目录

    location ~ ^/temp/.*
     {
         auth_basic "please login!";
         auth_basic_user_file /usr/local/nginx/htpasswd;
         autoindex on;
     }
    

    修改完nginx保存退出,然后重新载入nginx

    service nginx reload
    

    访问被加密的目录需要输入用户名和密码

隐藏文件夹

此功能可以在目录中隐藏文件夹,但是通过链接仍然可以访问

  1. 编辑配置文件
    vi /home/wwwroot/dl.zkk.me/_h5ai/private/conf/options.json
    
  2. 找到下图中白框的这一行
  3. 把你想隐藏的文件夹按照里面的格式填写进后面的方括号中,然后保存退出即可