当前位置: 首页 > Linux运维 > Docker > 使用Docker容器部署Zdir目录列表程序

使用Docker容器部署Zdir目录列表程序

发布于:2020-5-5 最后更新:2020-6-21 Docker 28条评论 18,436 views
本站提供Linux服务器运维,自动化脚本编写等服务,如有需要请联系博主微信:xiaozme

Zdir是一款使用PHP开发的目录列表程序,无需数据库,安装简单,使用方便。现已支持Docker方式部署,欢迎使用。

Docker手动部署(需一定运维基础)

安装Docker

请先确保您已经安装Docker,若还没有安装可参考:Linux安装Docker与Docker常用命令

Docker部署Zdir

输入下面的命令创建用户和用户组,并设置目录权限。

#创建用户和用户组
groupadd www
useradd -M -g www www -s /sbin/nologin
#设置目录权限
chown -R www:www /data/wwwroot/zdir

复制下面的命令在Docker容器中运行Zdir

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

安装完毕后访问http://IP:1080根据页面提示完成操作即可,下面的参数可以自行修改。

  • 1080:服务器所监听的端口,即Zdir访问端口
  • /data/wwwroot/default:Zdir路径
  • 默认用户名zdir,密码xiaoz.me

注意:

如果运行没有报错,但是1080无法访问,请检查防火墙或安全组是否放行1080端口:

#firewalld放行1080端口
firewall-cmd --zone=public --add-port=1080/tcp --permanent
firewall-cmd --reload

脚本一键安装

如果觉得上面的步骤过于繁琐,可通过xiaoz提供的Docker for Zdir脚本一键安装,大大简化操作步骤。

