diff --git a/net/lighttpd/Makefile b/net/lighttpd/Makefile index 75fed64f5..6bf91441c 100644 --- a/net/lighttpd/Makefile +++ b/net/lighttpd/Makefile @@ -1,5 +1,5 @@ # -# Copyright (C) 2006-2012 OpenWrt.org +# Copyright (C) 2006-2013 OpenWrt.org # # This is free software, licensed under the GNU General Public License v2. # See /LICENSE for more information. @@ -9,12 +9,15 @@ include $(TOPDIR)/rules.mk PKG_NAME:=lighttpd PKG_VERSION:=1.4.35 -PKG_RELEASE:=2 +PKG_RELEASE:=3 PKG_SOURCE:=$(PKG_NAME)-$(PKG_VERSION).tar.xz PKG_SOURCE_URL:=http://download.lighttpd.net/lighttpd/releases-1.4.x PKG_MD5SUM:=c7ae774eab4cb7ac85e41b712f4ee9ba +PKG_LICENSE:=BSD-3c +PKG_LICENSE_FILE:=COPYING + PKG_FIXUP:=autoreconf PKG_INSTALL:=1 @@ -46,180 +49,6 @@ config LIGHTTPD_SSL lighttpd confguration file. endef -define Package/lighttpd-mod-access - $(call Package/lighttpd/Default) - DEPENDS:=lighttpd - TITLE:=Access restrictions module -endef - -define Package/lighttpd-mod-accesslog - $(call Package/lighttpd/Default) - DEPENDS:=lighttpd - TITLE:=Access logging module -endef - -define Package/lighttpd-mod-alias - $(call Package/lighttpd/Default) - DEPENDS:=lighttpd - TITLE:=Directory alias module -endef - -define Package/lighttpd-mod-auth - $(call Package/lighttpd/Default) - DEPENDS:=lighttpd - TITLE:=Authentication module -endef - -define Package/lighttpd-mod-cgi - $(call Package/lighttpd/Default) - DEPENDS:=lighttpd - TITLE:=CGI module -endef - -define Package/lighttpd-mod-cml - $(call Package/lighttpd/Default) - DEPENDS:=lighttpd - TITLE:=Cache Meta Language module -endef - -define Package/lighttpd-mod-compress - $(call Package/lighttpd/Default) - DEPENDS:=lighttpd +zlib - TITLE:=Compress output module -endef - -define Package/lighttpd-mod-evasive - $(call Package/lighttpd/Default) - DEPENDS:=lighttpd - TITLE:=Evasive module -endef - -define Package/lighttpd-mod-evhost - $(call Package/lighttpd/Default) - DEPENDS:=lighttpd - TITLE:=Exnhanced Virtual-Hosting module -endef - -define Package/lighttpd-mod-expire - $(call Package/lighttpd/Default) - DEPENDS:=lighttpd - TITLE:=Expire module -endef - -define Package/lighttpd-mod-extforward - $(call Package/lighttpd/Default) - DEPENDS:=lighttpd - TITLE:=Extract client IP module -endef - -define Package/lighttpd-mod-fastcgi - $(call Package/lighttpd/Default) - DEPENDS:=lighttpd - TITLE:=FastCGI module -endef - -define Package/lighttpd-mod-flv-streaming - $(call Package/lighttpd/Default) - DEPENDS:=lighttpd - TITLE:=flv streaming module -endef - -define Package/lighttpd-mod-magnet - $(call Package/lighttpd/Default) - DEPENDS:=lighttpd - TITLE:=magnet module -endef - -define Package/lighttpd-mod-mysql-vhost - $(call Package/lighttpd/Default) - DEPENDS:=lighttpd +libmysqlclient - TITLE:=Mysql virtual hosting module -endef - -define Package/lighttpd-mod-proxy - $(call Package/lighttpd/Default) - DEPENDS:=lighttpd - TITLE:=Proxy module -endef - -define Package/lighttpd-mod-redirect - $(call Package/lighttpd/Default) - DEPENDS:=lighttpd +libpcre - TITLE:=URL redirection module -endef - -define Package/lighttpd-mod-rewrite - $(call Package/lighttpd/Default) - DEPENDS:=lighttpd +libpcre - TITLE:=URL rewriting module -endef - -define Package/lighttpd-mod-rrdtool - $(call Package/lighttpd/Default) - DEPENDS:=lighttpd - TITLE:=rrdtool module -endef - -define Package/lighttpd-mod-scgi - $(call Package/lighttpd/Default) - DEPENDS:=lighttpd - TITLE:=SCGI module -endef - -define Package/lighttpd-mod-secdownload - $(call Package/lighttpd/Default) - DEPENDS:=lighttpd - TITLE:=Secure and fast download module -endef - -define Package/lighttpd-mod-setenv - $(call Package/lighttpd/Default) - DEPENDS:=lighttpd - TITLE:=Environment variable setting module -endef - -define Package/lighttpd-mod-simple-vhost - $(call Package/lighttpd/Default) - DEPENDS:=lighttpd - TITLE:=Simple virtual hosting module -endef - -define Package/lighttpd-mod-ssi - $(call Package/lighttpd/Default) - DEPENDS:=lighttpd +libpcre - TITLE:=SSI module -endef - -define Package/lighttpd-mod-status - $(call Package/lighttpd/Default) - DEPENDS:=lighttpd - TITLE:=Server status display module -endef - -define Package/lighttpd-mod-trigger-b4-dl - $(call Package/lighttpd/Default) - DEPENDS:=lighttpd +libpcre - TITLE:=Trigger before download module -endef - -define Package/lighttpd-mod-userdir - $(call Package/lighttpd/Default) - DEPENDS:=lighttpd - TITLE:=User directory module -endef - -define Package/lighttpd-mod-usertrack - $(call Package/lighttpd/Default) - DEPENDS:=lighttpd - TITLE:=User tracking module -endef - -define Package/lighttpd-mod-webdav - $(call Package/lighttpd/Default) - DEPENDS:=lighttpd +libsqlite3 +libuuid +libxml2 - TITLE:=WebDAV module -endef - CONFIGURE_ARGS+= \ --libdir=/usr/lib/lighttpd \ --sysconfdir=/etc/lighttpd \ @@ -233,7 +62,6 @@ CONFIGURE_ARGS+= \ --without-ldap \ --without-lua \ --without-memcache \ - --without-mysql \ --with-pcre \ --without-valgrind \ $(call autoconf_bool,CONFIG_IPV6,ipv6) @@ -249,6 +77,14 @@ else --without-openssl endif +ifneq ($(SDK)$(CONFIG_PACKAGE_lighttpd-mod-mysql-vhost),) + CONFIGURE_ARGS+= \ + --with-mysql +else + CONFIGURE_ARGS+= \ + --without-mysql +endif + ifneq ($(SDK)$(CONFIG_PACKAGE_lighttpd-mod-webdav),) CONFIGURE_ARGS+= \ --with-webdav-locks \ @@ -276,6 +112,8 @@ endef define Package/lighttpd/install $(INSTALL_DIR) $(1)/etc/lighttpd $(INSTALL_DATA) ./files/lighttpd.conf $(1)/etc/lighttpd/ + $(INSTALL_DATA) $(PKG_BUILD_DIR)/doc/config/conf.d/mime.conf $(1)/etc/lighttpd/ + $(INSTALL_DIR) $(1)/etc/lighttpd/conf.d $(INSTALL_DIR) $(1)/etc/init.d $(INSTALL_BIN) ./files/lighttpd.init $(1)/etc/init.d/lighttpd $(INSTALL_DIR) $(1)/usr/lib/lighttpd @@ -287,42 +125,57 @@ define Package/lighttpd/install endef define BuildPlugin - define Package/$(1)/install - [ -z "$(2)" ] || $(INSTALL_DIR) $$(1)/usr/lib/lighttpd - for m in $(2); do \ - $(CP) $(PKG_INSTALL_DIR)/usr/lib/lighttpd/mod_$$$$$$$${m}.so $$(1)/usr/lib/lighttpd/ ; \ - done + define Package/lighttpd-mod-$(1) + $(call Package/lighttpd/Default) + DEPENDS:=lighttpd + ifneq ($(3),) + DEPENDS+= $(3) + endif + TITLE:=$(2) module endef - $$(eval $$(call BuildPackage,$(1))) + define Package/lighttpd-mod-$(1)/install + $(INSTALL_DIR) $$(1)/usr/lib/lighttpd + $(CP) $(PKG_INSTALL_DIR)/usr/lib/lighttpd/mod_$(1).so $$(1)/usr/lib/lighttpd + $(INSTALL_DIR) $$(1)/etc/lighttpd/conf.d + if [ -f $(PKG_BUILD_DIR)/doc/config/conf.d/$(1).conf ]; then \ + $(CP) $(PKG_BUILD_DIR)/doc/config/conf.d/$(1).conf $$(1)/etc/lighttpd/conf.d/$(4)-$(1).conf ; \ + else \ + echo 'server.modules += ( "mod_$(1)" )' > $$(1)/etc/lighttpd/conf.d/$(4)-$(1).conf ; \ + fi + endef + + $$(eval $$(call BuildPackage,lighttpd-mod-$(1))) endef $(eval $(call BuildPackage,lighttpd)) -$(eval $(call BuildPlugin,lighttpd-mod-access,access)) -$(eval $(call BuildPlugin,lighttpd-mod-accesslog,accesslog)) -$(eval $(call BuildPlugin,lighttpd-mod-alias,alias)) -$(eval $(call BuildPlugin,lighttpd-mod-auth,auth)) -$(eval $(call BuildPlugin,lighttpd-mod-cgi,cgi)) -$(eval $(call BuildPlugin,lighttpd-mod-cml,cml)) -$(eval $(call BuildPlugin,lighttpd-mod-compress,compress)) -$(eval $(call BuildPlugin,lighttpd-mod-evasive,evasive)) -$(eval $(call BuildPlugin,lighttpd-mod-evhost,evhost)) -$(eval $(call BuildPlugin,lighttpd-mod-expire,expire)) -$(eval $(call BuildPlugin,lighttpd-mod-extforward,extforward)) -$(eval $(call BuildPlugin,lighttpd-mod-fastcgi,fastcgi)) -$(eval $(call BuildPlugin,lighttpd-mod-flv-streaming,flv_streaming)) -$(eval $(call BuildPlugin,lighttpd-mod-magnet,magnet)) -$(eval $(call BuildPlugin,lighttpd-mod-proxy,proxy)) -$(eval $(call BuildPlugin,lighttpd-mod-redirect,redirect)) -$(eval $(call BuildPlugin,lighttpd-mod-rewrite,rewrite)) -$(eval $(call BuildPlugin,lighttpd-mod-rrdtool,rrdtool)) -$(eval $(call BuildPlugin,lighttpd-mod-scgi,scgi)) -$(eval $(call BuildPlugin,lighttpd-mod-secdownload,secdownload)) -$(eval $(call BuildPlugin,lighttpd-mod-setenv,setenv)) -$(eval $(call BuildPlugin,lighttpd-mod-simple-vhost,simple_vhost)) -$(eval $(call BuildPlugin,lighttpd-mod-ssi,ssi)) -$(eval $(call BuildPlugin,lighttpd-mod-status,status)) -$(eval $(call BuildPlugin,lighttpd-mod-trigger-b4-dl,trigger_b4_dl)) -$(eval $(call BuildPlugin,lighttpd-mod-userdir,userdir)) -$(eval $(call BuildPlugin,lighttpd-mod-usertrack,usertrack)) -$(eval $(call BuildPlugin,lighttpd-mod-webdav,webdav)) +$(eval $(call BuildPlugin,access,Access restrictions,,10)) +$(eval $(call BuildPlugin,accesslog,Access logging,,10)) +$(eval $(call BuildPlugin,alias,Directory alias,,10)) +$(eval $(call BuildPlugin,auth,Authentication,,05)) +$(eval $(call BuildPlugin,cgi,CGI,,10)) +$(eval $(call BuildPlugin,cml,Cache Meta Language,,10)) +$(eval $(call BuildPlugin,compress,Compress output,+PACKAGE_lighttpd-mod-compress:zlib,10)) +$(eval $(call BuildPlugin,evasive,Evasive,,10)) +$(eval $(call BuildPlugin,evhost,Exnhanced Virtual-Hosting,,10)) +$(eval $(call BuildPlugin,expire,Expire,,10)) +$(eval $(call BuildPlugin,extforward,Extract client,,10)) +$(eval $(call BuildPlugin,fastcgi,FastCGI,,10)) +$(eval $(call BuildPlugin,flv_streaming,FLV streaming,,10)) +$(eval $(call BuildPlugin,magnet,Magnet,,10)) +$(eval $(call BuildPlugin,mysql_vhost,Mysql virtual hosting,+PACKAGE_lighttpd-mod-mysql_vhost:libmysqlclient,10)) +$(eval $(call BuildPlugin,proxy,Proxy,,10)) +$(eval $(call BuildPlugin,redirect,URL redirection,+PACKAGE_lighttpd-mod-redirect:libpcre,10)) +$(eval $(call BuildPlugin,rewrite,URL rewriting,+PACKAGE_lighttpd-mod-rewrite:libpcre,10)) +$(eval $(call BuildPlugin,rrdtool,RRDtool,,10)) +$(eval $(call BuildPlugin,scgi,SCGI,,10)) +$(eval $(call BuildPlugin,secdownload,Secure and fast download,,10)) +$(eval $(call BuildPlugin,setenv,Environment variable setting,,10)) +$(eval $(call BuildPlugin,simple_vhost,Simple virtual hosting,,10)) +$(eval $(call BuildPlugin,ssi,SSI,+libpcre,10)) +$(eval $(call BuildPlugin,status,Server status display,,10)) +$(eval $(call BuildPlugin,trigger_b4_dl,Trigger before download,+PACKAGE_lighttpd-mod-trigger_b4_dl:libpcre,10)) +$(eval $(call BuildPlugin,userdir,User directory,,10)) +$(eval $(call BuildPlugin,usertrack,User tracking,,10)) +$(eval $(call BuildPlugin,webdav,WebDAV,+PACKAGE_lighttpd-mod-webdav:libsqlite3 +PACKAGE_lighttpd-mod-webdav:libuuid +PACKAGE_lighttpd-mod-webdav:libxml2,10)) + diff --git a/net/lighttpd/files/lighttpd.conf b/net/lighttpd/files/lighttpd.conf index 269f546ee..04b06bc3b 100644 --- a/net/lighttpd/files/lighttpd.conf +++ b/net/lighttpd/files/lighttpd.conf @@ -1,231 +1,32 @@ -# lighttpd configuration file -# -## modules to load -# all other module should only be loaded if really neccesary -# - saves some time -# - saves memory -#server.modules = ( -# "mod_rewrite", -# "mod_redirect", -# "mod_alias", -# "mod_auth", -# "mod_status", -# "mod_setenv", -# "mod_fastcgi", -# "mod_proxy", -# "mod_simple_vhost", -# "mod_cgi", -# "mod_ssi", -# "mod_usertrack", -# "mod_expire", -# "mod_webdav" -#) +server.modules = ( +) -# force use of the "write" backend (closes: #2401) -server.network-backend = "write" +server.document-root = "/www" +server.upload-dirs = ( "/tmp" ) +server.errorlog = "/var/log/lighttpd/error.log" +server.pid-file = "/var/run/lighttpd.pid" +server.username = "http" +server.groupname = "www-data" -## a static document-root, for virtual-hosting take look at the -## server.virtual-* options -server.document-root = "/www/" +index-file.names = ( "index.php", "index.html", + "index.htm", "default.htm", + "index.lighttpd.html" ) -## where to send error-messages to -#server.errorlog = "/var/log/lighttpd/error.log" - -## files to check for if .../ is requested -index-file.names = ( "index.html", "default.html", "index.htm", "default.htm" ) - -## mimetype mapping -mimetype.assign = ( - ".pdf" => "application/pdf", - ".class" => "application/octet-stream", - ".pac" => "application/x-ns-proxy-autoconfig", - ".swf" => "application/x-shockwave-flash", - ".wav" => "audio/x-wav", - ".gif" => "image/gif", - ".jpg" => "image/jpeg", - ".jpeg" => "image/jpeg", - ".png" => "image/png", - ".svg" => "image/svg+xml", - ".css" => "text/css", - ".html" => "text/html", - ".htm" => "text/html", - ".js" => "text/javascript", - ".txt" => "text/plain", - ".dtd" => "text/xml", - ".xml" => "text/xml" - ) - -## Use the "Content-Type" extended attribute to obtain mime type if possible -#mimetypes.use-xattr = "enable" - -## send a different Server: header -## be nice and keep it at lighttpd -#server.tag = "lighttpd" - -$HTTP["url"] =~ "\.pdf$" { - server.range-requests = "disable" -} - -## -# which extensions should not be handle via static-file transfer -# -# .php, .pl, .fcgi are most often handled by mod_fastcgi or mod_cgi static-file.exclude-extensions = ( ".php", ".pl", ".fcgi" ) -######### Options that are good to be but not neccesary to be changed ####### - -## bind to port (default: 80) -#server.port = 81 - -## bind to localhost (default: all interfaces) -#server.bind = "localhost" - -## error-handler for status 404 -#server.error-handler-404 = "/error-handler.html" -#server.error-handler-404 = "/error-handler.php" - -## to help the rc.scripts -server.pid-file = "/var/run/lighttpd.pid" - - -###### virtual hosts -## -## If you want name-based virtual hosting add the next three settings and load -## mod_simple_vhost -## -## document-root = -## virtual-server-root + virtual-server-default-host + virtual-server-docroot or -## virtual-server-root + http-host + virtual-server-docroot -## -#simple-vhost.server-root = "/home/weigon/wwwroot/servers/" -#simple-vhost.default-host = "grisu.home.kneschke.de" -#simple-vhost.document-root = "/pages/" - - -## -## Format: .html -## -> ..../status-404.html for 'File not found' -#server.errorfile-prefix = "/www/error-" - -## virtual directory listings -#server.dir-listing = "enable" - -## send unhandled HTTP-header headers to error-log -#debug.dump-unknown-headers = "enable" - -### only root can use these options -# -# chroot() to directory (default: no chroot() ) -#server.chroot = "/" - -## change uid to (default: don't care) -#server.username = "nobody" -# -server.upload-dirs = ( "/tmp" ) - -## change uid to (default: don't care) -#server.groupname = "nobody" - -#### compress module -#compress.cache-dir = "/dev/null/" -#compress.filetype = ("text/plain", "text/html") - -#### proxy module -## read proxy.txt for more info -#proxy.server = ( -# ".php" => ( -# "localhost" => ( -# "host" => "192.168.0.101", -# "port" => 80 -# ) -# ) -#) - -#### fastcgi module -## read fastcgi.txt for more info -#fastcgi.server = ( -# ".php" => ( -# "localhost" => ( -# "socket" => "/tmp/php-fastcgi.socket", -# "bin-path" => "/usr/local/bin/php" -# ) -# ) -#) - -#### CGI module -#cgi.assign = ( ".pl" => "/usr/bin/perl", ".cgi" => "/usr/bin/perl" ) - -#### SSL engine -#ssl.engine = "enable" -#ssl.pemfile = "server.pem" - -#### status module -#status.status-url = "/server-status" -#status.config-url = "/server-config" - -#### auth module -## read authentification.txt for more info -#auth.backend = "plain" -#auth.backend.plain.userfile = "lighttpd.user" -#auth.backend.plain.groupfile = "lighttpd.group" -#auth.require = ( -# "/server-status" => ( -# "method" => "digest", -# "realm" => "download archiv", -# "require" => "group=www|user=jan|host=192.168.2.10" -# ), -# "/server-info" => ( -# "method" => "digest", -# "realm" => "download archiv", -# "require" => "group=www|user=jan|host=192.168.2.10" -# ) -#) - -#### url handling modules (rewrite, redirect, access) -#url.rewrite = ( "^/$" => "/server-status" ) -#url.redirect = ( "^/wishlist/(.+)" => "http://www.123.org/$1" ) - -#### both rewrite/redirect support back reference to regex conditional using %n -#$HTTP["host"] =~ "^www\.(.*)" { -# url.redirect = ( "^/(.*)" => "http://%1/$1" ) -#} - -#### expire module -#expire.url = ( "/buggy/" => "access 2 hours", "/asdhas/" => "access plus 1 seconds 2 minutes") - -#### ssi -#ssi.extension = ( ".shtml" ) - -#### setenv -#setenv.add-request-header = ( "TRAV_ENV" => "mysql://user@host/db" ) -#setenv.add-response-header = ( "X-Secret-Message" => "42" ) - -#### variable usage: -## variable name without "." is auto prefixed by "var." and becomes "var.bar" -#bar = 1 -#var.mystring = "foo" - -## integer add -#bar += 1 -## string concat, with integer cast as string, result: "www.foo1.com" -#server.name = "www." + mystring + var.bar + ".com" -## array merge -#index-file.names = (foo + ".php") + index-file.names -#index-file.names += (foo + ".php") +### Options that are useful but not always necessary: +#server.chroot = "/" +#server.port = 81 +#server.bind = "localhost" +#server.tag = "lighttpd" +#server.errorlog-use-syslog = "enable" +#server.network-backend = "write" -#### include -#include /etc/lighttpd/lighttpd-inc.conf -## same as above if you run: "lighttpd -f /etc/lighttpd/lighttpd.conf" -#include "lighttpd-inc.conf" +### Use IPv6 if available +#include_shell "/usr/share/lighttpd/use-ipv6.pl" -#### include_shell -#include_shell "echo var.a=1" -## the above is same as: -#var.a=1 +#dir-listing.encoding = "utf-8" +#server.dir-listing = "enable" -#### webdav -#$HTTP["url"] =~ "^/webdav($|/)" { -# webdav.activate = "enable" -# webdav.is-readonly = "enable" -# webdav.sqlite-db-name = "/var/run/lighttpd-webdav-lock.db" -#} +include "/etc/lighttpd/mime.conf" +include_shell "cat /etc/lighttpd/conf.d/*.conf" diff --git a/net/lighttpd/files/lighttpd.init b/net/lighttpd/files/lighttpd.init index b318a023d..936c7f6c7 100644 --- a/net/lighttpd/files/lighttpd.init +++ b/net/lighttpd/files/lighttpd.init @@ -6,8 +6,11 @@ SERVICE_USE_PID=1 START=50 start() { - [ -d /var/log/lighttpd ] || mkdir -p /var/log/lighttpd - chmod 0777 /var/log/lighttpd + user_exists http || user_add http + [ -d /var/log/lighttpd ] || { + mkdir -m 0775 -p /var/log/lighttpd + chgrp www-data /var/log/lighttpd + } service_start /usr/sbin/lighttpd -f /etc/lighttpd/lighttpd.conf }