将文件放在web服务器上供自己下载或者分享给别人是一个不错的选择,但是一般情况下web服务的索引目录如下所示,虽然满足了基本功能但看起来一点都不优雅,所以此时h5ai有了用武之处:
H5ai作者对h5ai的定义是A modern HTTP web server index for Apache httpd, lighttpd, nginx and Cherokee(官网地址https://larsjung.de/h5ai/、Github地址https://github.com/lrsjng/h5ai)。本次部署也是在将h5ai和php运行在容器中(安装docker不在本教程范围内,详情可以参阅DaoCloud一键安装教程,传送门:https://get.daocloud.io/),使用命令docker run -d -p 80:80 -p 443:443 -v $PWD/h5ai:/etc/nginx/sites-enabled/h5.conf -v $PWD/htpasswd:/mnt/config/htpasswd:ro -v $PWD/ssl:/etc/nginx/ssl:ro -v $PWD/download:/var/www --name h5ai corfr/h5ai一键安装h5ai及所依赖的php环境,接下来说明一下命令部分参数具体含义:
$PWD 指的是使用当前目录作为容器数据的本地存储目录
docker run -d 运行容器并后台运行
-p 80:80 -p 443:443 本机80和443端口映射到容器内
-v $PWD/h5ai:/etc/nginx/sites-enabled/h5.conf 将当前目录下的h5ai文件映射到容器内/etc/nginx/sites-enabled/h5.conf文件,由于我用了ssl所以在h5ai文件里加了些配置,具体如下(此步骤可忽略):
[root@bwgcn2 docker]# cat h5ai/h5ai
server {
listen 80;
#监听443端口
listen 443 ssl;
root /var/www;
server_name download.superc.online;
index /_h5ai/public/index.php;
#以下部分是使用ssl配置
ssl on;
ssl_certificate /etc/nginx/ssl/2_download.superc.online.crt;
ssl_certificate_key /etc/nginx/ssl/3_download.superc.online.key;
error_page 497 https://$server_name$request_uri;
try_files $uri $uri/ =404;
location /_h5ai/ {
root /usr/share/h5ai/;
#以下部分是加密访问配置
auth_basic "input password";
auth_basic_user_file /mnt/config/htpasswd;
location /_h5ai/public/index.php {
fastcgi_pass unix:/var/run/php5-fpm.sock;
include fastcgi_params;
}
}
}
-v $PWD/htpasswd:/mnt/config/htpasswd:ro 将当前目录下htpasswd映射到容器内/mnt/config/htpasswd,用作加密访问,web加密访问详情自行百度、谷歌(此步骤可忽略)。 -v $PWD/ssl:/etc/nginx/ssl:ro 将当前目录下的ssl目录映射到容器内/etc/nginx/ssl,本地ssl目录下存放的是ssl证书(此步骤可忽略)。 -v $PWD/download:/var/www 将当前目录下download文件夹映射到容器内/var/www目录,在本地将需要下载或者分享的文件放在download目录即可在web上访问(此步骤必做)。 --name h5ai 指定容器名 corfr/h5ai 指定容器镜像
本教程中文件目录格式如下:
此时容器正常正常运行后访问系统IP或者域名即可查看美化后的web索引页面:
最后奉上一个测试体验账号,登录名密码都是test,一个月后删除,访问地址https://download.superc.online。
文章评论