bash <(curl -Lsk https://raw.githubusercontent.com/helloxz/docker-zdir/master/zdir-install.sh)

安装的时候根据脚本提示完成设置,安装成功后看到的内容如下图:

Nginx反向代理

如果您服务器已经安装Nginx,并希望通过域名方式访问,可配置反向代理访问,配置内容如下:

server
    {
    listen          80;
    server_name     zdir.xiaoz.me;
    location / {
       proxy_pass http://127.0.0.1:1080;
       proxy_redirect off;
       proxy_set_header Host $host;
       client_max_body_size 50m;
           client_body_buffer_size 256k;
       proxy_set_header X-Real-IP $remote_addr;
       proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
       proxy_max_temp_file_size 200m;
  }

location ~ .*\.(js|css|woff|woff2|gif|jpg|jpeg|png|bmp|swf|flv|mp4|ico)?$ {
       proxy_pass http://127.0.0.1:1080;
       proxy_redirect off;
       proxy_set_header Host $host;
       proxy_set_header X-Real-IP $remote_addr;
       proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
       expires 7d;
        access_log off;
  }

}

zdir.xiaoz.me为您自己的访问域名,配置完毕后记得重启Nginx生效。

获取捐赠版

扫描下方二维码,捐赠大于30元以上可获得捐赠版,捐赠版可享受首次技术支持及去除广告,捐赠后请联系我的QQ:337003006获取。

其它


28 条评论 “使用Docker容器部署Zdir目录列表程序”

  1. JR说道:

    不用反向代理有现成配置ssl证书的吗

    1. xiaoz说道:

      可以在容器里面去修改nginx的配置也可以实现,但是不推荐。

  2. winarc说道:

    大佬请教下,在群辉的docker部署Zdir,通过群辉文件管理界面复制或上传文件到Zdir目录后,在Zdir 网页界面可以看到该文件,但显示文件无权访问,看docker日志也提示访问这个文件 permission denied,只有重启docker后才可以正常从网页下载该文件。请教下这个问题该如何解决呢?
    通过Zdir文件管理上传,发现只能上传小文件,稍大点的文件就报错nignx 500,通过其他途径上传文件发现又需要重启docker才能用。。没办法,只能跑过来请教了,谢谢!

    1. xiaoz说道:

      1. 容器需要以高权限运行,同时挂载目录需要给User权限或者guest权限
      2. php对文件大小有限制,过大的文件建议通过群晖自带的文件管理器上传

      1. winarc说道:

        多谢回复,群辉试着给了挂载目录users和guest的读取&写入权限,发现还是不行,必须重启docker后,新上传到Zdir目录下的文件才有下载权限。现在不太清楚是哪里的问题,不过无妨了,挂载的文件分享目录变化不频繁,也能接受文件上传后 重启docker这种方式。再次感谢提供这么方便的文件共享工具!

  3. Jonty说道:

    你好 想问下有人买无广告版本嘛 要是没有不如开源吧

    1. xiaoz说道:

      有少部分粉丝购买,另外这个是开源的啊,开源好几年了。

  4. lyhjh说道:

    我放在子目录里,是能读取文件了,但是下载时路径找找不到,难道读取和下载路径是两个不同的地方设置?不知道在哪里配置?

    1. xiaoz说道:

      容器部署的吗还是直接部署的?
      假如站点根目录为:wwwroot/abc.com
      那么zdir的程序在:wwwroot/abc.com/zdir
      要读取的文件放在和zdir同级下,也就是你得站点根目录,比如:wwwroot/abc.com/test

  5. Warren说道:

    IIS10的服务器,出现两个问题
    1、中文路径乱码(PHP72,用PHP56就正常)
    2、中文无法搜索

  6. tete tete说道:

    上传文件超过100M 报错 Server responded with 0 code.
    PHP NGINX 配置文件已修改

    1. xiaoz说道:

      我看了PHP限制的200M,nginx限制的1024M,大文件WEB上传不稳定,建议还是用SFTP工具上传。

  7. zw zw说道:

    如何修改密码呢?

    1. xiaoz说道:

      直接修改config.php 这个配置文件就行了。

  8. 夜影小窝说道:

    创建好后,本地共享文件夹里面没有资料。怎么回事

  9. zytyz说道:

    1.5的版本,打开文件夹后,点击上面的“..”会返回根目录,而不上返回上一级目录

    1. xiaoz说道:

      有测试地址吗?看下functions/version.txt里面的小版本号是多少呢。

      1. zytyz说道:

        噢噢,我在公司内网用的,给大家共享文件的,我不是放在根目录,然后参照1.3.2修改了home.php里的获取上一级目录,在/后面加上了index.php,现在可以了

        1. xiaoz说道:

          v1.50开始已经支持放在子目录,可以参考:https://www.yuque.com/helloz/zdir/install

          1. zytyz说道:

            好的,谢谢站长,我来学习一下

  10. yang yang说道:

    为啥点击文件管理显示404not found

    1. xiaoz说道:

      最近推送了Zdir测试版,而Docker版本拉取的最新源码,还没来得及适配,预计本周末解决。

    2. xiaoz说道:

      您好,Zdir Docker版已修复,您可以重新安装试试。

      1. harlon说道:

        19:33 5/31
        404 Not Found
        另外,可够提供 dockerfile ?

        1. xiaoz说道:

          Docker手动部署需要自行下载源码到对应目录,Dockerfile在这里:https://github.com/helloxz/docker-zdir/blob/master/Dockerfile

  11. 游客说道:

    关于文件清单功能放在apache上正常显示文件,但是在nginx上运行就没有结果,空白显示,点击清楚缓存也没有反应,会是什么原因呢?相关文件的权限也都给了还是没有缓存列表显示
    https://i.bmp.ovh/imgs/2020/05/dcb3eb0e808fd57d.png

    1. xiaoz说道:

      您是从官方下载的源码吗?感觉您这个修改过呢,之前的版本有BUG,请从这里https://github.com/helloxz/zdir 下载最新版本。

    2. 吴尚说道:

      我遇到了和你一样的问题,nginx上缓存测试了n遍都是空白

游客进行回复 取消回复

邮箱地址不会被公开。 必填项已用*标注