Linux 系统之部署 h5ai 目录列表程序
一、h5ai 介绍
1.1)h5ai 简介
h5ai 是用于 HTTP Web 服务器的现代文件索引器,专注于您的文件。目录以吸引人的方式显示,浏览它们通过不同的视图、面包屑和树概述得到增强。最初 h5ai 是 HTML5 Apache Index 的首字母缩写,但现在它也支持其他 Web 服务器。
1.2)h5ai 特点
有许多可用的扩展和配置选项,允许用户自定义目录列表的 Web 外观。所有标记均为有效的 HTML5,并附带有 CSS3 和最佳的 JavaScript,这些可以用来构建新鲜且注重用户体验的文件视图。
一些可选功能包括:
- 文件排序
- 不同的视图模式
- 本地化
- 痕迹导航
- 树视图
- 自定义页眉和页脚
- 文件过滤器和搜索
- 文件夹大小
- 自动刷新
- 打包下载
- 二维码
- 缩略图
- 文件预览
二、本地环境介绍
2.1)本地环境规划
本次实践为个人测试环境,操作系统版本为 CentOS 7.6。
| hostname | 本地P地址 | 操作系统版本 | 内核版本 | node版本 |
|---|---|---|---|---|
| blog | 192.168.80.8 | CentOS 7.6 | 3.10.0-957.el7.x86_64 | v16.17.0 |
2.2)本次实践介绍
- 本次实践部署环境为个人测试环境;
- 在 CentOS 7.6 环境下部署 h5ai 文件展示页。
三、检查本地环境
3.1)检查本地操作系统版本
检查本地操作系统版本
cat /etc/redhat-release
3.2)检查系统内核版本
检查系统内核版本
uname -r
四、安装 httpd 软件
4.1)检查 yum 仓库
如果没有镜像源,可以使用阿里云的镜像源。
curl -o /etc/yum.repos.d/CentOS-Base.repo https://mirrors.aliyun.com/repo/Centos-7.repo
sed -i -e '/mirrors.cloud.aliyuncs.com/d' -e '/mirrors.aliyuncs.com/d' /etc/yum.repos.d/CentOS-Base.repo
检查 yum 仓库状态,确保各镜像源正常。
yum repolist
4.2)安装 httpd 软件
直接使用 yum 安装 httpd 软件。
yum install httpd -y
4.3)启动 httpd 服务
启动 httpd 服务,并使开机自启。
systemctl enable --now httpd
4.4)查看 httpd 服务
查看 httpd 服务,确保 httpd 服务正常。
systemctl status httpd

4.5)防火墙和 SELinux 设置
- 设置 SELinux
sed -i 's/SELINUX=enforcing/SELINUX=disabled/' /etc/selinux/config
setenforce 0
- 关闭防火墙,如果想要开启防火墙,需放行 80 端口。
systemctl disable --now firewalld
4.6)浏览器测试 web 服务
浏览器打开:http://192.168.80.8,将IP替换为自己服务器 IP 地址。

五、安装 PHP
5.1)卸载旧版本 PHP
卸载旧版本的 php,防止与新装的 php7.4 版本冲突。
yum remove php* -y
5.2)安装 remi 镜像源
使用以下命令,安装 remi 镜像源。
yum -y install http://rpms.remirepo.net/enterprise/remi-release-7.rpm
5.3)安装 php7.4 版本
直接 yum 安装 php7.4 版本及其模块组件。
yum install --showduplicate --enablerepo=remi --enablerepo=remi-php74 php-fpm php php-cli php-bcmat hphp-gd php-json php-mbstring php-mcrypt php-mysqlnd php-opcache php-pdo php-pecl-crypto php-pecl-mcrypt php-pecl-geoip php-recode php-snmp php-soap php-xml php-pecl-zip -y
5.4)查看 php 版本
查看当前的 php 版本( 确保为 7.4 版本 )
php -v
六、安装 h5ai
6.1)下载 h5ai 软件包
创建下载目录
mkdir -p /data/h5ai/ && cd /data/h5ai/
下载 h5ai 软件包
wget --no-check-certificate https://release.larsjung.de/h5ai/h5ai-0.30.0.zip
6.2)解压 h5ai 软件包
解压 h5ai 软件包
h5ai-0.30.0.zip
unzip h5ai-0.30.0.zip
6.3)复制目录
将 _h5ai 目录复制到 /var/www/html 下
cp -a _h5ai/ /var/www/html/
目录授权
chown -R apache:apache /var/www/html/
6.4)修改 httpd 配置文件
备份原 httpd 配置文件
cp /etc/httpd/conf/httpd.conf /etc/httpd/conf/httpd.conf_bak
修改 httpd 配置文件,在 /etc/httpd/conf/httpd.conf 文件中的模块添加以下内容:index.php /_h5ai/public/index.php
vim /etc/httpd/conf/httpd.conf<IfModule dir_module>DirectoryIndex index.html index.php /_h5ai/public/index.php
</IfModule>

