# Zdir # 介绍 Zdir是一款使用PHP开发的目录列表程序,无需数据库,安装简单,使用方便。 ![img](https://imgurl.org/upload/1806/349f3b54028d58d6.png) ### 主要功能 - ✅目录浏览 - ✅MarkDown文件预览 - ✅CSS/JavaScript一键复制 - ✅文件hash - ✅图片预览 - ✅视频播放(支持.mp4 .ts .m3u8等部分格式) - ✅音频播放 - ✅文本查看器(支持的格式有.txt .sh .py .go .c .cpp) - ✅Office在线预览(支持.doc .docx .xls .xlsx .ppt .pptx) - ✅文件索引 - ✅二维码生成 - ✅文件管理(上传、下载、编辑) - ✅文件搜索 - ✅密码验证 - ✅支持中文显示 ### Demo - [http://soft.xiaoz.org/](http://soft.xiaoz.org/) - [https://wget.ovh/](https://wget.ovh/) - [https://libs.xiaoz.top/](https://libs.xiaoz.top/) ### 获取捐赠版 **捐赠版权益:** 1. 去除广告 2. 允许修改底部版权 3. 可提供一次免费技术支持 扫描下方二维码,且捐赠`>=30`元。扫码后通过联系我QQ获取。 ![img](https://imgurl.org/upload/1712/cb349aa4a1b95997.png) ### 联系我 - Blog: [https://www.xiaoz.me/](https://www.xiaoz.me/) - QQ: 337003006 # 安装 ## 注意事项 - 不再支持IIS部署 - 不推荐使用Windows系统 - 不再支持安装到二级目录提供访问,比如:`www.xxx.com/zdir` ## 路径说明 假如您站点根目录为`/www/wwwroot/xxx.com`,您应该在此路径下创建一个`zdir`文件夹,并将zdir源码放到`/www/wwwroot/xxx.com/zdir`,需要读取的文件放到`/www/wwwroot/xxx.com`,结构如下: ``` /www/wwwroot/xxx.com/ - 站点根目录 zdir - zdir源码路径 dir1 - 需要读取的文件夹 file1 - 需要读取的文件 ``` **注意:站点根文件夹不能包含`zdir`关键词,比如不能为`/www/wwwroot/zdir.xxx.com`** ## 常规安装 1. 访问 [zdir.zip](https://github.com/helloxz/zdir/archive/master.zip) 下载最新源码,并解压到站点根目录下的`zdir`文件夹 2. **将**`zdir/config.simple.php`**修改为**`zdir/config.php` 3. 修改`config.php` 文件,设置网站关键词、描述等、密码等 4. 访问您的域名测试,文件管理用户名为`zdir`,密码为`config.php`中设置的密码 **源码备用下载地址**:[https://dwz.ovh/zdirdown](https://dwz.ovh/zdirdown) ### Nginx伪静态 - 需要个将默认首页设置为`zdir/index.php`,比如`index zdir/index.php index.html index.htm index.php` - 需要在Server的配置中添加一行伪静态规则:`rewrite ^/static/(.+) /zdir/static/$1 break;` 下方是一个示例配置,请根据您的实际情况进行修改: ```nginx server { listen 80; server_name localhost; #access_log /var/log/zdir.log combined; index zdir/index.php index.html index.htm index.php; root /data/wwwroot/default; #rewrite rewrite ^/static/(.+) /zdir/static/$1 break; #error_page 404 /404.html; #error_page 502 /502.html; location ~ [^/]\.php(/|$) { fastcgi_pass 127.0.0.1:9000; fastcgi_index index.php; include fastcgi.conf; } location ~ .*\.(gif|jpg|jpeg|png|bmp|swf|flv|mp4|ico)$ { expires 30d; access_log off; } location ~ .*\.(js|css)?$ { expires 7d; access_log off; } location ~ /\.ht { deny all; } } ``` ### Apache伪静态 Apache环境直接将`/www/wwwroot/xxx.com/zdir/.htaccess.bak`复制为`/www/wwwroot/xxx.com/.htaccess`即可。或者自行在站点根目录下新建一个`.htaccess`文件,内容为: ``` RewriteEngine On DirectoryIndex zdir/index.php RewriteRule 'static/(.*)$' zdir/static/$1 [L] ``` ## Docker方式安装 复制下面的命令执行: ```bash docker run --name="zdir" \ -d -p 1080:80 --restart=always \ -v /tmp/zdir:/data/wwwroot/default \ helloz/zdir ``` - `1080`:为外部访问端口,可自行修改 - `/tmp/zdir`:zdir数据挂载路径,可自行修改 更多说明请参考:[https://www.xiaoz.me/archives/14809](https://www.xiaoz.me/archives/14809) ## config.php配置文件说明 #### 设置站点基本信息 打开`config.php` 配置文件 ```php $siteinfo = array( "site_name" => " xiaoz软件库", "title" => "Zdir 实用的目录列表程序", "keywords" => "zdir,h5ai,Directory Lister,Fdscript,目录列表,目录索引", "description" => "Zdir是一款使用PHP开发的目录列表程序,简单实用,免费开源。" ); ``` - site\_name:网站名称(左上角显示) - title:设置站点标题(浏览器上显示) - keywords:设置网站关键词 - description:设置网站描述 #### 排除某个目录 ```php //需要忽略的目录 $ignore = array( ".", ".git", "favicon.ico", "functions", "config.php", "index.php", "static", "LICENSE", "template", "cache.php", "indexes.php" ); ``` 如果您需要排除某个目录,请修改上面的`$ignore`变量。 # 使用说明 ### Markdown预览 Zdir支持Markdown文件预览,如果以`readme.md`命名,会直接出现“使用说明”按钮,如果是其它`.md`后缀的文件会出现一个“小眼睛”按钮,点击该按钮可以预览Markdown文件。 ![img](https://cdn.nlark.com/yuque/0/2019/png/192152/1557324862719-2b550318-bf61-4b4b-9599-1b6935d06e46.png) ### 文件索引 为了快速找出需要的文件,Zdir提供了文件索引功能,可访问点击导航栏“文件索引”进行查看,访问该页面后可按`Ctrl + F`搜索文件,如下截图。 ![img](https://cdn.nlark.com/yuque/0/2019/png/192152/1557324855126-db0756b4-3944-43f5-820e-3bc10bf0a8f9.png) 如果页面提示`Unable to open file!`,说明您的目录不可写,请自行检查目录权限,确保`functions/caches`该目录可读写。 为了降低资源消耗,文件索引存在24小时缓存,您可以访问`index.php?c=cache&del=cache`清除当前缓存并重新生成索引。 ### 文件搜索 文件搜索功能依赖于“文件索引”,因此请先确保您的文件索引功能可以正常使用,并且已经成功生成了索引文件。然后在右上角输入搜索框进行搜索,如下截图。 ![img](https://cdn.nlark.com/yuque/0/2019/png/192152/1557324863755-7afe2dd9-422f-478c-969f-72564e1b289e.png) ### 文件管理 点击导航栏“文件管理”或者访问`functions/admin.php`进入,用户名为`zdir`,密码为`config.php`中设置的密码。文件管理支持上传、修改、删除等功能,如下截图。 ![img](https://cdn.nlark.com/yuque/0/2019/png/192152/1559096963663-9d5025c1-5d01-4c54-9c6e-77372c85addd.png) ### 删除文件(此功能已废弃) 在您访问的页面加上`?admin`或`&admin` 参数,文件后面会出现删除按钮,可以对文件进行删除,如下截图。 ![img](https://cdn.nlark.com/yuque/0/2019/png/192152/1557324856269-457caa56-c42e-4e2f-becb-916608fe9c86.png) 删除密码是在`config.php` 中设置,请看[删除文件设置](zdir/install?id=%E5%88%A0%E9%99%A4%E6%96%87%E4%BB%B6%E8%AE%BE%E7%BD%AE) ### 启用密码验证 1. 修改 `config.php` 将 `"auth" => FALSE` 参数修改为 `TRUE` 2. 再次访问首页会要求输入账号、密码,用户名为 `admin` 密码为 `config.php` 中设置的密码 **注意事项:** 应部分网友要求,添加了简单的密码验证,但此功能无法防止用户下载文件,只要知道真实地址依然可请求文件。 # 常见问题 ##### Office预览不正常? 1. Office使用微软API,如果您的Zdir无法通过公网访问,将无法预览。 2. 使用IP形式访问也无法预览 ##### 文件索引异常,提示Unable to open file! 请检查`zdir/functions/caches`是否可读写,用户目录所属权限是否正确。 比如宝塔、Oneinstack、lnmp.org均使用`www`作为站点用户,如果目录所属权限不正确,您应该尝试重置权限: ```bash chown -R www:www /站点路径 ``` ##### 无法搜索到内容? 搜索功能依赖于文件索引,如果文件索引异常,搜索功能将无法使用。 ##### 为什么文件索引显示缓存于1970年? 文件索引页面读取的缓存文件时间,由于获取时间的时候页面还未生成,故显示不正确,刷新页面即可解决。 ##### 文件管理器无法登录 需要修改`php.ini`文件开启PATHINFO,然后重启PHP ``` cgi.fix_pathinfo=1 ``` # 更新日志 ### v2.0.0-20210809 - 文件索引界面增加清除缓存按钮 - 统一安装方式 ### v1.55-20210111 - 修复二维码失效问题 ### v1.5-20200531 - 此版本可将Zdir放在子目录中 - 优化CSS - 修复一些BUG - 可以新建`static/tongji.js`并添加网站统计代码,Zdir将自动加载 - 文件管理器的用户名、密码可以在`config.php`自定设置 - `config.json`可支持广告设置 ### v1.2-20200425 - 解决Windows不能显示中文问题 - 更新tinyfilemanager版本 - 更新parsedown版本 - 增加使用说明显示 - 优化音乐播放器 - 其它细节优化 ### v1.2-20190528 - 去除前台删除按钮 - 手机界面添加搜索框 - 首页可开启密码验证 - 视频播放插件`video.js`替换为DPlayer - 支持音乐播放 ### v1.1-20190316 - 升级jQuery版本 - 部分静态资源改为本地调用 - 修复2处XSS漏洞 - 不再显示.php文件 - 文件夹与文件重新排序(默认文件夹在最前面) - 部分细节优化 ### v1.0-20190117 - 部分文件结构重新规划 - 增加搜索功能 - 修复一些漏洞和BUG