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

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

发布于:2020-5-5 最后更新:2020-6-21 Docker 28条评论 20,668 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获取。

其它


回复 xiaoz 取消回复

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


已有28条评论


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

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

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

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

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

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

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

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

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

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

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