当前位置: 首页 > news >正文

Linux系统之部署h5ai目录列表程序

Linux系统之部署h5ai目录列表程序

  • 一、h5ai介绍
    • 1.1 h5ai简介
    • 1.2 h5ai特点
  • 二、本地环境介绍
    • 2.1 本地环境规划
    • 2.2 本次实践介绍
  • 三、检查本地环境
    • 3.1 检查本地操作系统版本
    • 3.2 检查系统内核版本
  • 四、安装httpd软件
    • 4.1 检查yum仓库
    • 4.2 安装httpd软件
    • 4.3 启动httpd服务
    • 4.4 查看httpd服务
    • 4.5 防火墙和selinux设置
    • 4.6 浏览器测试web服务
  • 五、安装PHP
    • 5.1 卸载旧版本PHP
    • 5.2 安装remi镜像源
    • 5.3 安装php7.4版本
    • 5.4 查看php版本
  • 六、安装h5ai
    • 6.1 下载h5ai软件包
    • 6.2 解压h5ai软件包
    • 6.3 复制目录
    • 6.4 修改httpd配置文件
    • 6.5 重启httpd服务
  • 七、安装h5ai相关插件
    • 7.1 初始访问h5ai
    • 7.2 安装初始插件
    • 7.3 重新检测功能模块
  • 八、测试网站效果
    • 8.1 访问h5ai首页
    • 8.2 新建网站目录
    • 8.3 查看网站目录
    • 8.4 查看目录内容

一、h5ai介绍

1.1 h5ai简介

h5ai 是用于 HTTP Web 服务器的现代文件索引器,专注于您的文件。目录以吸引人的方式显示,浏览它们通过不同的视图、面包屑和树概述得到增强。最初h5ai是HTML5 Apache Index的首字母缩写,但现在它也支持其他Web服务器。

1.2 h5ai特点

有许多可用的扩展和配置选项,允许用户自定义目录列表的Web外观。所有标记均为有效的HTML5,并附带有CSS3和最佳的JavaScript,这些可以用来构建新鲜且注重用户体验的文件视图。

一些可选功能包括:

  • 文件排序

  • 不同的视图模式

  • 本地化

  • 痕迹导航

  • 树视图

  • 自定义页眉和页脚

  • 文件过滤器和搜索

  • 文件夹大小

  • 自动刷新

  • 打包下载

  • 二维码

  • 缩略图

  • 文件预览

二、本地环境介绍

2.1 本地环境规划

本次实践为个人测试环境,操作系统版本为centos7.6。

hostname本地P地址操作系统版本内核版本node版本
jeven192.168.3.166centos 7.63.10.0-957.el7.x86_64v16.17.0

2.2 本次实践介绍

1.本次实践部署环境为个人测试环境;
2.在centos7.6环境下部署h5ai文件展示页。

三、检查本地环境

3.1 检查本地操作系统版本

检查本地操作系统版本

[root@jeven ~]# cat /etc/redhat-release
CentOS Linux release 7.6.1810 (Core)

3.2 检查系统内核版本

检查系统内核版本

[root@jeven ~]# uname -r
3.10.0-957.el7.x86_64

四、安装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仓库状态,确保各镜像源正常。

[root@jeven ~]# yum repolist enabled
Loaded plugins: fastestmirror, langpacks
Determining fastest mirrors* epel: cdn.centos.no
repo id                                                                 repo name                                                                            status
!base/7/x86_64                                                          CentOS-7 - Base - mirrors.aliyun.com                                                 10,072
!epel/x86_64                                                            Extra Packages for Enterprise Linux 7 - x86_64                                       13,768
!extras/7/x86_64                                                        CentOS-7 - Extras - mirrors.aliyun.com                                                  518
!mysql-connectors-community/x86_64                                      MySQL Connectors Community                                                              227
!mysql-tools-community/x86_64                                           MySQL Tools Community                                                                   100
!mysql57-community/x86_64                                               MySQL 5.7 Community Server                                                              678
!updates/7/x86_64                                                       CentOS-7 - Updates - mirrors.aliyun.com                                               5,287
repolist: 30,650

4.2 安装httpd软件

直接使用yum安装httpd软件。

