Lighttpd/FastCGI环境下Moin Wiki静态资源无法加载求助
问题:MoinMoin Wiki静态资源无法加载(树莓派4 + Lighttpd + FastCGI)
我在树莓派4上通过Lighttpd与FastCGI安装了MoinMoin Wiki,页面无法加载任何静态资源,显示效果如下:
补充信息
- 同一树莓派上还运行着Pi-hole
- 使用
--prefix=/usr/local参数安装Moin - Wiki实例位于
/opt/wiki - 静态文件路径为
/usr/local/lib/python2.7/dist-packages/MoinMoin/web/static/htdocs/
当前lighttpd.conf配置片段
server.modules = ( "mod_access", "mod_accesslog", "mod_auth", "mod_expire", "mod_redirect", "mod_setenv", "mod_rewrite", "mod_fastcgi" ) server.document-root = "/var/www/html" server.error-handler-404 = "/pihole/index.php" server.upload-dirs = ( "/var/cache/lighttpd/uploads" ) server.errorlog = "/var/log/lighttpd/error-pihole.log" server.pid-file = "/run/lighttpd.pid" server.username = "www-data" server.groupname = "www-data" ... $HTTP["url"] =~ "^/wiki/" { fastcgi.server += ( "/" = (( "socket" = "/tmp/moin.socket", "min-procs" = 1, "max-procs" = 2, "check-local" = "disable", "bin-path" = "/opt/wiki/moin.fcgi", "fix-root-scriptname" = "enable" )) ) alias.url += ( "/moin_static1911" = "/usr/local/lib/python2.7/dist-packages/MoinMoin/web/static/htdocs/") }
解决方法
修正静态资源别名作用范围
当前alias.url配置被包裹在/wiki/路径匹配块里,但MoinMoin生成的静态资源路径是/moin_static1911/...,不在/wiki/前缀下,导致Lighttpd无法触发别名规则。把alias.url移到匹配块外全局生效:alias.url += ( "/moin_static1911" = "/usr/local/lib/python2.7/dist-packages/MoinMoin/web/static/htdocs/") $HTTP["url"] =~ "^/wiki/" { fastcgi.server += ( "/" = (( "socket" = "/tmp/moin.socket", "min-procs" = 1, "max-procs" = 2, "check-local" = "disable", "bin-path" = "/opt/wiki/moin.fcgi", "fix-root-scriptname" = "enable" )) ) }检查静态文件权限
确保www-data用户能读取静态资源目录:sudo chown -R www-data:www-data /usr/local/lib/python2.7/dist-packages/MoinMoin/web/static/htdocs/ sudo chmod -R 755 /usr/local/lib/python2.7/dist-packages/MoinMoin/web/static/htdocs/排除Pi-hole的404规则干扰
全局404规则会把静态资源的错误请求转到Pi-hole,可针对静态资源路径排除该规则:$HTTP["url"] !~ "^/moin_static1911/" { server.error-handler-404 = "/pihole/index.php" }重启Lighttpd生效配置
sudo systemctl restart lighttpd
内容的提问来源于stack exchange,提问作者peugas
相关产品推荐
相关产品推荐

