Wiki:packages/lighttpd

lighttpd Webserver

Mit diesem Paket ist es möglich, den lighttpd Webserver zu erstellen.

Einrichtung

Um den Webserver nutzen zu können, muss ein Verzeichnis erstellt werden, in dem der lighttpd agieren kann. Dieses muss unbedingt erstellt und mit den nötigen Rechten versehen werden.


Unbedingt beachten: In dieser Anleitung wird angenommen, dass USB-root genutzt wird. Sollte USB-root nicht verwendet werden, muss auf die folgenden Verzeichnisstrukturen noch größeres Augenmerk gelegt werden. In solch einem Fall könnte /var/media/ftp/uStor01/rootfs/www eine Analogie für /www sein.


Zunächst muss eine Konsolensitzung mit dem Router bestehen, es spielt keine Rolle, ob dafür Telnet oder SSH genutzt wird.

# erstelle Webserver-Verzeichnis und setze 'rwxr-xr-x'-Rechte
mkdir /www
chmod -R 755 /www

Nun kann man im Freetz-Konfigurationsfrontend die Einstellungen für den lighttpd anpassen und übernehmen. Daraufhin wird die benötigte Verzeichnisstruktur innerhalb des Webserver-Verzeichnisses angelegt. Die Dokumente müssen im Verzeichnis /www/websites liegen. Je nach Einstellung ist der Server nun bspw. über http://fritz.box:8008 verfügbar.

Perl

Will man Perl-Skripte mit dem Webserver benutzen und den chroot-Modus benutzen, muss man sich darum kümmern, dass das Paket microperl sowie dessen Bibliotheken in die Verzeichnisstruktur des lighttpd kopiert wird.

# kopiere 'microperl' als 'perl' in das '/usr/bin'-Verzeichnis des Webservers
cp -p /usr/bin/microperl /www/usr/bin/perl

# erstelle ein Verzeichnis '/lib' für die Bibliotheken
mkdir /www/lib

# kopiere die von 'microperl' benötigten Bibliotheken in das '/lib'-Verzeichnis des Webservers
# Abhängigkeiten können mit 'ldd /usr/bin/microperl' ausgegeben werden
cp -p /lib/ld-uClibc.so.0 /www/lib
cp -p /lib/libc.so.0 /www/lib
cp -p /lib/libgcc_s.so.1 /www/lib
cp -p /lib/libm.so.0 /www/lib

Wenn neben *.cgi-Dateien auch *.pl-Dateien ausgeführt werden sollen, muss außerdem noch eine Zeile in die 'Additional'-Konfiguration von lighttpd (zu finden im Freetz-Konfigurationsmenü unter Settings'lighttpd: Additional):

# aktiviere CGI Unterstützung für *.pl-Dateien
cgi.assign += ( ".pl" => "/usr/bin/perl" )

Außerdem muss darauf geachtet werden, dass jegliche Perl-Skripte Ausführrechte haben, dies ist mit einem einfachen chmod 755 DATEI.pl zu erledigen.

Lua

make menuconfig:

  • lighttpd > build with LUA support
  • lighttpd > lighttpd Modules > include mod_magnet

Example:

  • put this in lighttpd > Additional:
server.modules += ( "mod_magnet" )
magnet.attract-physical-path-to = ( server.document-root + "/ip.lua" )
  • put this in ip.lua in your document root:
lighty.header["Content-Type"] = "text/html"
lighty.content = { "Your IP-address is: ", lighty.env["request.remote-ip"] }
return 200
  • browse to http://fritz.box:<configured port>/ip.lua

Links:

Advantage over PHP: small, fast, low memory usage, feature rich programming language.