Lighty 1.5, chroot und spawn-fcgi

Apache, Lighttpd, nginx, Cherokee
ghoster1970
Posts: 71
Joined: 2006-06-21 13:31
Location: Potsdam

Lighty 1.5, chroot und spawn-fcgi

Post by ghoster1970 » 2007-05-09 22:27

Ich versuche PHP5-fcgi in das Lighty chroot zu bekommen. Ohne Chroot klappt es wunderbar.

Fehlermeldung beim Starten des Initskripts vom php5-fcgi

Code: Select all

/etc/init.d/php5-fcgi start
Starte PHP5-FastCGI Prozess
spawn-fcgi.c.230: child exited with: 2, No such file or directory
OK, die Fehlermeldung sagt mir das er eine Datei nicht findet, nur welche könnte es sein. Relevanter Auszug aus dem Initskript

Code: Select all

socket="/tmp/php-fastcgi.sock -c /var/webroot"
phpfile="/usr/bin/php5-cgi"
uid="www-data"
gid="www-data"
child="5"
pid="/var/run/php5-fcgi.pid"

...
spawn-fcgi -s $socket -f $phpfile -u $uid -g $gid -C $child -P $pid
Entsprechender Eintrag in der lighttpd.conf

Code: Select all

$HTTP["url"] =~ ".php$" {
  proxy-core.balancer = "round-robin"
  proxy-core.protocol = "fastcgi"
  proxy-core.allow-x-sendfile = "enable"
  proxy-core.backends = ( "unix:/tmp/php-fastcgi.sock" )
  proxy-core.max-pool-size = 16
Der Lighty beschwert sich bei einem Neustart nicht und, was IMHO merkwürdig ist, trotz der Fehlermeldung wird im chroot-Verzeichnis der Socket für PHP5 angelegt.
Kann mir jemand einen Tipp geben wo ich meinen Denkfehler finden kann?

Roger Wilco
Administrator
Administrator
Posts: 5924
Joined: 2004-05-23 12:53

Re: Lighty 1.5, chroot und spawn-fcgi

Post by Roger Wilco » 2007-05-10 00:01

Hast du alle notwendigen Libraries in dein chroot gepackt? -> `ldd /usr/bin/php5-cgi`

ghoster1970
Posts: 71
Joined: 2006-06-21 13:31
Location: Potsdam

Re: Lighty 1.5, chroot und spawn-fcgi

Post by ghoster1970 » 2007-05-10 10:41

Roger Wilco wrote:Hast du alle notwendigen Libraries in dein chroot gepackt? -> `ldd /usr/bin/php5-cgi`
Ich habe eigentlich mit ldd alle Libs in das Chroot kopiert, wie die Perl-Libs auch. Perl Skripte werden auch ausgeführt...

Ich werde mal auf einer VM den Lighty 1.4.15 installieren (ohne spawn-fcgi PHP5 chrooten) und mal nachsehen ob es dort eine eindeutige Fehlermeldung gibt bzw. ob es so funktionieren würde.

Danke trotzdem für den Tipp

User avatar
Joe User
Project Manager
Project Manager
Posts: 11138
Joined: 2003-02-27 01:00
Location: Hamburg

Re: Lighty 1.5, chroot und spawn-fcgi

Post by Joe User » 2007-05-10 11:10

Starte Lighttpd/Spawn-FCGI mal per Hand im Debug-Mode...
PayPal.Me/JoeUserFreeBSD Remote Installation
Wings for LifeWings for Life World Run

„If there’s more than one possible outcome of a job or task, and one
of those outcomes will result in disaster or an undesirable consequence,
then somebody will do it that way.“ -- Edward Aloysius Murphy Jr.

ghoster1970
Posts: 71
Joined: 2006-06-21 13:31
Location: Potsdam

Re: Lighty 1.5, chroot und spawn-fcgi

Post by ghoster1970 » 2007-05-10 14:45

Joe User wrote:Starte Lighttpd/Spawn-FCGI mal per Hand im Debug-Mode...
Danke für denn Tipp, steh jetzt aber auf dem Schlauch im Moment. Wälze gerade die Manuals vom Lighty 1.5 und finde nicht wie man spawn-fcgi im Debug startet. Nochmals ein kleiner Tipp?

In der lighttpd.conf hab ich Debug so eingetragen und Lighty startet auch ohne murren

Code: Select all

$HTTP["url"] =~ ".php$" {
  proxy-core.balancer = "round-robin"
  proxy-core.protocol = "fastcgi"
  proxy-core.allow-x-sendfile = "enable"
  proxy-core.debug = 1
  proxy-core.backends = ( "unix:/tmp/php-fastcgi.sock" )
  proxy-core.max-pool-size = 16
In den Logs wird nichts eingetragen was evtl. auf eine Falschkonfiguration des Lighty hindeuten würde.
Nehme ich "-c /var/webroot" raus, startet auch PHP5-FCGI, was auf eine fehlende Bibliothek deutet... Nur welche :?:

User avatar
Joe User
Project Manager
Project Manager
Posts: 11138
Joined: 2003-02-27 01:00
Location: Hamburg

Re: Lighty 1.5, chroot und spawn-fcgi

Post by Joe User » 2007-05-10 15:48

Code: Select all

ldd /usr/bin/php5
ldd /usr/bin/php5-cgi
Was sagt phpinfo()?
PayPal.Me/JoeUserFreeBSD Remote Installation
Wings for LifeWings for Life World Run

„If there’s more than one possible outcome of a job or task, and one
of those outcomes will result in disaster or an undesirable consequence,
then somebody will do it that way.“ -- Edward Aloysius Murphy Jr.

ghoster1970
Posts: 71
Joined: 2006-06-21 13:31
Location: Potsdam

Re: Lighty 1.5, chroot und spawn-fcgi

Post by ghoster1970 » 2007-05-10 17:43

Joe User wrote: Was sagt phpinfo()?
Wenn ich php5-fcgi ins chroot spawne leider nichts, weil das Skript mit der Fehlermeldung abricht:

Code: Select all

spawn-fcgi.c.230: child exited with: 2, No such file or directory
Hab die ganzen Libs für php5-cgi, php-cgi und mysql geprüft, alle sind im entsprechenden Verzeichnis im chroot vorhanden.
Was ich noch machen kann ist, das chroot zu tillen, php5-cgi deinstallieren und anschließend step-by-step jede weitere Funktion hinzufügen wenn spawn-fcgi mit der vorherigen geklappt hat zum chroot.

Wenn ich noch immer nicht klar komme, wird PHP5 einfach selbst kompiliert. Das hat beim Apachen damals immer geklappt zu chrooten statt Nutzung der Pakete.
Merkwürdig ist es schon seitdem Etch stable geworden ist, wenn es so weitergeht werd ich auf Gentoo oder gleich auf BSD umsteigen müssen.

ghoster1970
Posts: 71
Joined: 2006-06-21 13:31
Location: Potsdam

Re: Lighty 1.5, chroot und spawn-fcgi

Post by ghoster1970 » 2007-05-10 23:29

Nachdem mir die Sache langsam komisch vorkam, ich an meinen Fähigkeiten zweifelte, wurde mal Lighty 1.4.15 installiert und das chroot beibehalten.

Folge: PHP lässt sich in das Chroot spawnen, Skripte werden ausgeführt und keine Fehlermeldung mehr gesehen seitdem.

Sehr merkwürdig das ganze wenn man mich fragt. Hat sich durch mod_proxy_core so viel verändert?
Bin mal gespannt ob mir der Jan erklären kann wo evtl. ein Haken bei der Sache sein könnte.

Ärgerlicherweise brauch ich wegen Tomcat den 1.5.0 Lighty oder kennt jemand ein gutes Workaround?

sledge0303
Posts: 695
Joined: 2005-09-16 00:06
Location: Berlin-Reinickendorf

Re: Lighty 1.5, chroot und spawn-fcgi

Post by sledge0303 » 2007-05-11 09:21

Ich fahre mit beiden Lighty Versionen aus ähnlichen Gründen.
Bin von Lighty 1.4.13 (chrooted) auf 1.5.0 umgestiegen, weil ich ein Experiment mit dem OX Server geplant hatte. Was mir erstmal bitte aufstieß war die Tatsache, bei Aufruf eines Perl Skripts erschien zuerst die Meldung
'502 - Bad Gateway' ... es war das selbe chroot wie beim 1.4.13 wo alle Scripts ausgeführt wurden!!!
Der 1.5.0er trieb mich echt zum Wahnsinn, auf einmal ließ sich wie bei dir PHP5-cgi nicht in das chroot spawnen - wenn ich mich richtig erinnere mit der selben Fehlemeldung.
Die Angelegenheit erledigte sich erst als der Lighty 1.5.0 komplett in sein eigenes chroot verschoben wurde. Auch das war eine sehr interessante Angelegenheit weil OX, Perl sowie Java mit im Spiel waren und OX nicht für eine chroot'ed Area entwickelt wurde, es wurde nicht mal in Erwägung gezogen ein Admin möchte die Installation so realisieren.

Wie einige User bestätigen können, hat es nach viel Schweiß, schimpfen+fluchen sowie ein paar Tassen starken Kaffee's geklappt mit der Umsetzung :)

User avatar
Joe User
Project Manager
Project Manager
Posts: 11138
Joined: 2003-02-27 01:00
Location: Hamburg

Re: Lighty 1.5, chroot und spawn-fcgi

Post by Joe User » 2007-05-11 09:23

Wenn sich Tomcat standalone betreiben lässt: Tomcat+Lighttpd-1.4/mod_proxy, ansonsten halt Apache-[12]/Tomcat+Lighttpd-1.4/mod_proxy...
PayPal.Me/JoeUserFreeBSD Remote Installation
Wings for LifeWings for Life World Run

„If there’s more than one possible outcome of a job or task, and one
of those outcomes will result in disaster or an undesirable consequence,
then somebody will do it that way.“ -- Edward Aloysius Murphy Jr.

kase
Posts: 1031
Joined: 2002-10-14 22:56

Re: Lighty 1.5, chroot und spawn-fcgi

Post by kase » 2007-05-11 09:27

Ich hab zwar keine Ahnung von Lighty+Chroot, aber wenn mit Lighty 1.4 alles funktioniert und mit Lighty 1.5 nicht, dann hört sich das eigentlich nach einem fehlenden Device an, das 1.5 braucht und 1.4 noch nicht. Hast du mal ein paar Standard-Devices angelegt? (null, random, kA :))

ghoster1970
Posts: 71
Joined: 2006-06-21 13:31
Location: Potsdam

Re: Lighty 1.5, chroot und spawn-fcgi

Post by ghoster1970 » 2007-05-11 09:44

@Joe User

Die mod_proxy_core(ajp13) beim Lighttpd sieht so aus:

Code: Select all

$HTTP["url"] =~ "^/servlet/|^/umin/|^/ajax/" {
  proxy-core.balancer = "round-robin"
  proxy-core.protocol = "ajp13"
  proxy-core.backends = ( "localhost:8009" )
  proxy-core.max-pool-size = 16
}
Meinst das kann man mit mod_proxy im 1.4.15 umsetzen?

@kase
/dev/null lege ich für chroots immer an, werd mal nachsehen ob evtl. noch random o.ä. benötigt wird. Danke für den Tip

kase
Posts: 1031
Joined: 2002-10-14 22:56

Re: Lighty 1.5, chroot und spawn-fcgi

Post by kase » 2007-05-11 09:47

In einem anderen Artikel wird auch gesagt, dass /chroot/tmp mit den Rechten 1777 angelegt werden muss, existiert es?

http://www.cyberciti.biz/tips/howto-set ... -jail.html


Edit: Vielleicht könntest du auch mal einen Backtrace machen mit dem spawn-fcgi Binary, vielleicht bekommst du über den Backtrace Infos, welche Datei fehlt?

Edit2: Thx CaptainCrunch
Last edited by kase on 2007-05-11 09:50, edited 2 times in total.

captaincrunch
Userprojekt
Userprojekt
Posts: 7066
Joined: 2002-10-09 14:30
Location: Dorsten

Re: Lighty 1.5, chroot und spawn-fcgi

Post by captaincrunch » 2007-05-11 09:48

dass /chroot/tmp mit den Rechten 777 angelegt werden muss
Wenn schon tmp, dann bitte 1777...
DebianHowTo
echo "[q]sa[ln0=aln256%Pln256/snlbx]sb729901041524823122snlbxq"|dc

ghoster1970
Posts: 71
Joined: 2006-06-21 13:31
Location: Potsdam

Re: Lighty 1.5, chroot und spawn-fcgi

Post by ghoster1970 » 2007-05-11 10:08

Rechte im /var/webroot/tmp sind 1777

Code: Select all

ls -la /var/webroot/tmp
insgesamt 8
drwxrwxrwt 2 root     root     4096 2007-05-10 23:54 .
drwxr-xr-x 7 root     root     4096 2007-05-10 22:21 ..
srwxrwxrwt 1 www-data www-data    0 2007-05-10 22:24 php-fastcgi.sock
srwxr-xr-x 1 www-data www-data    0 2007-05-10 23:54 php-fastcgi.socket-0
srwxr-xr-x 1 www-data www-data    0 2007-05-10 23:54 php-fastcgi.socket-1
srwxr-xr-x 1 www-data www-data    0 2007-05-10 23:54 php-fastcgi.socket-2
srwxr-xr-x 1 www-data www-data    0 2007-05-10 23:54 php-fastcgi.socket-3
/var/webroot/dev/null

Code: Select all

ls -la /var/webroot/dev/null
crw-rw-rw- 1 root root 1, 3 2007-05-10 22:22 /var/webroot/dev/null
Ich werd mich mal wegen mod_proxy mit ajp13 auseinandersetzen, glaube in den Manuals gelesen zu haben AJP13 wird erst ab 1.5 unterstützt. Kann mich da auch täuschen.
Danke nochmals für die tolle Hilfestellung :)

