Lighttpd

From AleikoumWiki

Jump to: navigation, search

L'objectif de cette page est de garder une trace de ma premiere approche de ce serveur web : lighttpd

Contents

L'Approche

Qu'est ce ?

Liens

La Mise en Place

Les Prérequis

L'Installation

Exploitation

Configuration

Ce fichier de configuration avait pour but de tester les features de bases de lighttpd :

  • faire du CGI et du FCGI
  • faire du PHP
  • tester les mod rewrite
  • tester les acces restreints (htaccess like)
# lighttpd.conf v0.1 pour lighttpd v1.4.16
# Date : 20070906
# By Erwan 'Labynocle' Ben Souiden

# Config globale
server.port = 8081
server.bind = "192.168.0.4"
server.username = "nobody"
server.groupname = "nobody"
server.follow-symlink = "enable"
server.pid-file = "/usr/local/lighttpd/logs/lighttpd.pid"
server.tag = "lighttpd v1.4.16 - on Webodev - tested by Erwan"

server.max-connections = 1024
server.max-keep-alive-requests = 16
server.max-keep-alive-idle = 15
server.max-write-idle = 360

index-file.names = ( "index.html","index.php","index.htm" )
static-file.exclude-extensions = ( ".cgi", ".pl", ".fcgi", "php" )
dir-listing.activate = "enable"
cgi.assign = (
        ".pl"  => "/usr/bin/perl",
        ".cgi" => "/usr/bin/perl"
)

# Include du fichiers comprenant toutes les assignations
# des mime-types
include "mime-types.conf"


# Modules a charger
server.modules = (
        "mod_access",
        "mod_cgi",
        "mod_accesslog",
        "mod_alias",
        "mod_rewrite",
        "mod_redirect",
        "mod_fastcgi",
        "mod_auth"
)


# Logs et Debug
server.errorlog = "/usr/local/lighttpd/logs/error-log"
accesslog.filename = "/usr/local/lighttpd/logs/access-log"
debug.log-request-header-on-error = "enable"
debug.log-file-not-found = "enable"


# Configuration pour l'authentification en htaccess style
auth.debug = 1
auth.backend = "htpasswd"
auth.backend.htpasswd.userfile = "/usr/local/httpd/conf/user-auth"

# Les URLs et authentification
server.document-root = "/usr/local/httpd/htdocs/"
alias.url = (
        "/nagios/cgi-bin" => "/usr/local/nagios/sbin",
        "/fcgi-bin" => "/usr/local/lighttpd/fast"
)
$HTTP["url"] =~ "^/nagios/cgi-bin" {
        cgi.assign = (
                ".pl"  => "/usr/bin/perl",
                ".cgi" => ""
        )
}
$HTTP["url"] =~ "^/fcgi-bin" {
        # Definition des FastCGI
        fastcgi.server = ( ".fcgi" =>
                                (
                                        (
                                          "socket"    => "/tmp/fcgi-perl.socket",
                                          "bin-path" => "/usr/local/lighttpd/fast/env.fcgi",
                                          "max-procs" => 3,
                                          "min-procs" => 1,
                                          "idle-timeout" => 120
                                        )
                                )
        )
}

#$HTTP["url"] =~ "^/glpi" {
#       fastcgi.server = ( ".php" =>
#                               (
#                                       (
#                                         "socket" => "/tmp/fcgi-php.socket",
#                                         "bin-path" => "/usr/local/bin/php",
#                                         "min-procs" => 1,
#                                         "max-procs" => 5,
#                                         "idle-timeout" => 20
#                                       )
#                               )
#       )
#}

# la difference entre le rewrite et le redirect
# est que le rewrite reste sur l'url appele par le user : il ne sait pas qu'il a ete redirige
# alors que le redirect redirige vers l'url de destination
url.rewrite-repeat = (
        # si je tape http://webodev:8081/rapide-cgi/env.pl
        # au niveau serveur c'est comme si j'executais http://webodev:8081/fcgi-bin/env.fcgi
        # mais c'est transparent pour moi qui garde dans ma barre l url http://webodev:8081/rapide-cgi/env.pl
        "(.*)env.cgi$" => "$1env.fcgi",
        "(.*)env.pl$" => "$1env.cgi",
        "^/rapide-cgi/(.*)" => "/fcgi-bin/$1"
)
url.redirect = (
        # si je tape http://webodev:8081/fast/env.fcgi
        # je suis redirige vers http://webodev:8081/fcgi-bin/env.fcgi
        # a noter que http://webodev:8081/fast/env.pl me redirige aussi sur http://webodev:8081/fcgi-bin/env.fcgi
        "^/fast/(.*)" => "/fcgi-bin/$1"
)
auth.require = (
                "/nagios/" =>
                                (
                                  "method" => "basic",
                                  "realm" => "Nagios Interface",
                                  "require" => "valid-user"
                                 )
)
Personal tools