Zdir

注意,此版本已经停止维护,请前往:https://doc.xiaoz.org/books/zdir-3 查看最新版本。

介绍

Zdir是一款使用PHP开发的目录列表程序,无需数据库,安装简单,使用方便。

img

主要功能

Demo

获取捐赠版

捐赠版权益:

  1. 去除广告
  2. 允许修改底部版权
  3. 可提供一次免费技术支持

扫描下方二维码,且捐赠>=30元。扫码后通过联系我QQ获取。

img

联系我

安装

注意事项

路径说明

假如您站点根目录为/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 下载最新源码,并解压到站点根目录下的zdir文件夹
  2. zdir/config.simple.php修改为zdir/config.php
  3. 修改config.php 文件,设置网站关键词、描述等、密码等
  4. 访问您的域名测试,文件管理用户名为zdir,密码为config.php中设置的密码

源码备用下载地址https://dwz.ovh/zdirdown

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方式安装

复制下面的命令执行:

docker run --name="zdir"  \
    -d -p 1080:80 --restart=always \
    -v /tmp/zdir:/data/wwwroot/default \
    helloz/zdir

更多说明请参考:https://www.xiaoz.me/archives/14809

config.php配置文件说明

设置站点基本信息

打开config.php 配置文件

$siteinfo = array(
		"site_name"	=>	"<i class='fa fa-sitemap' aria-hidden='true'></i> xiaoz软件库",
		"title"		=>	"Zdir 实用的目录列表程序",
		"keywords"	=>	"zdir,h5ai,Directory Lister,Fdscript,目录列表,目录索引",
		"description"	=>	"Zdir是一款使用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

文件索引

为了快速找出需要的文件,Zdir提供了文件索引功能,可访问点击导航栏“文件索引”进行查看,访问该页面后可按Ctrl + F搜索文件,如下截图。

img

如果页面提示Unable to open file!,说明您的目录不可写,请自行检查目录权限,确保functions/caches该目录可读写。

为了降低资源消耗,文件索引存在24小时缓存,您可以访问index.php?c=cache&del=cache清除当前缓存并重新生成索引。

文件搜索

文件搜索功能依赖于“文件索引”,因此请先确保您的文件索引功能可以正常使用,并且已经成功生成了索引文件。然后在右上角输入搜索框进行搜索,如下截图。

img

文件管理

点击导航栏“文件管理”或者访问functions/admin.php进入,用户名为zdir,密码为config.php中设置的密码。文件管理支持上传、修改、删除等功能,如下截图。

img

删除文件(此功能已废弃)

在您访问的页面加上?admin&admin 参数,文件后面会出现删除按钮,可以对文件进行删除,如下截图。

img

删除密码是在config.php 中设置,请看删除文件设置

启用密码验证

  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作为站点用户,如果目录所属权限不正确,您应该尝试重置权限:

chown -R www:www /站点路径
无法搜索到内容?

搜索功能依赖于文件索引,如果文件索引异常,搜索功能将无法使用。

为什么文件索引显示缓存于1970年?

文件索引页面读取的缓存文件时间,由于获取时间的时候页面还未生成,故显示不正确,刷新页面即可解决。

文件管理器无法登录

需要修改php.ini文件开启PATHINFO,然后重启PHP

cgi.fix_pathinfo=1

更新日志

v2.0.0-20210809

v1.55-20210111

v1.5-20200531

v1.2-20200425

v1.2-20190528

v1.1-20190316

v1.0-20190117