yum -y install  httpd

在这里插入图片描述

4.3 启动httpd服务

启动httpd服务,并使开机自启。

systemctl start httpd
systemctl enable  httpd

4.4 查看httpd服务

查看httpd服务,确保httpd服务正常。

[root@jeven ~]# systemctl status httpd
● httpd.service - The Apache HTTP ServerLoaded: loaded (/usr/lib/systemd/system/httpd.service; enabled; vendor preset: disabled)Active: active (running) since Sat 2023-10-07 20:28:35 CST; 8s agoDocs: man:httpd(8)man:apachectl(8)Main PID: 59236 (httpd)Status: "Processing requests..."CGroup: /system.slice/httpd.service├─59236 /usr/sbin/httpd -DFOREGROUND├─59237 /usr/sbin/httpd -DFOREGROUND├─59238 /usr/sbin/httpd -DFOREGROUND├─59239 /usr/sbin/httpd -DFOREGROUND├─59240 /usr/sbin/httpd -DFOREGROUND└─59241 /usr/sbin/httpd -DFOREGROUNDOct 07 20:28:35 jeven systemd[1]: Starting The Apache HTTP Server...
Oct 07 20:28:35 jeven systemd[1]: Started The Apache HTTP Server.

4.5 防火墙和selinux设置

  • 设置selinux
sed -i 's/SELINUX=enforcing/SELINUX=disabled/' /etc/selinux/config
setenforce 0
  • 关闭防火墙,如果想要开启防火墙,需放行80端口。
systemctl stop firewalld && systemctl disable firewalld

4.6 浏览器测试web服务

浏览器打开:http://192.168.3.166,将IP替换为自己服务器IP地址。

在这里插入图片描述

五、安装PHP

5.1 卸载旧版本PHP

卸载旧版本的php,防止与新装的php7.4版本冲突。

yum remove -y php* 

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 -y --showduplicate --enablerepo=remi --enablerepo=remi-php74   php-fpm php  php-cli  php-bcmathphp-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

在这里插入图片描述

5.4 查看php版本

查看当前的php版本

[root@jeven ~]# php -v
PHP 7.4.33 (cli) (built: Aug  1 2023 09:00:17) ( NTS )
Copyright (c) The PHP Group
Zend Engine v3.4.0, Copyright (c) Zend Technologieswith Zend OPcache v7.4.33, Copyright (c), by Zend Technologies

六、安装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软件包

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 

6.5 重启httpd服务

重启httpd服务与 php-fpm并设置开机自启

systemctl start php-fpm httpd  && systemctl enable php-fpm httpd 

七、安装h5ai相关插件

7.1 初始访问h5ai

访问地址:http://IP地址/_h5ai/public/index.php

在这里插入图片描述

当前密码为空,登录即可看到所有模块自检结果。

在这里插入图片描述

7.2 安装初始插件

  • 安装PDF thumbs功能
yum install -y ImageMagick 

在这里插入图片描述

  • 安装视频插件
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 -y --showduplicate --enablerepo=remi --enablerepo=remi-php74  php-common php-devel php-gd
  • 重启 php-fpm与httpd服务
systemctl restart  php-fpm httpd

7.3 重新检测功能模块

刷新页面,可以看到所有功能模块都已经正常。

在这里插入图片描述

八、测试网站效果

8.1 访问h5ai首页

访问地址:http://192.168.3.166/,将IP替换为自己服务器IP地址。

在这里插入图片描述

8.2 新建网站目录

在网站根目录/var/www/html,新建以下目录。

mkdir {movie,image,pdf,file}

上传文件到对应目录,目录内容如下:

[root@jeven html]# tree -L 2 ./
./
├── file
│   └── \344\272\221\350\256\241\347\256\227.docx
├── _h5ai
│   ├── CHANGELOG.md
│   ├── private
│   ├── public
│   └── README.md
├── image
│   └── \344\270\255\347\247\213\345\233\276\347\211\207.jpg
├── index.php
├── movie
│   ├── 694448a4-cf6a-4105-8694-f5f8da384e2c_SD.mp4
│   └── \346\210\221\346\234\200\351\227\252\344\272\256\ .mp3
└── pdf└── \344\272\221\350\256\241\347\256\227\344\273\213\347\273\215.pdf7 directories, 8 files

