Damit für jeden virtuellen Host eine eigene php.ini genutzt wird, legen wir mit dem setenv-Modul die Umgebungsvairable PHPRC fest, die angibt, wo die php.ini liegt.
server.modules += ( "mod_setenv" )
Nun fügen wir die setenv-Anweisung für die virtuellen Hosts hinzu:
$HTTP["host"] =~ "^www.example.com" {
...
setenv.add-environment = (
"PHPRC" => "/etc/php5/cgi/php.example.com.ini"
)
}In dieser speziellen php.ini sollte man nun für jeden virtuellen Host den open_basedir-Pfad setzen, damit diese nicht untereinander auf die Verzeichnise schreiben können.
Quelle: http://www.jenkner.org/archive/2008/03/11/lighttpd-mit-php-und-cgi/
Hatte mich vergessen für diesen Eintrag zu bedanken ^^
Einfach klasse das funzt problemlos auf meinem server.
Ich kriege es nur nicht hin php für einzelne vhosts komplett abzuschalten, weisst du wie man das machen könnte ?
Du könntest es andersherum machen: Aktiviere bei dennen wo du php brauchst, fastcgi und bei den anderen nicht.
server.modules += ( “mod_fastcgi” )
Kann es sein, dass dieses nur mit CGI funktioniert? Mit FastCGI ignoriert er den Eintrag.
Ich habe es mit FastCGI probiert und dort funktioniert es.
Hatte es mit CGI noch nicht probiert!
das ist unnötig, du kannst die php.ini (oder aber auch andere php settings) direkt via php-cgi übergeben, ohne “mod_setenv”!!
z.b.
“bin-path” => “/usr/bin/php-cgi -d open_basedir=/var/www”"