6.5)重启 httpd 服务
重启 httpd 服务与 php-fpm 并设置开机自启
systemctl restart php-fpm httpd && systemctl enable php-fpm httpd
七、安装 h5ai 相关插件
7.1)初始访问 h5ai
访问地址:http://192.168.80.8/_h5ai/public/index.php
当前密码为空,登录即可看到所有模块自检结果。


7.2)安装初始插件
安装 PDF thumbs 功能
yum install ImageMagick -y
安装视频插件
rpm --import http://li.nux.ro/download/nux/RPM-GPG-KEY-nux.ro
rpm -Uvh http://li.nux.ro/download/nux/dextop/el7/x86_64/nux-dextop-release-0-5.el7.nux.noarch.rpm
yum install ffmpeg ffmpeg-devel -y
安装 php-gd 扩展
yum install --showduplicate --enablerepo=remi --enablerepo=remi-php74 php-common php-devel php-gd -y
重启 php-fpm 与 httpd 服务
systemctl restart php-fpm httpd
7.3)重新检测功能模块
刷新页面,可以看到所有功能模块都已经正常。

八、测试网站效果
8.1)访问 h5ai 首页
访问地址:http://192.168.80.8/,将IP替换为自己服务器IP地址。

8.2)新建网站目录
在网站根目录 /var/www/html,新建以下目录。
cd /var/www/htmlmkdir {movie,image,pdf,file}
上传文件到对应目录,目录内容如下:
[root@blog html] tree -L 2
8.3)查看网站目录
刷新网页,可以看到新建的目录。

8.4)查看目录内容
测试目录中各种格式文件:
测试 pdf 文件,可以正常在线打开。


测试图片文件,可以正常在线打开。


测试 MP4 视频文件,可以正常播放。


