h5ai是一款基于PHP的目录列表程序,支持多个扩展和配置,可以自定义外观样式,包括文件排序、本地化、打包下载、二维码、文件预览等功能。

正好有台VPS闲置,想做为文件服务器,服务器为Centos7 + LNMP 1.5

安装程序

1、在官网下载h5ai的压缩包文件,将_h5ai上传到网站根目录DOC_ROOT/_h5ai

DOC_ROOT
├─ _h5ai
├─ your files
└─ and folders

2、把h5ai程序_h5ai中private和public两个文件夹中的cache目录权限设置为777
3、访问http://YOUR-DOMAIN.TLD/_h5ai/public/index.php,检查是否可以访问h5ai,此页面显示了服务器功能的一些提示
4、修改服务器端配置,我的为Nginx,需要修改配置文件nginx.conf

index  index.html  index.php  /_h5ai/public/index.php;

5、LNMP默认禁用了php函数exec,找到/usr/local/php/etc/php.ini里面的disable_functions,删掉exec
6、重启LNMP服务

自定义安装

可以将h5ai安装到服务器的任何子目录中,该目录将被视为根目录

例如,将文件夹复制_h5ai到DOC_ROOT/some/folder/_h5ai
访问http://YOUR-DOMAIN.TLD/some/folder/_h5ai/public/index.php查看是否正常工作,同时要修改Nginx配置文件为/some/folder/_h5ai/public/index.php

图片缩略图

h5ai的缩略图依赖php的gd库,LNMP默认已经安装

EXIF

需要安装php的exif模块,首先找到LNMP下php安装目录/root/lnmp1.5/src,解压php安装文件

sudo bzip2 -d php-5.6.36.tar.bz2
sudo tar -xvf php-5.6.36.tar

进入php安装目录的ext目录

cd /root/lnmp1.5/src/php-5.6.36/ext

我们要安装exif模块,执行

cd exif

再执行/usr/local/php/bin/phpize会返回

Configuring for:
PHP Api Version:         20131106
Zend Module Api No:      20131226
Zend Extension Api No:   220131226

再执行以下命令

./configure --with-php-config=/usr/local/php/bin/php-config --with-kerberos --with-imap-ssl
make && make install

执行完返回

Build complete.
Don't forget to run 'make test'.

表示已经成功,再修改/usr/local/php/etc/php.ini,查找extension_dir在下面一行添加上extension=exif.so

保存,执行/etc/init.d/php-fpm restart重启

正常刷新h5ai就会发下exif已经显示支持

ffmpeg

可以安装ffmpeg或者avconv,这里选择安装ffmpegffmpeg是一个多媒体框架,能够实现音频和视频文件的解码,编码,转码,复用,解复用,流式传输,过滤等功能
在服务器上安装EPEL repo的方法

yum -y install epel-release

启用epel repo后,继续安装Nux Dextop存储库

root@server1 [~]# rpm --import http://li.nux.ro/download/nux/RPM-GPG-KEY-nux.ro
root@server1 [~]# rpm -Uvh http://li.nux.ro/download/nux/dextop/el7/x86_64/nux-dextop-release-0-1.el7.nux.noarch.rpm
Retrieving http://li.nux.ro/download/nux/dextop/el7/x86_64/nux-dextop-release-0-1.el7.nux.noarch.rpm
Preparing... ################################# [100%] Updating / installing...
1:nux-dextop-release-0-1.el7.nux ################################# [100%] root@server1 [~]#

现在可以使用yum安装ffmpeg

yum -y install ffmpeg ffmpeg-devel

因为服务器的原因,最后会报类似下面的错误

Requires: libass.so.5()(64bit)

解决方法如下

wget ftp://195.220.108.108/linux/mageia/distrib/5/x86_64/media/core/updates/lib64ass5-0.13.4-1.mga5.x86_64.rpm
rpm -ivh lib64ass5-0.13.4-1.mga5.x86_64.rpm

再次安装

yum install -y ffmpeg

PDF预览

需要安装ImageMagickimageMagick是一个用于查看、编辑位图文件以及进行图像格式转换的开放源码软件套装,它可以读取、编辑超过 100 种图像格式,可用来代替 gd 库。

LNMP1.5里已经自带ImageMagick,进入lnmp解压后的目录,执行

./addons.sh install imagemagick 

回车确认后就会自动安装imageMagick

ZIP命令

Centos默认没有安装zip,需要自行安装

yum install -y unzip zip

至此h5ai的所有扩展均已安装完成