h5ai - 私有云

之前一直在使用 ssh 来做文件存储与分享,因为 SSH 的特殊性,使用非常不便。便想建一个轻便的私人网盘。经过对开源私有云(ownCloud/nextCloud/kodExplorer/…)的查找、安装、卸载流程,最终留下了德国人 larsjung 开发的 h5ai

更新

  • 2021-01-17 新增Caddy 2的配置

简介

h5ai 相对于其它私有云来说功能简单、体积轻便(1MB左右)、页面排版自动适应 PC 和移动端、支持包括中文在内的多语言显示,采用 NodeJs 框架开发,编译完成后为 PHP 程序。

h5ai 通过不同的视图来对服务器端的目录和文件进行查看。可以在线预览 PDF、文档、脚本(语言高亮)、图片、视频、下载(二维码)等等。
因为它重在文件索引与分享,所以不支持文件上传。
脚本高亮

它有许多设置,可以对页面排版进行修改,如皮肤、侧边栏、搜索、下载,生成视频和图片缩略图等等。

作者提供的一个 Demo:H5ai - Demo

h5ai可以部署在 Apache / lighttpd / nginx / caddy 等等 Web 服务器上。

第一、WEB 环境和 H5ai 的准备

1、Web 环境

我们需要准备一个 WEB 环境,可以使用 Nginx、LighttpdCaddy, Apache 等等都可以。在这里,我们使用 Web 服务器界的新起之秀 Caddy

  1. 安装 Caddy

详见 Web server - Caddy

  1. 安装 PHP
:~$ apt-get install php7.3-fpm php7.3-cgi php7.3-gd php7.3-json

2、h5ai 程序下载

h5ai 下载目录
v0.29.2,截止2019-09-22最新的正式版本。
v0.29.2+025~a1bb755,截止2019-09-22最新的开发版。

在这里,我们下载最新的开发版「v0.29.2+025~a1bb755」并解压至网站目录/var/www/下。

:~$ 7z x h5ai-0.29.2+025~a1bb755.zip -o/var/www

第二、h5ai 的安装与部署

1、网站目录示意图

网站根目录
  ├──── _h5ai
  ├──── _h5ai ─── private
  ├──── _h5ai ─── public
  ├──── 分享的文件
  ├──── 分享的文件夹 ─── 分享的文件
  └──── 分享的文件夹

将需要分享的文件放在网站根目录下即可,而 h5ai 程序全部在_h5ai文件夹里。
程序默认 _h5ai. 开头的文件不显示,可以修改配置options.json文件来自定义不想分享的文件。

2、运行网站

h5aiindex.php不在根目录下,所以需要在服务器上指定它的路径。

  • lighttptd,使用index-file.names来指定首页的路径。
index-file.names += ("/_h5ai/public/index.php")
  • Caddy,使用index来指定首页的路径。
index "/_h5ai/public/index.php"

因为 h5ai 所有的 URI 都会在服务端重定向至 /_h5a/public/index.php 并由它来生成页面,所以在 Caddy 里使用 index 指定网站首页后,浏览我们的网站时会出现很多 404 错误。

这点在 lighttpd / nginx / apache 下默认自动修正了,所以不需要其它设置。

Caddy 与 PHP 存在一些兼容性问题,无法自动处理这个问题。所以这里需要而使用rewrite 指令来将所有的 URI 重写至 /_h5ai/public/index.php

假设我的网站域名为 www.shixuen.com

:~$ cat >> /etc/caddy/Caddyfile <<EOF
www.shixuen.com:80 {
    root /var/www
    gzip
    tls off
    # index /_h5ai/public/index.php
    fastcgi / /run/php/php7.3-fpm.sock php
    rewrite {
    # 将所有路径全部重写至首页
        if {path} ends_with /
        to /_h5ai/public/index.php
    }
}
EOF
:~$ sudo systemctl start php7.3-fpm caddy
:~$ cat > /etc/caddy/Caddyfile <<EOF
# -----------Global options---------------
# Note: This must be the first block of the Caddyfile
{
    http_port   80
    https_port  443
    servers     :443 {
                    protocol {
                        experimental_http3
                    }
                }
    servers     :80 {
                    protocol {
                        allow_h2c
                    }
                }
}

www.shixuen.com {
    root    *   /var/www/h5ai
    tls     haven200@shixuen.com
    file_server
    php_fastcgi unix//run/php/php7.3-fpm.sock

    # redirect to index.php with all request
    @redirected {
        not path /_h5ai/*
        path */
    }
    rewrite @redirected /_h5ai/public/index.php
}
EOF
:~$ sudo systemctl start php7.3-fpm caddy

此时,在浏览器中输入网址 http://www.shixuen.com 即可浏览网站。

/run/php/php7.3-fpm.sockphp7.3-fpm 所绑定的网络端口,如果查找它?

:~$ netstat -anpl | grep php | grep LISTENING
unix  2      [ ACC ]     STREAM     LISTENING     816733   7346/php-fpm: pool   /run/php/php7.3-fpm.sock

3、h5ai 环境与功能的自检

  • 打开网址 http://www.shixuen.com/_h5ai/public/index.php
    查看 h5ai 当前运行信息,即对当前运行环境与功能模块的自检结果。
    默认密码为空,直接点击登录。
    信息登录界面
  • 查看自我检测结果
    自检结果
  • 绿色,即代表检测通过
  • 红色,存在兼容性问题。如此处的server software(服务器)一栏
  • 红色的no,即此功能缺失,需要安装依赖环境。
    如此处的PDF thumbs(PDF缩略图),提示缺少convert(imagemagick)程序,此功能为 PDF文档生成缩略图。
    解决此问题只需在服务器安装imagemagick
:~$ apt-get install imagemagick

至此,我们私有云就布置完成了,可以为我们提供服务了。

第三、h5ai 的配置文件

h5ai 的配置文件为_h5ai/private/conf/options.json,修改它对 h5ai 的功能进行增减。

1、功能自检页面的密码设置

    /*
    Password hash. 
    SHA512 hash of the info page password, the preset password is the empty string.
    Online hash generator: https://md5hashing.net/hash/sha512
    */
    "passhash": "cf83e1357eefb8bdf1542850d66d8007d620e4050b5715dc83f4a921d36ce9ce47d0d13c5d85f2b0ff8318d2877eec2f63b931bd47417a81a538327af927da3e",

passhashpassword hash 的缩写,它的值为密码经过 SHA512 hash 计算后的结果。
cf83e1357....da3e 这串字符为空字符的 SHA512 哈希值。
所以我们在上面 3、h5ai 环境与功能的自检 步骤里不用输入密码即可登录。

如何修改默认密码?

  1. 生成密码的 SHA512 hash 值。
  2. cf83e1357....da3e 换成我们刚刚生成的 SHA512 值即可。

配置文件里给出的密码在线生成网址

  • 5
    点赞
  • 20
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

haven200

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值