群晖上搭建私人网盘有很多方案,比如Drive套件,nextcloud、owncloud、seaffile等等,
今天介绍一个轻量级的网盘应用——zdir,zdir基于文件索引,可以无需登录即可自由浏览与下载目录内的文件,文件只可由管理员上传与更改,zdir作为一个单纯的文件分享器来说,无需数据库支持,体积小巧,是十分高效与简洁的。
Zdir在GitHub开源,更多详情请前往作者页面了解https://github.com/helloxz/zdir
下面开始搭建教程:
部署环境:DSM6.2.3
所需套件:webstation+apache HTTP Server 2.4+PHP7.3
一、源码下载(截止稿前最新版1.55)
二、Web搭建
1.打开webstation套件,新建一个虚拟主机,如图,其中端口号请记好,之后会再次用到
2.打开filestation,找到zdir-1.55目录,修改其属性权限如图(如无http用户,则增加一个)
3.使用https://群晖ip:端口号,如https://192.168.1.111:2024访问zdir的web页面,如提示复制config.simple.php,则为部署成功
三、配置文件修改
1. 通过smb网络共享,找到你上传的zdir-1.55目录,将根目录下的config.simple.php文件复制一份为config.php在同一目录,使用notepad++工具进行如下修改,修改完成后再次访问zdir的web页面,检查是否正常访问主页
2. 修复文件索引。Zdir的文件检索功能依赖curl,cache.php中的curl配置默认只针对80和443端口,我们的自定义端口会无法连接造成索引空白的问题(如点击文件索引出现unable to open file,则为权限配置出错,按二-2检查)
3. 打开编辑主目录functions文件夹下的cache.php,按图示修改,修改的端口号与webstation的对应
4. 修复前后效果对比
5.修复hash/MD5查看功能。由于不是标准端口或者目录配置问题,md5查看功能会出错(图),需要修复文件路径。
打开并编辑主目录functions下的hash.php,将第13行(图)用#注释掉,或将13行内/zdir字符删掉即可
四、其他自定义
1. 页脚自定义,打开编辑主目录/template/footer.php文件,如图修改(请勿去除版权信息,联系作者获取捐赠版)
2. 删除不必要的导航栏,打开编辑主目录/template/header.php文件,如图修改
3.修改广告轮播消息(喜欢zdir请支持作者,捐赠以获得无广告版,此处仅做演示可能),
- 用notepad++打开编辑主目录static下的zdir.js文件,如图修改本地轮播消息,下方按图修改/template/footer.php,将在线资源重新指向本地资源
4. 效果
五、php优化
1. 群晖php默认只能上传32m以下的文件,这对zdir十分不友好,需要对其限制进行修改
2. 打开webstation中的php设置,选择zdir使用的php7.3,编辑默认服务器配置下方的扩展名,勾选所有扩展名。
3.切换到核心设置,搜索给出的参数,对应数值进行修改
- memory_limit=128M
- post_max_size=1024M
- upload_max_filesize=1024M
- max_execution_time=600
- max_input_time=600
复制代码4. 修改完成后前往zdir后台,上传一个500m左右的文件进行测试
- 注意:重启群晖后,这些参数可能会被重置,但本人测试并没有发生(不记得以前有没过骚操作),如果不幸被重置,可以手动恢复,或者百度解决?群晖的php.ini左绕右绕的真的难搞
六、最后:
1. php上传还是比较吃资源的,尽量避免长时间的大文件上传,如有此需求,可以通过smb/ftp等共享手动上传大文件到zdir-1.55下对应的子目录。
2. zdir目前对于在线预览方面还是有欠缺,非标准端口无法预览office文档,这方面群晖有更专业的drive套件。
3. zdir强在文件分享,体积小巧,响应快速,不依赖数据库,无需登录,很适合给朋友、同事分享零碎文件,做一个纯粹的分享器,十分推荐(页面都是公开连接,切勿上传私密文件)
4.Zdir提供docker方式部署(方法请看作者github页面),免去了config、cache和文件夹权限修改的麻烦,但是docker版采用nginx为后端,文件上传同样存在限制(实测超过50M左右就会报500内部错误),而且群晖的nginx配置更为复杂,有能力解决的小伙伴欢迎交流反馈