diff --git a/openwrt/package/lighttpd/Config.in b/openwrt/package/lighttpd/Config.in index f1b7f1e2ef..992cecbfce 100644 --- a/openwrt/package/lighttpd/Config.in +++ b/openwrt/package/lighttpd/Config.in @@ -32,6 +32,12 @@ config BR2_PACKAGE_LIGHTTPD_MOD_CGI tristate default m if CONFIG_DEVEL +config BR2_PACKAGE_LIGHTTPD_MOD_EXPIRE + depends BR2_PACKAGE_LIGHTTPD + prompt "...-mod-expire - Expire module" + tristate + default m if CONFIG_DEVEL + config BR2_PACKAGE_LIGHTTPD_MOD_FASTCGI depends BR2_PACKAGE_LIGHTTPD prompt "...-mod-fastcgi - FastCGI module" @@ -68,6 +74,12 @@ config BR2_PACKAGE_LIGHTTPD_MOD_SIMPLE_VHOST tristate default m if CONFIG_DEVEL +config BR2_PACKAGE_LIGHTTPD_MOD_SSI + depends BR2_PACKAGE_LIGHTTPD + prompt "...-mod-ssi - SSI module" + tristate + default m if CONFIG_DEVEL + config BR2_PACKAGE_LIGHTTPD_MOD_STATUS depends BR2_PACKAGE_LIGHTTPD prompt "...-mod-status - Server status display module" diff --git a/openwrt/package/lighttpd/Makefile b/openwrt/package/lighttpd/Makefile index c047b7a661..b5a4e3dd9c 100644 --- a/openwrt/package/lighttpd/Makefile +++ b/openwrt/package/lighttpd/Makefile @@ -3,9 +3,9 @@ include $(TOPDIR)/rules.mk PKG_NAME:=lighttpd -PKG_VERSION:=1.4.2 +PKG_VERSION:=1.4.4 PKG_RELEASE:=1 -PKG_MD5SUM:=c26eea734490129a45e465ac0f327e4a +PKG_MD5SUM:=0142f34549cf326d1ee3631be665482f PKG_SOURCE_URL:=http://www.lighttpd.net/download/ PKG_SOURCE:=$(PKG_NAME)-$(PKG_VERSION).tar.gz @@ -19,8 +19,8 @@ include $(TOPDIR)/package/rules.mk define PKG_mod_template $$(IPKG_$(1)): - install -d -m0755 $$(IDIR_$(1))/usr/lib - install -m0755 $(PKG_INSTALL_DIR)/usr/lib/mod_$(2).so $$(IDIR_$(1))/usr/lib/ + install -d -m0755 $$(IDIR_$(1))/usr/lib/lighttpd + install -m0755 $(PKG_INSTALL_DIR)/usr/lib/lighttpd/mod_$(2).so $$(IDIR_$(1))/usr/lib/lighttpd/ $(RSTRIP) $$(IDIR_$(1)) $(IPKG_BUILD) $$(IDIR_$(1)) $(PACKAGE_DIR) @@ -30,24 +30,28 @@ $(eval $(call PKG_template,LIGHTTPD,lighttpd,$(PKG_VERSION)-$(PKG_RELEASE),$(ARC $(eval $(call PKG_template,LIGHTTPD_MOD_ALIAS,lighttpd-mod-alias,$(PKG_VERSION)-$(PKG_RELEASE),$(ARCH))) $(eval $(call PKG_template,LIGHTTPD_MOD_AUTH,lighttpd-mod-auth,$(PKG_VERSION)-$(PKG_RELEASE),$(ARCH))) $(eval $(call PKG_template,LIGHTTPD_MOD_CGI,lighttpd-mod-cgi,$(PKG_VERSION)-$(PKG_RELEASE),$(ARCH))) +$(eval $(call PKG_template,LIGHTTPD_MOD_EXPIRE,lighttpd-mod-expire,$(PKG_VERSION)-$(PKG_RELEASE),$(ARCH))) $(eval $(call PKG_template,LIGHTTPD_MOD_FASTCGI,lighttpd-mod-fastcgi,$(PKG_VERSION)-$(PKG_RELEASE),$(ARCH))) $(eval $(call PKG_template,LIGHTTPD_MOD_PROXY,lighttpd-mod-proxy,$(PKG_VERSION)-$(PKG_RELEASE),$(ARCH))) $(eval $(call PKG_template,LIGHTTPD_MOD_REDIRECT,lighttpd-mod-redirect,$(PKG_VERSION)-$(PKG_RELEASE),$(ARCH))) $(eval $(call PKG_template,LIGHTTPD_MOD_REWRITE,lighttpd-mod-rewrite,$(PKG_VERSION)-$(PKG_RELEASE),$(ARCH))) $(eval $(call PKG_template,LIGHTTPD_MOD_SETENV,lighttpd-mod-setenv,$(PKG_VERSION)-$(PKG_RELEASE),$(ARCH))) $(eval $(call PKG_template,LIGHTTPD_MOD_SIMPLE_VHOST,lighttpd-mod-simple-vhost,$(PKG_VERSION)-$(PKG_RELEASE),$(ARCH))) +$(eval $(call PKG_template,LIGHTTPD_MOD_SSI,lighttpd-mod-ssi,$(PKG_VERSION)-$(PKG_RELEASE),$(ARCH))) $(eval $(call PKG_template,LIGHTTPD_MOD_STATUS,lighttpd-mod-status,$(PKG_VERSION)-$(PKG_RELEASE),$(ARCH))) $(eval $(call PKG_template,LIGHTTPD_MOD_USERTRACK,lighttpd-mod-usertrack,$(PKG_VERSION)-$(PKG_RELEASE),$(ARCH))) $(eval $(call PKG_mod_template,LIGHTTPD_MOD_ALIAS,alias)) $(eval $(call PKG_mod_template,LIGHTTPD_MOD_AUTH,auth)) $(eval $(call PKG_mod_template,LIGHTTPD_MOD_CGI,cgi)) +$(eval $(call PKG_mod_template,LIGHTTPD_MOD_EXPIRE,expire)) $(eval $(call PKG_mod_template,LIGHTTPD_MOD_FASTCGI,fastcgi)) $(eval $(call PKG_mod_template,LIGHTTPD_MOD_PROXY,proxy)) $(eval $(call PKG_mod_template,LIGHTTPD_MOD_REDIRECT,redirect)) $(eval $(call PKG_mod_template,LIGHTTPD_MOD_REWRITE,rewrite)) $(eval $(call PKG_mod_template,LIGHTTPD_MOD_SETENV,setenv)) $(eval $(call PKG_mod_template,LIGHTTPD_MOD_SIMPLE_VHOST,simple_vhost)) +$(eval $(call PKG_mod_template,LIGHTTPD_MOD_SSI,ssi)) $(eval $(call PKG_mod_template,LIGHTTPD_MOD_STATUS,status)) $(eval $(call PKG_mod_template,LIGHTTPD_MOD_USERTRACK,usertrack)) @@ -55,32 +59,45 @@ $(PKG_BUILD_DIR)/.configured: (cd $(PKG_BUILD_DIR); rm -rf config.{cache,status} ; \ $(TARGET_CONFIGURE_OPTS) \ CFLAGS="$(TARGET_CFLAGS)" \ - CPPFLAGS="-I$(STAGING_DIR)/usr/include" \ - LDFLAGS="-L$(STAGING_DIR)/usr/lib" \ + CPPFLAGS="-I$(STAGING_DIR)/usr/include -I$(STAGING_DIR)/include" \ + LDFLAGS="-L$(STAGING_DIR)/usr/lib -L$(STAGING_DIR)/lib" \ PCRE_LIB="-lpcre" \ + PKG_CONFIG_PATH="$(STAGING_DIR)/usr/lib/pkgconfig" \ ./configure \ - --target=$(GNU_TARGET_NAME) \ - --host=$(GNU_TARGET_NAME) \ - --build=$(GNU_HOST_NAME) \ - --program-prefix="" \ - --program-suffix="" \ - --prefix=/usr \ - --exec-prefix=/usr \ - --bindir=/usr/bin \ - --datadir=/usr/share \ - --includedir=/usr/include \ - --infodir=/usr/share/info \ - --libdir=/usr/lib \ - --libexecdir=/usr/lib \ - --localstatedir=/var \ - --mandir=/usr/share/man \ - --sbindir=/usr/sbin \ - --sysconfdir=/etc \ - $(DISABLE_LARGEFILE) \ - $(DISABLE_NLS) \ - --enable-shared \ - --enable-static \ - --with-openssl="$(STAGING_DIR)/usr" \ + --target=$(GNU_TARGET_NAME) \ + --host=$(GNU_TARGET_NAME) \ + --build=$(GNU_HOST_NAME) \ + --program-prefix="" \ + --program-suffix="" \ + --prefix=/usr \ + --exec-prefix=/usr \ + --bindir=/usr/bin \ + --datadir=/usr/share \ + --includedir=/usr/include \ + --infodir=/usr/share/info \ + --libdir=/usr/lib/lighttpd \ + --libexecdir=/usr/lib \ + --localstatedir=/var \ + --mandir=/usr/share/man \ + --sbindir=/usr/sbin \ + --sysconfdir=/etc/lighttpd \ + $(DISABLE_LARGEFILE) \ + $(DISABLE_NLS) \ + --enable-shared \ + --enable-static \ + --disable-rpath \ + --without-attr \ + --without-bzip2 \ + --without-fam \ + --without-gdbm \ + --without-ldap \ + --without-lua \ + --without-memcache \ + --without-mysql \ + --with-openssl="$(STAGING_DIR)/usr" \ + --with-pcre \ + --without-valgrind \ + --without-webdav-props \ ) touch $@ @@ -99,6 +116,10 @@ $(IPKG_LIGHTTPD): install -m0644 ./files/lighttpd.default $(IDIR_LIGHTTPD)/etc/default/lighttpd install -m0755 -d $(IDIR_LIGHTTPD)/etc/init.d install -m0755 ./files/lighttpd.init $(IDIR_LIGHTTPD)/etc/init.d/lighttpd + install -m0755 -d $(IDIR_LIGHTTPD)/usr/lib/lighttpd + for m in dirlisting indexfile staticfile; do \ + cp -fpR $(PKG_INSTALL_DIR)/usr/lib/lighttpd/mod_$$m.so $(IDIR_LIGHTTPD)/usr/lib/lighttpd/ ; \ + done install -m0755 -d $(IDIR_LIGHTTPD)/usr/sbin cp -fpR $(PKG_INSTALL_DIR)/usr/sbin/lighttpd $(IDIR_LIGHTTPD)/usr/sbin/ $(RSTRIP) $(IDIR_LIGHTTPD) diff --git a/openwrt/package/lighttpd/files/lighttpd.conf b/openwrt/package/lighttpd/files/lighttpd.conf index 28f9e28f87..6e5137740e 100644 --- a/openwrt/package/lighttpd/files/lighttpd.conf +++ b/openwrt/package/lighttpd/files/lighttpd.conf @@ -4,65 +4,83 @@ # all other module should only be loaded if really neccesary # - saves some time # - saves memory -#server.modules = ( -# "mod_rewrite", -# "mod_redirect", -# "mod_auth", -# "mod_status", -# "mod_simple_vhost", -# "mod_evhost", -# "mod_cgi", -# "mod_compress", -# "mod_ssi", -# "mod_usertrack" +#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" #) ## a static document-root, for virtual-hosting take look at the ## server.virtual-* options -server.document-root = "/www/" +server.document-root = "/www/" ## where to send error-messages to -# server.errorlog = "/var/log/lighttpd/error.log" +#server.errorlog = "/var/log/lighttpd/error.log" -# files to check for if .../ is requested -server.indexfiles = ( "index.html", "default.html", - "index.htm", "default.htm" ) +## 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", - ".css" => "text/css", - ".html" => "text/html", - ".htm" => "text/html", - ".js" => "text/javascript", - ".txt" => "text/plain", - ".dtd" => "text/xml", - ".xml" => "text/xml" +## 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", + ".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" +## 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 +#server.port = 81 ## bind to localhost (default: all interfaces) -#server.bind = "grisu.home.kneschke.de" +#server.bind = "localhost" ## error-handler for status 404 -#server.error-handler-404 = "/error-handler.html" -#server.error-handler-404 = "/error-handler.php" +#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 @@ -74,102 +92,126 @@ mimetype.assign = ( ## 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/" +#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-" +#server.errorfile-prefix = "/www/error-" ## virtual directory listings -#server.dir-listing = "enable" +#server.dir-listing = "enable" ## send unhandled HTTP-header headers to error-log -#debug.dump-unknown-headers = "enable" +#debug.dump-unknown-headers = "enable" ### only root can use these options # # chroot() to directory (default: no chroot() ) -#server.chroot = "/" +#server.chroot = "/" ## change uid to (default: don't care) -#server.username = "nobody" +#server.username = "nobody" ## change uid to (default: don't care) -#server.groupname = "nobody" - -## to help the rc.script -#server.pid-file = "/var/run/lighttpd.pid" +#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" => -# ( "grisu" => -# ( -# "host" => "192.168.2.10", -# "port" => 1026 -# ) -# ) -# ) +#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" ) -# +#cgi.assign = ( ".pl" => "/usr/bin/perl", ".cgi" => "/usr/bin/perl" ) #### SSL engine -#ssl.engine = "enable" -#ssl.pemfile = "server.pem" +#ssl.engine = "enable" +#ssl.pemfile = "server.pem" #### status module -# status.status-url = "/server-status" -# status.config-url = "/server-config" +#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" -# ) -# ) +#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" ) +#url.rewrite = ( "^/$" => "/server-status" ) +#url.redirect = ( "^/wishlist/(.+)" => "http://www.123.org/$1" ) -# -# define a pattern for the host url finding -# %% => % sign -# %0 => domain name + tld -# %1 => tld -# %2 => domain name without tld -# %3 => subdomain 1 name -# %4 => subdomain 2 name -# -# evhost.path-pattern = "/home/storage/dev/www/%3/htdocs/" +#### 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") +#expire.url = ( "/buggy/" => "access 2 hours", "/asdhas/" => "access plus 1 seconds 2 minutes") #### ssi -# ssi.extension = ( ".shtml" ) +#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") + +#### include +#include /etc/lighttpd/lighttpd-inc.conf +## same as above if you run: "lighttpd -f /etc/lighttpd/lighttpd.conf" +#include "lighttpd-inc.conf" + +#### include_shell +#include_shell "echo var.a=1" +## the above is same as: +#var.a=1 diff --git a/openwrt/package/lighttpd/ipkg/lighttpd-mod-expire.control b/openwrt/package/lighttpd/ipkg/lighttpd-mod-expire.control new file mode 100644 index 0000000000..291dea0209 --- /dev/null +++ b/openwrt/package/lighttpd/ipkg/lighttpd-mod-expire.control @@ -0,0 +1,9 @@ +Package: lighttpd-mod-expire +Priority: optional +Section: net +Version: [TBDL] +Architecture: [TBDL] +Maintainer: Nico +Source: http://openwrt.org/cgi-bin/viewcvs.cgi/openwrt/package/lighttpd/ +Description: Expire module for lighttpd +Depends: lighttpd diff --git a/openwrt/package/lighttpd/ipkg/lighttpd-mod-ssi.control b/openwrt/package/lighttpd/ipkg/lighttpd-mod-ssi.control new file mode 100644 index 0000000000..f5204c45a4 --- /dev/null +++ b/openwrt/package/lighttpd/ipkg/lighttpd-mod-ssi.control @@ -0,0 +1,9 @@ +Package: lighttpd-mod-ssi +Priority: optional +Section: net +Version: [TBDL] +Architecture: [TBDL] +Maintainer: Nico +Source: http://openwrt.org/cgi-bin/viewcvs.cgi/openwrt/package/lighttpd/ +Description: SSI module for lighttpd +Depends: lighttpd