之前我在树莓派上使用 Nginx 配合 autoindex
作为文件服务器,但它的界面太过简陋,于是找到一个 fancyindex
模块让它变得能看些。
在用的这个 Nginx 是用包管理安装的,为了防止包管理的混乱,还是用动态模块比较好,避免重新编译或者覆盖安装等。fancyindex
目前已经支持用作 Nginx 的动态模块。
首先当然是获取 fancyindex
的源码,GitHub。
¶1. 获取当前 Nginx 的信息
新编译动态模块的配置参数需要和原 Nginx 一致,否则二者不能兼容。nginx -V
得到它的版本,还有构建时的配置参数,把参数复制下来。
¶2. 构建动态模块
动态模块虽名为“动态”,但构建时仍需 Nginx 本体的源码。根据上面得到的版本,去 Nginx 官网下载对应源码并解压。
进入源码目录,运行 configure
脚本时,带上刚刚复制的配置参数,再加上 --add-dynamic-module=[fancyindex 模块源码的目录]
。
最后 make modules
只编译模块。如果 make
则将编译所有内容,显然没有必要。编译完成,模块在当前的 objs 目录下。
¶3. 载入模块
把 objs 中的模块文件拷贝出来,sudo cp objs/ngx_http_fancyindex_module.so /usr/local/lib
。
再在 nginx.conf
全局设置中加入 load_module [模块文件路径];
。
运行 sudo nginx -t
进行测试,无误的话,reload nginx 即可载入模块。
现在可以用 fancyindex
替换简陋的 autoindex
。fancyindex
还支持自定义 CSS 等,还有个现成的主题。
查看 fancyindex 的详细文档,有更多选项可以定制。