8.3 查看网站目录

刷新网页,可以看到新建的目录。

在这里插入图片描述

8.4 查看目录内容

测试目录中各种格式文件:

  • 测试pdf文件,可以正常在线打开。

在这里插入图片描述
在这里插入图片描述

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

在这里插入图片描述
在这里插入图片描述

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

在这里插入图片描述
在这里插入图片描述

相关文章:

Linux系统之部署h5ai目录列表程序

Linux系统之部署h5ai目录列表程序 一、h5ai介绍1.1 h5ai简介1.2 h5ai特点 二、本地环境介绍2.1 本地环境规划2.2 本次实践介绍 三、检查本地环境3.1 检查本地操作系统版本3.2 检查系统内核版本 四、安装httpd软件4.1 检查yum仓库4.2 安装httpd软件4.3 启动httpd服务4.4 查看htt…...

Java-Exception

目录 异常概念ErrorException 体系图常见运行时异常NullPointerExceptionArithmeticExceptionArrayIndexOutOfBoundExceptionClassCastExceptionNumberFormatException 常见的编译异常异常处理机制自定义异常throw和throws对比 异常是Java编程中的常见问题,了解如何…...

C++并发与多线程(2) | 线程运行开始和结束的基本方式

当程序运行起来,生成一个进程,该进程所属的主线程开始自动运行。当主线程从main()函数返回,则整个进程执行完毕。 主线程从main()开始执行,那么我们自己创建的线程,也需要从一个函数开始运行(初始函数),一旦这个函数运行完毕,就代表着我们这个线程运行结束。 整个进…...

vue3前端开发-flex布局篇

文章目录 1.传统布局与flex布局优缺点传统布局flex布局建议 2. flex布局原理2.1 布局原理 3. flex常见属性3.1 父项常见属性3.2 子项常见属性 4.案例实战(携程网首页) 1.传统布局与flex布局优缺点 传统布局 兼容性好布局繁琐局限性,不能再移动端很好的布局 flex布…...

网络是什么?(网络零基础入门篇)

1.如何理解局域网和广域网? 2.路由器和交换机是怎么样工作的? 3.三层交换机能不能代替路由器? -- 局域网 广域网 -- 企业网架构,运营商架构,数据中心架构 -- 局域网 通过 交换机连接的 转发 相同的ip地址…...

【JavaEE】线程安全的集合类

文章目录 前言多线程环境使用 ArrayList多线程环境使用队列多线程环境使用哈希表1. HashTable2. ConcurrentHashMap 前言 前面我们学习了很多的Java集合类,像什么ArrayList、Queue、HashTable、HashMap等等一些常用的集合类,之前使用这些都是在单线程中…...

【C++算法】is_partitioned、partition_copy和partition_point

提示:文章写完后,目录可以自动生成,如何生成可参考右边的帮助文档 文章目录 前言一、is_partitioned函数:1.1 is_partitioned是什么?1.2 函数原型1.3 示例代码1.4 更多示例代码 二、partition_copy函数2.1 概念2.2 函数…...

MyBatis(JavaEE进阶系列4)

目录 前言: 1.MyBatis是什么 2.为什么要学习MyBatis框架 3.MyBatis框架的搭建 3.1添加MyBatis框架 3.2设置MyBatis配置 4.根据MyBatis写法完成数据库的操作 5.MyBatis里面的增删改查操作 5.1插入语句 5.2修改语句 5.3delete语句 5.4查询语句 5.5like查…...

『力扣每日一题15』:买卖股票的最佳时机

一、题目 给定一个数组 prices ,它的第 i 个元素 prices[i] 表示一支给定股票第 i 天的价格。 你只能选择 某一天 买入这只股票,并选择在 未来的某一个不同的日子 卖出该股票。设计一个算法来计算你所能获取的最大利润。 返回你可以从这笔交易中获取的…...

Java中栈实现怎么选?Stack、Deque、ArrayDeque、LinkedList(含常用Api积累)