Edit:
proxy.server =~ ( "^/servlet/|^/umin/|^/ajax/" => ( ( "host" => "localhost", "port" => 8009 )
))
Mal sehen ob es sich so realisieren läßt...

sledge0303
Posts: 695
Joined: 2005-09-16 00:06
Location: Berlin-Reinickendorf

Re: Lighty 1.5, chroot und spawn-fcgi

Post by sledge0303 » 2007-05-11 11:26

proxy.server =~ ( "^/servlet/|^/umin/|^/ajax/" => ( ( "host" => "localhost", "port" => 8009 )
))
Mal sehen ob es sich so realisieren läßt...
Wie willst das mit dem Worker anstellen?
Glaube nicht das ein Verweis auf den Port ausreichend ist ;)
Hab es ehrlich gesagt auch noch nicht getestet, muss ich bei Gelegenheit mit 1.4.15 und mod_proxy ausprobieren.

ghoster1970
Posts: 71
Joined: 2006-06-21 13:31
Location: Potsdam

Re: Lighty 1.5, chroot und spawn-fcgi

Post by ghoster1970 » 2007-05-12 23:30

Hab ich unter 1.5-Beta gefunden
1.5.0 is missing some important functionality:

- spawning of processes in mod_proxy_core
Bin von 1.5.0-r1811 zurück auf die vorherige 1.5.0 Version und da funktioniert das spawnen von php5-fcgi in das chroot.
Danke an alle für die Tips der letzten Tage.