Le guest utilise la même distrib et je ne lui ai alloué qu'un minimum de ram:

Machine Hôte
sarge:/usr/local/etc/vservers/vweb3/rlimits# ll
total 16
drwxr-xr-x 2 root root 4096 2008-08-29 19:31 .
drwxr-xr-x 7 root root 4096 2008-08-29 19:41 ..
-rw-r--r-- 1 root root 6 2008-08-29 19:31 rss.hard
-rw-r--r-- 1 root root 5 2008-08-29 19:31 rss.soft

sarge:/usr/local/etc/vservers/vweb3/rlimits# cat *
10000
5000

sarge:/usr/local/etc/vservers/vweb3/rlimits# vserver vweb3 enter

Vserver vweb3
vweb3:/# free
total used free shared buffers cached
Mem: 20000 20000 0 0 0 0
-/+ buffers/cache: 20000 0
Swap: 20000 17648 2352

L'install est du genre basique: apt-get install lighttpd php5-cgi php5-mysql =>pour le fun

Déclaration du module fastcgi dans lighttpd : lighty-enable-mod fastcgi (ca fonctionne exactement de la même façon que pour les fichiers de config apache/debian (mécanisme de liens symboliques pour activer/désactiver les modules)

Ensuite un petit tour dans le fichier de config de lighttpd car par défaut il fait pointer le fastcgi sur php4 et pour déclarer l'interface d'écoute sur l'ip du vserver afin de ne pas entrer en conflit avec celui de l'hôte sur lequel tourne un apache:

Extrait de /etc/lighttpd/lighttpd.conf:

## bind to port (default: 80)
# server.port = 81

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


Puis modif de /etc/lighttpd/conf-available/10-fastcgi.conf :

"bin-path" => "/usr/bin/php5-cgi"


Je démarre ensuite lighttpd : /etc/init.d/lighttpd start et je vérifie:

vweb3:/etc/lighttpd/conf-available# ps ax
PID TTY STAT TIME COMMAND
1 ? Ss 0:01 init [2]
8736 ? Ss 0:00 /sbin/syslogd
9284 ? R+ 0:03 login
9311 pts/1 Ss 0:01 /bin/bash -login
11645 ? S 0:00 /usr/sbin/lighttpd -f /etc/lighttpd/lighttpd.conf
11646 ? Ss 0:00 /usr/bin/php5-cgi
11647 ? S 0:00 /usr/bin/php5-cgi
11648 ? S 0:00 /usr/bin/php5-cgi
11649 ? S 0:00 /usr/bin/php5-cgi
11650 ? S 0:00 /usr/bin/php5-cgi
11651 ? Ss 0:00 /usr/bin/php5-cgi
11652 ? S 0:00 /usr/bin/php5-cgi
11653 ? S 0:00 /usr/bin/php5-cgi
11654 ? S 0:00 /usr/bin/php5-cgi
11655 ? S 0:00 /usr/bin/php5-cgi
12435 pts/1 R+ 0:00 ps ax


vweb3:/etc/lighttpd/conf-available# netstat -lnp
Connexions Internet actives (seulement serveurs)
Proto Recv-Q Send-Q Adresse locale Adresse distante Etat PID/Program name
tcp 0 0 192.168.0.161:80 0.0.0.0:* LISTEN 11645/lighttpd
Sockets du domaine UNIX actives(seulement serveurs)
Proto RefCpt Indicatrs Type Etat I-Node PID/Program name Chemin
unix 2 [ ACC ] STREAM LISTENING 17778 11646/php5-cgi /tmp/php.socket-0
unix 2 [ ACC ] STREAM LISTENING 17785 11651/php5-cgi /tmp/php.socket-1



Résultat d'un phpinfo :

lighttpd phpinfo

Liens :

A noter l'excellent article : http://trac.lighttpd.net/trac/wiki/HowToSetupFastCgiIndividualPermissions que j'ai testé et qui fonctionne parfaitement.

lighttpd fastcgilighttpd fastcgi

En jouant avec certaines directives du php.ini il devient donc tout à fait possible d'aboutir à un ensemble de vhosts parfaitement sécurisés.

copie locale de secours