目录 Java中的Stack类 不用Stack有以下两点原因 1、从性能上来说应该使用Deque代替Stack。 2、Stack从Vector继承是个历史遗留问题,JDK官方已建议优先使用Deque的实现类来代替Stack。 该用ArrayDeque还是LinkedList? ArrayDeque与LinkList区别&#xff1…...

雷达分辨率单元、单向/双向雷达方程、天气雷达方程简介

一、点状目标 如果两个点状目标在一个分辨率单元中,经典脉冲雷达只能看到一个目标。 点状目标 二、雷达距离分辨率 对于简单的键控开/关脉冲调制: 对于使用脉冲内调制的雷达,距离分辨率取决于压缩脉冲的脉冲持续时间。脉冲压缩比(PCR)取决于传输带宽BWtx,即距离分辨率取…...

RabbitMQ之Fanout(扇形) Exchange解读

目录 基本介绍 适用场景 springboot代码演示 演示架构 工程概述 RabbitConfig配置类:创建队列及交换机并进行绑定 MessageService业务类:发送消息及接收消息 主启动类RabbitMq01Application:实现ApplicationRunner接口 基本介绍 Fa…...

Redisson—分布式集合详述

7.1. 映射(Map) 基于Redis的Redisson的分布式映射结构的RMap Java对象实现了java.util.concurrent.ConcurrentMap接口和java.util.Map接口。与HashMap不同的是,RMap保持了元素的插入顺序。该对象的最大容量受Redis限制,最大元素数…...

开发做前端好还是后端好?这是个问题!

前言 随着互联网的快速发展,越来越多的人选择从事Web开发行业,而Web开发涉及到前端和后端两个方面,相信许多人都曾经对这两个方面进行过探究。而且编程世界就像一座大城市,前端开发和后端开发就像城市的两个不同街区。作为初学者&…...

运行huggingface Kosmos2报错 nameerror: name ‘kosmos2tokenizer‘ is not defined

尝试运行huggingface上的Kosmos,https://huggingface.co/ydshieh/kosmos-2-patch14-224失败,报错: nameerror: name kosmos2tokenizer is not defined查看报错代码: vi /root/.cache/huggingface/modules/transformers_modules/ydshieh/kosmos-2-patch14-224/48e3edebaeb…...

吃鸡玩家必备神器!一站式提升战斗力、分享干货!

大家好,我是吃鸡玩家。在这个视频中,我要分享一个让你瞬间提高战斗力的神器,同时让你享受到顶级游戏作战干货的盛宴!让我们一起来了解吧! 首先,我们推荐绝地求生作图工具。通过这款工具,你可以轻…...

【maven】idea中基于maven-webapp骨架创建的web.xml问题

IDEA中基于maven-webapp骨架创建的web工程&#xff0c;默认的web.xml是这样的。 <!DOCTYPE web-app PUBLIC"-//Sun Microsystems, Inc.//DTD Web Application 2.3//EN""http://java.sun.com/dtd/web-app_2_3.dtd" ><web-app><display-name…...

【算法题】2034. 股票价格波动

插&#xff1a; 前些天发现了一个巨牛的人工智能学习网站&#xff0c;通俗易懂&#xff0c;风趣幽默&#xff0c;忍不住分享一下给大家。点击跳转到网站。 坚持不懈&#xff0c;越努力越幸运&#xff0c;大家一起学习鸭~~~ 题目&#xff1a; 给你一支股票价格的数据流。数据流…...

APSIM模型】作物模型应用案例

APSIM (Agricultural Production Systems sIMulator)模型是世界知名的作物生长模拟模型之一。APSIM模型有Classic和Next Generation两个系列模型&#xff0c;能模拟几十种农作物、牧草和树木的土壤-植物-大气过程&#xff0c;被广泛应用于精细农业、水肥管理、气候变化、粮食安…...

io_uring之liburing库安装

手动编译和安装 liburing&#xff1a; 1.首先&#xff0c;从 liburing 的 GitHub 仓库中获取源代码。您可以使用以下命令克隆仓库&#xff1a; git clone https://github.com/axboe/liburing.git2.进入 liburing 目录&#xff1a; cd liburing3.运行configure ./configure …...

Python WebSocket自动化测试:构建高效接口测试框架!

