DirectoryLister 文件目录安装配置使用方法
DirectoryLister 是一个简洁文件目录程序,适合平时分享一些小文件使用。
项目地址 https://github.com/DirectoryLister/DirectoryLister
DirectoryLister 安装配置方法
1. 安装 Nginx、PHP 组件,具体可参考之前文章。
2. 创建网站目录,下载解压程序文件,配置目录权限。
# 创建网站目录并下载解压程序文件 mkdir -p /var/www/directorylister && cd /var/www/directorylister wget https://github.com/DirectoryLister/DirectoryLister/releases/download/3.12.0/DirectoryLister-3.12.0.tar.gz tar -zxvf DirectoryLister-3.12.0.tar.gz && rm -f DirectoryLister-3.12.0.tar.gz LICENSE directory-lister.svg # 设置 SELinux 读写安全上下文 semanage fcontext -a -t httpd_sys_rw_content_t "/var/www/directorylister(/.*)?" restorecon -R -v /var/www/directorylister # 将目录所有者改为 nginx 用户/组 chown -R nginx:nginx /var/www/directorylister
3. 设置好域名解析,然后申请 SSL 证书。
# 先创建简单网站配置文件 cat > /etc/nginx/conf.d/directorylister.conf << "EOF" server { listen 80; listen [::]:80; server_name file.example.com; root /var/www/directorylister; include /etc/nginx/snippets/letsencrypt-acme-challenge.conf; } EOF # 刷新 Nginx 服务使配置生效 nginx -s reload # 安装 ACME 客户端(装完后断开重连 SSH) curl https://get.acme.sh | sh # 设置默认申请 Let’s Encrypt 证书(或者设置使用 ZeroSSL 证书) acme.sh --set-default-ca --server letsencrypt # 申请 SSL 证书 acme.sh --issue -d file.example.com -w /var/www/letsencrypt # 安装 SSL 证书 acme.sh --install-cert -d file.example.com \ --key-file /etc/pki/tls/private/file.example.com.key \ --fullchain-file /etc/pki/tls/certs/file.example.com.cer \ --reloadcmd "systemctl force-reload nginx" # 生成 DH 会话密钥 openssl dhparam -out /etc/pki/tls/certs/dhparam.pem 2048
4. 修改之前创建的 /etc/nginx/conf.d/directorylister.conf
网站配置文件。
server { listen 80; listen [::]:80; server_name file.example.com; return 301 https://file.example.com$request_uri; } server { listen 443 ssl http2; listen [::]:443 ssl http2; server_name file.example.com; root /var/www/directorylister; index index.html index.htm index.php; ssl_certificate /etc/pki/tls/certs/file.example.com.cer; ssl_certificate_key /etc/pki/tls/private/file.example.com.key; ssl_dhparam /etc/pki/tls/certs/dhparam.pem; ssl_buffer_size 4k; ssl_session_timeout 10m; ssl_session_cache shared:SSL:10m; ssl_protocols TLSv1 TLSv1.1 TLSv1.2; ssl_ciphers ECDHE-ECDSA-AES128-GCM-SHA256:ECDHE-RSA-AES128-GCM-SHA256:ECDHE-ECDSA-AES256-GCM-SHA384:ECDHE-RSA-AES256-GCM-SHA384:ECDHE-ECDSA-CHACHA20-POLY1305:ECDHE-RSA-CHACHA20-POLY1305:DHE-RSA-AES128-GCM-SHA256:DHE-RSA-AES256-GCM-SHA384; ssl_prefer_server_ciphers off; ssl_stapling on; ssl_stapling_verify on; ssl_trusted_certificate /etc/pki/tls/certs/file.example.com.cer; include /etc/nginx/snippets/enable-gzip-compression.conf; access_log /var/log/nginx/file.example.com.access.log; error_log /var/log/nginx/file.example.com.error.log warn; include /etc/nginx/snippets/letsencrypt-acme-challenge.conf; location ~ /\. { deny all; } location / { try_files $uri $uri/ /index.php$is_args$args; } location = /robots.txt { log_not_found off; access_log off; } location ~* ^/(?:favicon|apple-touch-icon) { log_not_found off; access_log off; } location ~* \.(?:css(\.map)?|js(\.map)?|jpe?g|png|gif|ico|cur|heic|webp|tiff?|mp3|m4a|aac|ogg|midi?|wav|mp4|mov|webm|mpe?g|avi|ogv|flv|wmv)$ { expires 7d; log_not_found off; access_log off; } location ~* \.(?:svgz?|ttf|ttc|otf|eot|woff2?)$ { add_header Access-Control-Allow-Origin "*"; expires 7d; log_not_found off; access_log off; } include /etc/nginx/default.d/php.conf; }
然后刷新 Nginx 服务,使配置生效。
nginx -s reload
5. 至此,访问域名就可以使用了,文件上传到网站根目录下。
6. 可选自定义配置(可用参数请查看此链接)。
# 创建配置文件 mv /var/www/directorylister/.env.example /var/www/directorylister/.env # 更改语言为简中 sed -i 's|^APP_LANGUAGE=.*|APP_LANGUAGE=zh-CN|' /var/www/directorylister/.env # 将描述内容移到文件目录上方 sed -i 's|^READMES_FIRST=.*|READMES_FIRST=true|' /var/www/directorylister/.env # 关闭目录下载选项 sed -i 's|^ZIP_DOWNLOADS=.*|ZIP_DOWNLOADS=false|' /var/www/directorylister/.env # 设置 Google Analytics 网站统计 ID sed -i 's|^GOOGLE_ANALYTICS_ID=.*|GOOGLE_ANALYTICS_ID=UA-123456789-0|' /var/www/directorylister/.env # 关闭计算文件哈希值 echo "MAX_HASH_SIZE=0" >> /var/www/directorylister/.env # 设置网站 meta 描述内容 echo "META_DESCRIPTION=用一段话描述网站主题内容" >> /var/www/directorylister/.env # 设置网站名称 echo "SITE_TITLE=测试站点" >> /var/www/directorylister/.env
7. 以下是一些主题文件修改,记得 rm -rf /var/www/directorylister/app/cache/*
删除缓存内容才能看到修改效果。
# 引入资源模板文件(修改 Favicon 图标路径、引入自定义资源等) /var/www/directorylister/app/views/layouts/app.twig # 主题样式文件(去除 Google 字体等) /var/www/directorylister/app/assets/app.css # 页眉模板文件(修改 Logo 图标等) /var/www/directorylister/app/views/components/header.twig # 页脚模板文件(修改版权信息等) /var/www/directorylister/app/views/components/footer.twig # 用关键字搜索模板文件位置 find /var/www/directorylister/app -type f -name '*.twig' | xargs grep -l "xxxxxxx"
8. 如果要隐藏文件,在根目录下创建 .hidden
配置文件指定(DirectoryLister 默认隐藏了程序文件和 .
开头文件和目录)。
例如下面设置隐藏 favicon.ico
和 robots.txt
文件(设置语法请参考此链接)。
cat > /var/www/directorylister/.hidden << "EOF" robots.txt favicon.ico EOF