一、h5ai介绍
1.1 h5ai简介
h5ai 是用于 HTTP Web 服务器的现代文件索引器,专注于您的文件。目录以吸引人的方式显示,浏览它们通过不同的视图、面包屑和树概述得到增强。最初h5ai是HTML5 Apache Index的首字母缩写,但现在它也支持其他Web服务器。
1.2 h5ai特点
有许多可用的扩展和配置选项,允许用户自定义目录列表的Web外观。所有标记均为有效的HTML5,并附带有CSS3和最佳的JavaScript,这些可以用来构建新鲜且注重用户体验的文件视图。
一些可选功能包括:
文件排序
不同的视图模式
本地化
痕迹导航
树视图
自定义页眉和页脚
文件过滤器和搜索
文件夹大小
自动刷新
打包下载
二维码
缩略图
文件预览
1.3 使用场景
文件共享:h5ai可以用作文件共享服务器的索引器,使用户能够以一种更直观、美观的方式浏览和下载文件。
网络存储:如果您有一个网络存储设备(如NAS),h5ai可以使您能够更好地管理和浏览存储在其中的文件。
个人网站:如果您有一个个人网站,h5ai可以帮助您更好地组织和展示文件,使访问者更容易找到他们需要的内容。
团队协作:如果您是一个团队,共享大量文件,h5ai可以帮助您在团队成员之间更好地共享和浏览文件。
二、本地环境介绍
2.1 本地环境规划
本次实践为个人测试环境,操作系统版本为centos7.6。
hostname | 本地P地址 | 操作系统版本 | 内核版本 | node版本 |
---|---|---|---|---|
jeven | 192.168.3.166 | centos 7.6 | 3.10.0-957.el7.x86_64 | v16.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 Server
Loaded: loaded (/usr/lib/systemd/system/httpd.service; enabled; vendor preset: disabled)
Active: active (running) since Sat 2023-10-07 20:28:35 CST; 8s ago
Docs: 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 -DFOREGROUND
Oct 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服务
五、安装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-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
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 Technologies
with 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
当前密码为空,登录即可看到所有模块自检结果。
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.pdf
7 directories, 8 files
8.3 查看网站目录
刷新网页,可以看到新建的目录。
8.4 查看目录内容
测试目录中各种格式文件:
- 测试pdf文件,可以正常在线打开。
- 测试图片文件,可以正常在线打开。
- 测试MP4视频文件,可以正常播放。