server:lighttpd

Unterschiede

Hier werden die Unterschiede zwischen zwei Versionen angezeigt.

Link zu dieser Vergleichsansicht

Beide Seiten der vorigen Revision Vorhergehende Überarbeitung
Nächste Überarbeitung
Vorhergehende Überarbeitung
server:lighttpd [2007/08/10 22:45] stserver:lighttpd [2011/02/01 15:19] (aktuell) – [Zugriffsschutz für Verzeichnisse] st
Zeile 1: Zeile 1:
 +====== lighttpd ======
 +[[wpde>Lighttpd]] (auch: Lighty) ist ein auf Schnelligkeit (insbesondere bei vielen Benutzern und groeßn Dateien) optimierter [[server:Webserver]] unter der [[wpde>BSD-Lizenz]]. Er implementiert alle wichtigen Funktionen eines [[server:Webserver|Webservers]] und kann, ähnlich wie Apache, durch Module erweitert werden. 
 + 
  
 +
 +
 +
 +===== Links =====
 +  * [[http://www.lighttpd.net/|lighttpd Homepage]]
 +  * [[http://apassant.net/blog/post/2006/02/11/65-dokuwiki-url-rewriting-in-lighttpd|(DokuWiki) URL rewriting in LightTPD]]
 +  * [[http://www.onlamp.com/pub/a/onlamp/2007/04/05/the-lighttpd-web-server.html|The lighttpd Web Server]]
 +  * [[http://www.ircmaxell.com/articles/hosting/lighttpd-and-joomla---a-how-to.html|Lighttpd and Joomla - A How To]]
 +  * [[http://www.howtoforge.com/lighttpd_php5_mysql_centos5.0|Installing Lighttpd With PHP5 And MySQL Support On CentOS 5.0]]
 +  * [[http://www.howtoforge.com/lighttpd_php5_mysql_fedora7|Installing Lighttpd With PHP5 And MySQL Support On Fedora 7]]
 +
 +===== Konfiguration =====
 +
 +  * [[http://trac.lighttpd.net/trac/browser/tags/lighttpd-1.4.11/doc/lighttpd.conf?rev=latest|Musterkonfiguration]]
 +  * [[http://trac.lighttpd.net/trac/wiki/Docs%3AConfiguration|Configuration File]]
 +  * [[http://trac.lighttpd.net/trac/wiki/Docs%3AConfigurationOptions|Configuration File Options]]
 +
 +Den Server nur auf localhost antworten lassen:
 +  server.bind = "localhost"
 +alternativ 
 +
 +==== PHP5 ====
 +lighttpd unter [[linux:Linux]] (Debian) mit [[programmiersprachen:PHP]] und (Fast-)CGI einrichten: [[http://trac.lighttpd.net/trac/wiki/TutorialLighttpdAndPHP|Setting up PHP with Lighttpd]]
 +
 +Anmerkung: PHP4 geht auch, der Support läuft aber Ende des Jahres 2007 sowieso aus.
 +
 +  - Da PHP5 von "lighty" als (Fast-)cgi benutzt wird, muss bereits das Paket php5-cgi installiert sein.
 +  - Jetzt kann das Modul fastcgi aktiviert werden: <code> lighty-enable-mod fastcgi </code>
 +  - Der Standardpfad für php-cgi läuft erstmal auf das alte PHP4-Verzeichnis (/usr/bin/php4-cgi), da muss geändert werden: Die Konfiguration [[http://trac.lighttpd.net/trac/wiki/TutorialLighttpdAndPHP#Configuration|wie auf der Webseite aufgeführt]] ist durch den vorherigen Befehl bereits im Verzeichnis ''/etc/lighttpd/conf-enabled'' abgelegt. Diese Datei muss nur noch abgeändert werden: Die bin-path-Zeile muss so aussehen: <file>"bin-path" => "/usr/bin/php5-cgi",</file>
 +  - <file>cgi.fix_pathinfo = 1</file> muss an die Datei ''/etc/php5/cgi/php.ini'' angehängt werden.
 +  - danach muss ein Reload der Konfiguration durchgeführt werden: <code>/etc/init.d/lighttpd force-reload</code>
 +
 +
 +
 +
 +
 +==== virtuelle Hosts ====
 +Mit dem Modul [[http://trac.lighttpd.net/trac/wiki/Docs%3AModSimpleVhost|mod_simple_vhost]] konstruiert lighty die virtuellen Server aus den folgenden drei Werten:
 +    * server-root : das Hauptverzeichnis für den Webserver
 +    * hostname : der Domänenname
 +    * document-root : das Verzeichnis, das die Webseiten enthält
 +nach dem Schema server-root + hostname + document-root (also etwa 
 +''server-root + default-host + document-root'' oder falls dieses Verzeichnis nicht existiert: ''server-root + default-host + document-root'').
 +
 +
 +<file>
 +simple-vhost.server-root = "/var/www/server/"
 +simple-vhost.default-host = "beispiel.de"
 +simple-vhost.document-root = "seiten"
 +</file>
 +ergibt dann /var/www/server/beispiel.de/seiten
 +
 +:!: Die Ablageorte der Homeverzeichnisse virtueller Hosts [[http://trac.lighttpd.net/trac/wiki/Docs%3AModMySQLVhost|mod_mysql_vhost]]) lassen sich auch [[http://trac.lighttpd.net/trac/wiki/Docs%3AModMySQLVhost|in einer Datenbank ablegen]].
 +
 +[[http://trac.lighttpd.net/trac/wiki/Docs%3AModEVhost|Enhanced Virtual-Hosting]]
 +
 +:!: Achtung: Die Errorlogs für virtuelle Verzeichnisse bleiben bei Bedingungen (Conditionals) immer am letzten angegebenen Errorlog hängen (siehe http://trac.lighttpd.net/trac/ticket/665|#665 server.errorlog is not conditionals).
 +
 +=== namensbasierte virtuelle Server ===
 +<code>
 +$HTTP["host"] =~ "(^|\.)george-weasley.com$" {
 +    server.document-root = "/var/www/vhosts/george-weasley.com/html"
 +    server.errorlog = "/var/www/vhosts/george-weasley.com/logs/error_log"
 +    accesslog.filename = "/var/www/vhosts/george-weasley.com/logs/access_log"
 +    fastcgi.server = ( ".php" =>
 +                       (
 +                          ( "socket" => "/var/www/fastcgi/george/george.socket",
 +                            "broken-scriptfilename" => "enable"
 +                          )
 +                        )
 +                      )
 +</code>
 +
 +
 +=== IP-basierte virtuelle Server ===
 +FIXME
 +
 +<code>
 +$SERVER["socket"] == "203.20.113.50:80" {
 +        server.document-root = "/var/www/bccycles/"
 +        accesslog.filename = "/var/log/lighttpd/bccycles-access.log"
 +}
 +</code>
 +
 +=== port-basierte virtuelle Server ===
 +FIXME
 +
 +
 +==== Zugriffsschutz für Verzeichnisse ====
 +FIXME
 +[[http://trac.lighttpd.net/trac/wiki/Docs%3AModAuth|Using Authentication (mod_auth)]]
 +
 +<file>
 +auth.backend = "htpasswd"
 +auth.backend.htpasswd.userfile = "/pfad/zu/deiner/htpasswd"
 +auth.require = ( "/" =>
 +                     (
 +                        "method" => "basic",
 +                        "realm" => "Sesam öffne dich",
 +                        "require" => "valid-user"
 +
 +                     )
 +             )
 +</file>
 +
 +Alternativ kann auch ein bestimmter Benutzer gefordert werden: <file>"require" => "user=deinusername"</file>
 +
 +Oder man schreibt eine einzelne Verbotszeile:
 +<file>
 +    $HTTP["url"] =~ "^" + var.dokudir + "/geheimes_verzeichnis/" { url.access-deny = ( "" ) }
 +</file>
 +
 +==== Zugriff auf MySQL ====
 +FIXME
 +
 +==== SSL-Zertifikate ====
 +
 +Über SSL kann man verschlüsselte Verbindungen zum Webserver aufbauen. Dazu musss das Paket openssl installiert und das Modul ssl aktiviert werden:
 +  sudo lighty-enable-mod ssl
 +
 +Besitzt man ein gültiges SSL-Zertifikat, so sollte man es nach ''/etc/lighttpd/server.pem'' kopieren. Möchte man einen individuellen Pfad nutzen, so kann man diesen in der Datei ''/etc/lighttpd/conf-available/10-ssl.conf'' setzen. Natürlich kann man sich auch ein [[apache:ssl#ein_selbst_signiertes_self-signed_zertifikat_erstellen|selbst-signiertes SSL-Zertifikat]] durch
 +<code>
 +cd /etc/lighttpd
 +sudo openssl req -new -x509 -keyout server.pem -out server.pem -days 365 -nodes
 +</code>
 +erstellen.
 +
 +===== Kompression =====
 +
 +Auch zur on-the-fly Komprimierung gibt es bereits ein Modul "mod_compress" beim lighttpd, dass noch wie fcgi und simple_vhost durch entfernen des Kommentarzeichens (#) aktiviert werden muss.
 +
 +Die folgende Zeile existiert bereits im Konfigfile:
 +
 +<code>
 +#compress.filetype           = ("text/plain", "text/html")
 +</code>
 +
 +Sie kann natürlich um typische Dateitypen erweitert werden:
 +
 +<code>
 +compress.filetype           = (
 +                      "text/plain",
 +                      "text/html",
 +                      "text/javascript",
 +                      "text/css",
 +                      "text/xml"
 +)
 +</code>
 +
 +Und, wie sollte es anders sein, auch hier natürlich noch ein Neustart:
 +
 +<code>
 +/etc/init.d/lighttpd restart
 +</code>
 +
 +Doku unter http://trac.lighttpd.net/trac/wiki/Docs%3AModCompress
 +
 +
 +[[http://www.debianhowto.de/doku.php/de:howtos:sarge:lighttpd#Komprimierung|Quelle]] 
 +
 +==== Verzeichnislisting ====
 +FIXME
 +
 +==== RRD ====
 +FIXME
 +
 +
 +==== Log-Dateien und Auswertung ====
 +Wer das Logformat combined (u.a. Voraussetzung für einige Statistikprogramme) nutzen möchte, fügt folgende Zeile in der Konfigurationsdatei ein
 +
 +<code>
 +accesslog.format = "%h %l %u %t \"%r\" %>s %b \"%{Referer}i\" \"%{User-Agent}i\""
 +</code>
 +
 +Auch hier natürlich noch ein Neustart:
 +
 +<code>
 +/etc/init.d/lighttpd restart
 +</code>
 +
 +Weitere Infos gibt's unter http://www.lighttpd.net/documentation/accesslog.html
 +
 +[[http://www.debianhowto.de/doku.php/de:howtos:sarge:lighttpd#logformat_combined|Quelle]] 
 +
 +===== Module =====
 +==== Userdir ====
 +Es ist es möglich, dass der Webserver auch Daten aus den Homeverzeichnisses der lokalen Benutzer auslesen kann. Dazu muss der jeweilige Benutzer ein Verzeichnis public_html in seinem Homeverzeichnis anlegen und dort dem Benutzer "www-data" des Webservers zumindest Leserechte geben. Wenn dann noch das Modul mittels
 +  sudo lighty-enable-mod userdir
 +aktiviert und der Webserver neu gestartet wurde, so können die dort hinterlegten Dateien über "http://domain.de/~benutzername/" ausgelesen werden.