为了更高效地进行WebSocket接口的自动化测试&#xff0c;我们可以搭建一个专门的测试框架。本文将介绍如何使用Python构建一个高效的WebSocket接口测试框架&#xff0c;并重点关注以下四个方面的内容&#xff1a;运行测试文件封装、报告和日志的封装、数据驱动测试以及测试用例…...

MySQL数据库——SQL优化(1)-介绍、插入数据、主键优化

目录 介绍 插入数据 Insert 大批量插入数据 主键优化 数据组织方式 页分裂 页合并 索引设计原则 介绍 SQL优化将分为下面几个部分进行学习&#xff1a; 插入数据主键优化order by优化group by优化limit优化count优化update优化 首先就先来看第一方面&#xff0c; 插…...

Flink---10、处理函数(基本处理函数、按键分区处理函数、窗口处理函数、应用案例TopN、侧输出流)

星光下的赶路人star的个人主页 我的敌手就是我自己&#xff0c;我要他美好到能使我满意的程度 文章目录 1、处理函数1.1 基本处理函数&#xff08;ProcessFunction&#xff09;1.1.1 处理函数的功能和使用1.1.2 ProcessFunction解析1.1.3 处理函数的分类 1.2 按键分区处理函数&…...

多种方案教你彻底解决mac npm install -g后仍然不行怎么办sudo: xxx: command not found

问题概述 某些时候我们成功执行了npm install -g xxx&#xff0c;但是执行完成以后&#xff0c;使用我们全局新安装的包依然不行&#xff0c;如何解决呢&#xff1f; 解决方案1&#xff1a; step1: 查看npm 全局文件安装地址 XXXCN_CXXXMD6M ~ % npm list -g …...

斐波那契数列 JS

问题&#xff1a; 给出一个数字&#xff0c;找出它是斐波那契数列中的第几个数 斐波那契数列 [1, 1, 2, 3, 5, 8, 13, ...]&#xff0c;后一个数字是前两个数字之和 输入的数字大于等于 2 如果输入数字不存于斐波那契数列中&#xff0c;返回 -1 function demo(num) {//初始数据…...

IP 地址的分类

IP地址是用于标识计算机或设备在互联网上的位置的一种地址。IP地址通常根据其范围和用途分为不同的分类&#xff0c;主要包括以下几种&#xff1a; IPv4地址&#xff08;Internet Protocol version 4&#xff09;&#xff1a; IPv4地址是32位二进制数&#xff0c;通常以点分十…...

CDN网络基础入门:CDN原理及架构

背景 互联网业务的繁荣让各类门户网站、短视频、剧集观看、在线教育等内容生态快速发展&#xff0c;互联网流量呈现爆发式增长&#xff0c;自然也面临着海量内容分发效率上的挑战&#xff0c;那么作为终端用户&#xff0c;我们获取资源的体验是否有提升呢&#xff1f; 答案是…...

李沐深度学习记录2:10多层感知机

一.简要知识记录 x.numel()&#xff1a;看向量或矩阵里元素个数 A.sum()&#xff1a;向量或矩阵求和&#xff0c;axis参数可对某维度求和&#xff0c;keepdims参数设置是否保持维度不变 A.cumsum&#xff1a;axis参数设置沿某一维度计算矩阵累计和x*y:向量的按元素乘法 torch.…...

Python标准库中内置装饰器@staticmethod@classmethod

装饰器是Python中强大而灵活的功能&#xff0c;用于修改或增强函数或方法的行为。装饰器本质上是一个函数&#xff0c;它接受另一个函数作为参数&#xff0c;并返回一个新的函数&#xff0c;通常用于在不修改原始函数代码的情况下添加额外的功能或行为。这种技术称为元编程&…...

MySQL8 间隙锁在11种情况下的锁持有情况分析

测试环境及相关必要知识 测试环境为mysql 8 版本 间隙锁&#xff08;Gap Lock&#xff09;&#xff1a;用于锁定索引范围之间的间隙&#xff0c;防止其他事务在此间隙中插入新记录。间隙锁主要用于防止幻读问题。 在可重复读的隔离级别下默认打开该锁机制&#xff0c;解决幻…...