相关文章:
Linux 系统之部署 h5ai 目录列表程序
一、h5ai 介绍 1.1)h5ai 简介 h5ai 是用于 HTTP Web 服务器的现代文件索引器,专注于您的文件。目录以吸引人的方式显示,浏览它们通过不同的视图、面包屑和树概述得到增强。最初 h5ai 是 HTML5 Apache Index 的首字母缩写,但现在它…...
MySQL自增ID耗尽探究:分析与解决方案
MySQL自增ID耗尽探究:分析与解决方案 一、引言 在面试过程中,面试官抛出了一个看似简单却又深入的问题:“MySQL的自增ID用完了,怎么办?” 自增ID耗尽可能看似遥远,但在处理大量数据的系统中,…...
操作系统-操作系统引导(磁盘 操作系统引导过程)
文章目录 总览一个刚买来的磁盘(硬盘)往磁盘安装操作系统后操作系统引导过程例:windows操作系统的初始化程序 总览 一个刚买来的磁盘(硬盘) 此时空空如也 往磁盘安装操作系统后 操作系统在C盘 主引导记录不属于某…...
基于SpringBoot+Redis的前后端分离外卖项目-苍穹外卖微信小程序端(十三)
地址簿相关功能 1.1 需求分析和设计1.1.1 产品原型1.1.2 接口设计1.1.3 表设计 1.2 代码实现1.2.1 Mapper层1.2.2 Service层1.2.3 Controller层 1.1 需求分析和设计 1.1.1 产品原型 地址簿,指的是消费者用户的地址信息,用户登录成功后可以维护自己的地…...
SAP S/4HANA 2023 Fully-Activated Appliance 虚拟机版介绍
注:市面上所有在售虚拟机均为拷贝本人所作的虚拟机,存在各种技术问题,请知悉。 SAP S4HANA 2023 FAA版本内置了四个Client: 1、000:SAP初始Client,原则上不能动; 2、100:只激活了US…...
【Docker篇】详细讲解容器相关命令
🎊专栏【Docker】 🍔喜欢的诗句:更喜岷山千里雪 三军过后尽开颜。 🎆音乐分享【如愿】 🎄欢迎并且感谢大家指出小吉的问题🥰 文章目录 🛸容器🌹相关命令🍔案例⭐创建并运…...
LSTM学习笔记
上一篇文章中我们提到,CRNN模型中用于预测特征序列上下文的模块为双向LSTM模块,本篇中就来针对该模块的结构和实现做一些理解。 Bidirectional LSTM模块结构如下图所示: 在Pytorch中,已经集成了LSTM模块,定义如下&…...
Android 13.0 Recent列表不显示某个app
1.概述 在13.0 的系统产品rom定制化开发中,在点击导航栏最近任务列表时,如果做到不显示某个app 呢 一种做法是在app中直接处理 一种做法是在framework中处理 接下来看这两种处理方法 1, app中处理 为该应用AndroidManifest xml文件中主MainActivity设置属性 android:exclu…...
速盾网络:高防ip是什么
速盾网络:高防IP是什么 在当今信息化社会中,网络安全问题日益突出,各种网络攻击威胁层出不穷。为了保护企业的网络安全,提高网络业务的稳定性,高防IP应运而生。那么,什么是高防IP呢? 高防IP是…...
全志A133AndroidQ编译方式
编译uboot: cd longan/brandy/brandy-2.0 ./build.sh -p sun50iw10p1 //A133-android-10-plus\longan\brandy\brandy-2.0\u-boot-2018\u-boot.bin复制为u-boot-sun50iw10p1.bin 或者 //longan\brandy\brandy-2.0\u-boot-2018\configs\sun50iw10p1_defconfig cd …...
2024首更---Web Service 教程
Web Services 简介 Web Services 可使您的应用程序成为 Web 应用程序。 Web Services 通过 Web 进行发布、查找和使用。 您应当具备的基础知识 在继续学习之前,您需要对下面的知识有基本的了解: HTMLXML 如果您希望首先学习这些项目,请在…...
Day29- 贪心算法part03
一、K 次取反后最大化的数组和 题目一:1005. K 次取反后最大化的数组和 1005. K 次取反后最大化的数组和 给你一个整数数组 nums 和一个整数 k ,按以下方法修改该数组: 选择某个下标 i 并将 nums[i] 替换为 -nums[i] 。 重复这个过程恰…...
RPA与ChatGPT的融合:智能化流程的未来
RPA(Robotic Process Automation)是一种利用软件机器人模拟人类操作的技术,可以实现对各种业务流程的自动化执行。ChatGPT是一种基于深度学习的自然语言生成模型,可以根据给定的上下文生成流畅、连贯、有逻辑的文本。RPA与ChatGPT…...
Ubuntu安装maven并且配置阿里源
ubuntu环境搭建专栏🔗点击跳转 Ubuntu系统环境搭建(十二)——Ubuntu安装maven并且配置阿里源 文章目录 Ubuntu系统环境搭建(十二)——Ubuntu安装maven并且配置阿里源1.安装maven1.1更新源列表1.2安装1.3验证 2.配置阿…...
如何通过idea使用JDK8.0创建Spring项目
目前 IDEA 进行了优化,所以我们在创建 Spring 项目时会发现,以及不能选择通过 JDK8.0 创建了,这是因为官方已经不再提供 JDK8.0 创建 Spring 项目,我们可以通过修改创建 Spring 项目的路径来解决该问题 在创建 Spring 项目的页面&…...
Spark读取kafka(流式和批数据)
spark读取kafka(批数据处理) # 按照偏移量读取kafka数据 from pyspark.sql import SparkSessionss SparkSession.builder.getOrCreate()# spark读取kafka options {# 写kafka配置信息# 指定kafka的连接的broker服务节点信息kafka.bootstrap.servers: n…...
经典目标检测YOLO系列(二)YOLOV2的复现(1)总体网络架构及前向推理过程
经典目标检测YOLO系列(二)YOLOV2的复现(1)总体网络架构及前向推理过程 和之前实现的YOLOv1一样,根据《YOLO目标检测》(ISBN:9787115627094)一书,在不脱离YOLOv2的大部分核心理念的前提下,重构一款较新的YOLOv2检测器,来对YOLOV2有…...
怎样使用崭新的硬盘
新买的一块硬盘,接到电脑上,打开机器,却找不到新的硬盘,怎么回事?新的硬盘是坏的么?怎样才能把新硬盘用起来? 可能有几种原因导致您的电脑无法识别新的硬盘。以下是一些建议的解决方法ÿ…...
Kafka-多线程消费及分区设置
目录 一、Kafka是什么?消息系统:Publish/subscribe(发布/订阅者)模式相关术语 二、初步使用1.yml文件配置2.生产者类3.消费者类4.发送消息 三、减少分区数量1.停止业务服务进程2.停止kafka服务进程3.重新启动kafka服务4.重新启动业…...
计算机导论06-人机交互
文章目录 人机交互基础人机交互概述人机交互及其发展人机交互方式人机界面 新型人机交互技术显示屏技术跟踪与识别(技术)脑-机接口 多媒体技术多媒体技术基础多媒体的概念多媒体技术及其特性多媒体技术的应用多媒体技术发展趋势 多媒体应用技术文字&…...
通过Wrangler CLI在worker中创建数据库和表
官方使用文档:Getting started Cloudflare D1 docs 创建数据库 在命令行中执行完成之后,会在本地和远程创建数据库: npx wranglerlatest d1 create prod-d1-tutorial 在cf中就可以看到数据库: 现在,您的Cloudfla…...
相机Camera日志实例分析之二:相机Camx【专业模式开启直方图拍照】单帧流程日志详解
【关注我,后续持续新增专题博文,谢谢!!!】 上一篇我们讲了: 这一篇我们开始讲: 目录 一、场景操作步骤 二、日志基础关键字分级如下 三、场景日志如下: 一、场景操作步骤 操作步…...
Opencv中的addweighted函数
一.addweighted函数作用 addweighted()是OpenCV库中用于图像处理的函数,主要功能是将两个输入图像(尺寸和类型相同)按照指定的权重进行加权叠加(图像融合),并添加一个标量值&#x…...
【2025年】解决Burpsuite抓不到https包的问题
环境:windows11 burpsuite:2025.5 在抓取https网站时,burpsuite抓取不到https数据包,只显示: 解决该问题只需如下三个步骤: 1、浏览器中访问 http://burp 2、下载 CA certificate 证书 3、在设置--隐私与安全--…...
企业如何增强终端安全?
在数字化转型加速的今天,企业的业务运行越来越依赖于终端设备。从员工的笔记本电脑、智能手机,到工厂里的物联网设备、智能传感器,这些终端构成了企业与外部世界连接的 “神经末梢”。然而,随着远程办公的常态化和设备接入的爆炸式…...
保姆级教程:在无网络无显卡的Windows电脑的vscode本地部署deepseek
文章目录 1 前言2 部署流程2.1 准备工作2.2 Ollama2.2.1 使用有网络的电脑下载Ollama2.2.2 安装Ollama(有网络的电脑)2.2.3 安装Ollama(无网络的电脑)2.2.4 安装验证2.2.5 修改大模型安装位置2.2.6 下载Deepseek模型 2.3 将deepse…...
并发编程 - go版
1.并发编程基础概念 进程和线程 A. 进程是程序在操作系统中的一次执行过程,系统进行资源分配和调度的一个独立单位。B. 线程是进程的一个执行实体,是CPU调度和分派的基本单位,它是比进程更小的能独立运行的基本单位。C.一个进程可以创建和撤销多个线程;同一个进程中…...
【Veristand】Veristand环境安装教程-Linux RT / Windows
首先声明,此教程是针对Simulink编译模型并导入Veristand中编写的,同时需要注意的是老用户编译可能用的是Veristand Model Framework,那个是历史版本,且NI不会再维护,新版本编译支持为VeriStand Model Generation Suppo…...
《Offer来了:Java面试核心知识点精讲》大纲
文章目录 一、《Offer来了:Java面试核心知识点精讲》的典型大纲框架Java基础并发编程JVM原理数据库与缓存分布式架构系统设计二、《Offer来了:Java面试核心知识点精讲(原理篇)》技术文章大纲核心主题:Java基础原理与面试高频考点Java虚拟机(JVM)原理Java并发编程原理Jav…...
小智AI+MCP
什么是小智AI和MCP 如果还不清楚的先看往期文章 手搓小智AI聊天机器人 MCP 深度解析:AI 的USB接口 如何使用小智MCP 1.刷支持mcp的小智固件 2.下载官方MCP的示例代码 Github:https://github.com/78/mcp-calculator 安这个步骤执行 其中MCP_ENDPOI…...
