[Article] Configurer lighttpd (lighty) avec php5

WRInaute occasionnel
Bonjour,

Je vais essayer de vous présenter ici comment on peut, pour des raisons de performances, remplacer apache par lighty et bien sur en continuant d'utiliser php5 et mysql :p

Mon serveur est libre en ce moment si yen a qui ont des tests a proposé pour comparer a apache ...

Alors au niveau de l'installation sous debian j'ai utilisé les paquets : lighttpd et php5-cgi

Maintenant au niveau de la configuration ...

Personnellement j'ai tout mes sites dans le dossier /var/www

Je prend un exemple pour le sous-domaine : forum.domaine.fr

Avec la configuration de lighty que je vous propose vous avez juste a creer le dossier : /var/www/domaine.fr/forum/

Ça évite de retoucher la configuration et ça évite d'avoir une longue liste de vhosts

La mise en place se résume à l'édition du fichier /etc/lighttpd/lighttpd.conf

Voici le mien commenté ;)

# Debian lighttpd configuration file
# 16-01-2008

#Les différents mods
#mod_fastcgi > pour php5-cgi
#mod_evasive > Permet de renvoyer une erreur 403 en cas frequence de requetes trop élevées
#mod_evasive > Permet d'avoir une page de stat sur le serveur lighttpd
#mod_redirect> Permet de faire des redirections/re-écriture d'url

server.modules = (
"mod_access",
"mod_alias",
"mod_fastcgi",
"mod_evasive",
"mod_accesslog",
"mod_status",
"mod_evhost",
"mod_redirect",
# "mod_compress",
# "mod_rewrite",
# "mod_usertrack",
# "mod_rrdtool",
# "mod_webdav",
# "mod_expire",
# "mod_flv_streaming",
# "mod_secdownload",
)

#repertoire contenant les dossiers des sites webs
server.document-root = "/var/www/"

#emplacement du log des erreurs
server.errorlog = "/var/log/lighttpd/error.log"

#page d'accueil d'un repertoire
index-file.names = ( "index.php", "index.html",
"index.htm", "default.htm" )

#linux-sendfile pour servir des petits fichiers et writev pour servir des fichiers plus gros
server.network-backend = "writev"

#nombre de connexions max par ip (mod_evasive)
evasive.max-conns-per-ip = 5

#statut du server web (mod_status)
status.status-url = "/server-status"
status.config-url = "/server-config"

#### Debut des VirtualHosts ####


#Virtual host classique et basique ..
$HTTP["host"] == "213.251.*.*" {
server.document-root = "/var/www/parking/"
}

#Virtual host dynamique basique
# %% => % sign
# %0 => domain name + tld
# %1 => tld
# %2 => domain name without tld
# %3 => subdomain 1 name
# %4 => subdomain 2 name
evhost.path-pattern = "/var/www/%0/%3/"


#exemple de redirection possible
#else $HTTP["host"] =~ "^([^.]+\.[^.]+)$" {
# url.redirect = (
# ".*" => "http://www.%1"
# )
#}

#### Fin des VirtualHosts ####


#Lighty sera configuré avec php5
server.stat-cache-engine = "simple"
server.max-fds = 2048
fastcgi.server = ( ".php" =>
(( "socket" => "/tmp/php.socket",
"bin-path" => "/usr/bin/php5-cgi",
"min-procs" => 1,
"max-procs" => 64,
"max-load-per-proc" => 4,
"idle-timeout" => 20
))
)

#### Module pour compresser (ici pas activé)
#compress.cache-dir = "/var/tmp/lighttpd/cache/compress/"
#compress.filetype = ("text/plain", "text/html")


# log d'acces au serveur
accesslog.filename = "/var/log/lighttpd/access.log"

# Extensions auquelles l'acces est interdit
url.access-deny = ( "~", ".inc" )

## Pages d'erreur perso
#server.error-handler-404 = "/error-handler.html"
#server.error-handler-404 = "/error-handler.php"

######### Options moins indispensables #######

## port d'écoute du serveur
server.port = 80

## bind to localhost only (default: all interfaces)
#server.bind = "localhost"

## to help the rc.scripts
server.pid-file = "/var/run/lighttpd.pid"

##
## Format: <errorfile-prefix><status>.html
##
#server.errorfile-prefix = "/var/www/"

## Listage des repertoires
dir-listing.encoding = "utf-8"
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 <uid> (default: don't care)
server.username = "www-data"

## change uid to <uid> (default: don't care)
server.groupname = "www-data"

#### Module de rewrite ou de redirection
# url.rewrite = ( "^/$" => "/server-status" )
# url.redirect = ( "^/wishlist/(.+)" => "http://www.123.org/$1" )

#### expire module
# expire.url = ( "/buggy/" => "access 2 hours", "/asdhas/" => "access plus 1 seconds 2 minutes")

#### rrdtool
# rrdtool.binary = "/usr/bin/rrdtool"
# rrdtool.db-name = "/var/www/lighttpd.rrd"

## this is a hack
alias.url = ("___invalid___" => "___invalid___")

#### handle Debian Policy Manual, Section 11.5. urls
#### and by default allow them only from localhost

$HTTP["host"] == "localhost" {
alias.url += (
"/doc/" => "/usr/share/doc/",
"/images/" => "/usr/share/images/"
)
dir-listing.activate = "enable"
}

#### fichier de configuration externe
## mimetype mapping
include_shell "/usr/share/lighttpd/create-mime.assign.pl"

## load enabled configuration files,
include_shell "/usr/share/lighttpd/include-conf-enabled.pl"
 
WRInaute occasionnel
Dès que j'ai le temps je m'occupe de ca , le mieux serait de trouver quelqu'un qui est un kimsufi pour qu'on puisse déja mesurer le temps d'execution de X requetes php, et voir la ram utilisée ...

pas forcement le temps d'installer et config apache sur mon kim'

Ron :p
 
Discussions similaires
Haut