Page 2 of 12

Re: Debian Sarge, Apache2, Suexec2, mod_fastcgi, php5-fcgi HowTo

Posted: 2004-12-02 13:33
by kase
Du musst die Ausgabe selbst überprüfen...

Stimmt dein DocRoot?
Ist die GID des Scripts über 100?
Läuft der Apache auch wirklich mit User "apache"?
Ist die UID über 1000?

Außerdem setz mal testweise für suexec2 das +r Flag für "Group" (-rwsr-x---) (müsste chmod 4750 sein)

Laut Fehlermeldung muss das Problem ja irgendwo bei der UID/GID sein, aber frag mich nicht, woher diese -1/-1 kommt.

Re: Debian Sarge, Apache2, Suexec2, mod_fastcgi, php5-fcgi HowTo

Posted: 2004-12-02 13:57
by cybermage
kase wrote:Du musst die Ausgabe selbst überprüfen...
Sieht soweit ganz gut aus.
kase wrote:Stimmt dein DocRoot?
alle Vhosts befinden sich unter /var/www
kase wrote:Ist die GID des Scripts über 100?
Ist die UID über 1000?
-rwxr-xr-x 1 1000 100 120 Nov 30 23:12 /var/www/php-fcgi-scripts/nibbler/php-fcgi-starter
kase wrote:Läuft der Apache auch wirklich mit User "apache"?
Ja.
kase wrote:Außerdem setz mal testweise für suexec2 das +r Flag für "Group" (-rwsr-x---) (müsste chmod 4750 sein)
chmod g+r hat nicht geholfen. Immernoch die selbe Fehlermeldung.

Re: Debian Sarge, Apache2, Suexec2, mod_fastcgi, php5-fcgi HowTo

Posted: 2004-12-02 20:05
by kase
Gib dem suexec Wrapper mal 4755, damit dieser 100% ausgeführt werden kann vom Apache. IMHO sollte das auch keine Sicherheitslücke sein, da bei Debian per default die Rechte 4755 sind.

Ansonsten habe ich mich mal etwas informiert, dieser Teil der Fehlermeldung ist wohl ziemlich für die Mülltonne, da er bei jedem 2. Fehler angezeigt wird:

Code: Select all

FastCgiWrapper: "/usr/sbin/suexec2" execute access for server (uid -1, gid -1) failed:
Relevant ist scheibar der aller letzte Teil, an diesem solltest du auch anfangen zu suchen:

Code: Select all

execute not allowed
Somit fehlen wohl irgendwo die +x Rechte.

Falls das Problem mit dem 4755 suexec2 nicht behoben ist, mache dich mal schlau, ob du auch den allerneusten Snapshot von fastcgi benutzt, da es IMHO mit der aktuellen Stable Version ein paar Bugs gibt. Folgende Version funktioniert:

http://www.fastcgi.com/dist/mod_fastcgi ... 202.tar.gz

Ansonsten gibt es vielleicht noch irgendwelche anderen Logs, die was zu dem Error sagen? error.log, access.log und vor allem suexec.log

Außerdem die Ausgabe von php-cgi -v nochmal kontrollieren, ob da auch wirklich php-fcgi steht.

Wenn alles nicht hilft, müssen wir zur Not mal sämtliche Rechte von allen relevanten Dateien vergleichen.

Auf jeden Fall kannst du auch mal fastcgi selbst compiliern und schauen, ob das vielleicht den Fehler beseitigt.

Edit: Hat das php-cgi-Binary genügend Rechte? Sollte 755 haben.

Re: Debian Sarge, Apache2, Suexec2, mod_fastcgi, php5-fcgi HowTo

Posted: 2004-12-02 22:39
by cybermage
kase wrote:Gib dem suexec Wrapper mal 4755, damit dieser 100% ausgeführt werden kann vom Apache. IMHO sollte das auch keine Sicherheitslücke sein, da bei Debian per default die Rechte 4755 sind.
Das wars auch schon. Danach kam noch ein weiterer Fehler der damit zusammenhing, dass mod_suexec nicht geladen wurde.
kase wrote:Ansonsten gibt es vielleicht noch irgendwelche anderen Logs, die was zu dem Error sagen? error.log, access.log und vor allem suexec.log
Die Logs waren mir die ganze Zeit leider keine große Hilfe, da apache gar nicht dazu kam etwas zu loggen.

Nachdem nun alles funktioniert eine Verständnis Frage.
Beim starten spawnen nun 4 PHP Prozesses unter der UID von dem VHOST user. Wenn ich nun 20 VHOSTS hab, spawnen dann 4*20?
Und noch was.
Bei FastCgiServer wird ja eine UID und GID angegeben. Und mit diesen Angaben wird doch dann suexec aufgerufen, welches wiederum php-fcgi-starter aufruft. Aber das ist ja für jeden VHOST gleich. Also an welcher Stelle kommt nun die Apache Direktive SuexecUserGroup ins Spiel?

Ich möchte nur gerne verstehen, was ich da genau abgetippt hab ;)

Re: Debian Sarge, Apache2, Suexec2, mod_fastcgi, php5-fcgi HowTo

Posted: 2004-12-02 23:45
by kase
Beim starten spawnen nun 4 PHP Prozesses unter der UID von dem VHOST user. Wenn ich nun 20 VHOSTS hab, spawnen dann 4*20?
Ja, dann spawnen 4*20 Prozesse, allerdings kannst du ja die Anzahl pro vHost frei einstellen, und zur Not auch die Direktive ganz weglassen. (siehe Thread)
Bei FastCgiServer wird ja eine UID und GID angegeben. Und mit diesen Angaben wird doch dann suexec aufgerufen, welches wiederum php-fcgi-starter aufruft.
Nein, das ist so nicht ganz richtig. Suexec aufrufen kann von Prinzip her nur der Apache. Deshalb solltest du ja zB gucken, ob bei suexec der ApacheUser stimmt. (suexec2 -V) Was du dort angibst, ist der User des primären vHosts, damit fastcgi seinen aller ersten Kontroll-Prozess mit dem richtigen User starten kann.
Also an welcher Stelle kommt nun die Apache Direktive SuexecUserGroup ins Spiel?
Wenn suexec den php-fcgi-starter eines vHosts aufruft, setzt er den User von diesem auf SuexecUserGroup.

Re: Debian Sarge, Apache2, Suexec2, mod_fastcgi, php5-fcgi HowTo

Posted: 2004-12-02 23:59
by cybermage
kase wrote:Nein, das ist so nicht ganz richtig. Suexec aufrufen kann von Prinzip her nur der Apache. Deshalb solltest du ja zB gucken, ob bei suexec der ApacheUser stimmt.
Somit sind dann erstmal alle Fragen beseitigt und falls ich rausfind was bei mir falsch läuft dann meld ich mich evtl nochmal.
danke soweit :)

Re: Debian Sarge, Apache2, Suexec2, mod_fastcgi, php5-fcgi HowTo

Posted: 2004-12-03 11:07
by kase
Wieso sollte bei dir etwas "falsch" laufen, ich denke, nun funktioniert alles?!

Re: Debian Sarge, Apache2, Suexec2, mod_fastcgi, php5-fcgi HowTo

Posted: 2004-12-06 19:11
by viperb0y
Hallo,

Ist es auch moeglich dies mit dem Apache 1.3.x zu tun? Wuerde mich sehr freuen wenn das geht!

Apache 1 kennt leider nicht das "Action" was in der config vorkommt. (und dieses suexeusergroup)

Kann mir da evtl. jemand helfen :)?

Re: Debian Sarge, Apache2, Suexec2, mod_fastcgi, php5-fcgi HowTo

Posted: 2004-12-06 19:27
by kase
Kann ich dir leider nicht sagen, wie und ob das mit Apache1 geht. Aber rein theoretisch sollte es übertragbar sein. Müsstest halt etwas rumprobieren, kann dir aber mit Apache1 keinen Support geben.

Action und Susexecusergroup kennt dein Apache, wenn du mod_actions und mod_suexec in deiner httpd.conf lädst.

Re: Debian Sarge, Apache2, Suexec2, mod_fastcgi, php5-fcgi HowTo

Posted: 2004-12-07 16:14
by cybermage
Etwas über das ich mir noch gar keine Gedanken gemacht hab:
HTTP_AUTH funktioniert mit mod_php, mit suPHP aber nicht mit mod_fastcgi.
Lässt ich doch aber bestimmt was daran drehen.

Re: Debian Sarge, Apache2, Suexec2, mod_fastcgi, php5-fcgi HowTo

Posted: 2004-12-07 18:08
by kase
Da bin ich überfragt...

Ich habe immer gedacht, dass HTTP_AUTH mod_php only ist, funktioniert das inzwischen mit suPHP?

Wäre natürlich genial, wenn das auch mit fastcgi funktionieren würde, wenn du da Ergebnisse hast, bitte unbedingt hier posten... danke

Re: Debian Sarge, Apache2, Suexec2, mod_fastcgi, php5-fcgi HowTo

Posted: 2004-12-07 19:09
by cybermage
kase wrote:Ich habe immer gedacht, dass HTTP_AUTH mod_php only ist, funktioniert das inzwischen mit suPHP?
ohne probleme:
http://www.hirnstrudel.de/test.php
http://www.hirnstrudel.de/phpinfo.php

Re: Debian Sarge, Apache2, Suexec2, mod_fastcgi, php5-fcgi HowTo

Posted: 2004-12-07 20:12
by viperb0y
Hallo,

Hab nun mod_action etc. geladen und geht nun auch in gewissem sinne ^^

Nun kommt z.b. bei der mainsite (also http://ip/index.php):

Forbidden
You don't have permission to access /cgi-bin/php-fcgi-starter/index.php on this server.

Versteh ich leider nicht?

Re: Debian Sarge, Apache2, Suexec2, mod_fastcgi, php5-fcgi HowTo

Posted: 2004-12-09 19:35
by kase
Bedeutet, dass dein php-fcgi-starter die falschen Rechte hat, entweder das Verzeichnis, oder die Datei selbst.

Ohne dir jetzt irgendwie zu nahe zu treten, aber meiner Ansicht (anhand deiner Fragen, die du hier stellst) hast du nicht genügend Grundwissen, um eine solch komplexe Konfiguration wie php-fcgi,fastcgi zu installieren, vielleicht solltest du auf eine einfach zu installierende Konfigurationen zurückgreifen, wie zB mod_php oder suphp.

Re: Debian Sarge, Apache2, Suexec2, mod_fastcgi, php5-fcgi HowTo

Posted: 2005-01-04 14:41
by wirsing
Bei der Suche nach einem bereits bestehenden Paket für FastCGI bin ich übrigens darauf gestoßen, dass im offiziellen Pool bereits Binaries existieren.
In sarge gibt es zwar keine Version für Apache 2 und die für Apache 1 ist auch etwas älter (2.2.10); die Versionen in sid (2.4.2-5) dagegen sind seit Oktober ohne Beanstandung vorhanden (packages.qa.d.o,bugs.d.o ), zum Eintritt in sarge fehlen lediglich die Binärpakete für nicht-i386er Architekturen.
Ich setze es zwar noch nicht ein, wollte aber darauf hinweisen - vielleicht muss man mod_fastcgi ja doch nicht extra kompilieren.

Re: Debian Sarge, Apache2, Suexec2, mod_fastcgi, php5-fcgi HowTo

Posted: 2005-01-04 18:01
by kase
Ein Backport von Sid auf Sarge wäre sicherlich ein Kinderspiel, ich frage mich nur, warum ich das damals nicht gefunden habe, ich habe defintiv auch in sid danach gesucht. Mom werde ich das ganze erstmal nicht in mein HowTo integrieren, gerade viel Stress mit Klausuren, aber ab Mitte Februar werde ich ein paar Blicke drauf werfen.

Da es inzwischen auch php5 als Paket gibt, zwar noch nicht in sid, aber immerhin auf der people.debian.de Seite der php5 Maintainer, und das sogar als php5-fcgi, könnte man echt überlegen, das ganze komplett auf Paketen basierend aufzubauen.

Wie gesagt, ich werde mich so ab mitte/ende Februar da mal drum kümmern.

Re: Debian Sarge, Apache2, Suexec2, mod_fastcgi, php5-fcgi HowTo

Posted: 2005-01-07 01:38
by Anonymous
Hi, also ich hab jetzt alles wie beschrieben gemacht(mit alternativer selbstkompilierter suexec, da i-bit nicht unterstützt wird)

Jedoch krieg ich immer nen 500er Internal Server Error.

Error.log
[Fri Jan 07 01:23:02 2005] [notice] suEXEC mechanism enabled (wrapper: /usr/lib/apache2/suexec2)
[Fri Jan 07 01:23:02 2005] [notice] FastCGI: wrapper mechanism enabled (wrapper: /usr/lib/apache2/suexec-fcgi)
[Fri Jan 07 01:23:02 2005] [notice] FastCGI: process manager initialized (pid 30887)
[Fri Jan 07 01:23:02 2005] [notice] Apache/2.0.52 (Debian GNU/Linux) mod_fastcgi/mod_fastcgi-SNAP-0404142202 configured -- resuming normal operations
[Fri Jan 07 01:23:02 2005] [warn] FastCGI: server "/var/www/php-fcgi-scripts/VHOST/php-fcgi-starter" (uid 1000, gid 33) started (pid 30888)
[Fri Jan 07 01:23:02 2005] [warn] FastCGI: server "/var/www/php-fcgi-scripts/VHOST/php-fcgi-starter" (pid 30888) terminated by calling exit with status '108'
[Fri Jan 07 01:23:07 2005] [warn] FastCGI: server "/var/www/php-fcgi-scripts/VHOST/php-fcgi-starter" (uid 1000, gid 33) restarted (pid 30958)
[Fri Jan 07 01:23:07 2005] [warn] FastCGI: server "/var/www/php-fcgi-scripts/VHOST/php-fcgi-starter" (pid 30958) terminated by calling exit with status '108'
[Fri Jan 07 01:23:12 2005] [warn] FastCGI: server "/var/www/php-fcgi-scripts/VHOST/php-fcgi-starter" (uid 1000, gid 33) restarted (pid 31102)
[Fri Jan 07 01:23:12 2005] [warn] FastCGI: server "/var/www/php-fcgi-scripts/VHOST/php-fcgi-starter" (pid 31102) terminated by calling exit with status '108'
[Fri Jan 07 01:23:17 2005] [warn] FastCGI: server "/var/www/php-fcgi-scripts/VHOST/php-fcgi-starter" (uid 1000, gid 33) restarted (pid 31265)
[Fri Jan 07 01:23:17 2005] [warn] FastCGI: server "/var/www/php-fcgi-scripts/VHOST/php-fcgi-starter" (pid 31265) terminated by calling exit with status '108'
[Fri Jan 07 01:23:17 2005] [warn] FastCGI: server "/var/www/php-fcgi-scripts/VHOST/php-fcgi-starter" has failed to remain running for 30 seconds given 3 attempts, its restart interval has been backed off to 600 seconds
[Fri Jan 07 01:23:35 2005] [error] [client 217.255.24.4] FastCGI: comm with server "/var/www/php-fcgi-scripts/VHOST/php-fcgi-starter" aborted: idle timeout (30 sec)
[Fri Jan 07 01:23:35 2005] [error] [client 217.255.24.4] FastCGI: incomplete headers (0 bytes) received from server "/var/www/php-fcgi-scripts/VHOST/php-fcgi-starter"
Suexec Log
[2005-01-07 01:23:02]: uid: (webmaster/webmaster) gid: (www-data/www-data) cmd: php-fcgi-starter
[2005-01-07 01:23:02]: cannot run as forbidden gid (33/php-fcgi-starter)
[2005-01-07 01:23:07]: uid: (webmaster/webmaster) gid: (www-data/www-data) cmd: php-fcgi-starter
[2005-01-07 01:23:07]: cannot run as forbidden gid (33/php-fcgi-starter)
[2005-01-07 01:23:12]: uid: (webmaster/webmaster) gid: (www-data/www-data) cmd: php-fcgi-starter
[2005-01-07 01:23:12]: cannot run as forbidden gid (33/php-fcgi-starter)
[2005-01-07 01:23:17]: uid: (webmaster/webmaster) gid: (www-data/www-data) cmd: php-fcgi-starter
[2005-01-07 01:23:17]: cannot run as forbidden gid (33/php-fcgi-starter)
Scheinbar kann php-fcgi nicht gestartet werden. Im pstree tauchts auch nicht auf.

Weiß jemand, worans liegen könnte? Danke schonmal für eure Hilfe

Sascha

Re: Debian Sarge, Apache2, Suexec2, mod_fastcgi, php5-fcgi HowTo

Posted: 2005-01-07 15:35
by kase
DaBash0r wrote: [2005-01-07 01:23:17]: uid: (webmaster/webmaster) gid: (www-data/www-data) cmd: php-fcgi-starter
[2005-01-07 01:23:17]: cannot run as forbidden gid (33/php-fcgi-starter)
Check mal die Ausgabe von (je nachdem, wie das BIN bei dir heißt)

Code: Select all

/usr/lib/apache2/suexec2 -V 
/usr/lib/apache2/suexec-fcgi -V
in Bezug auf -D AP_GID_MIN und -D AP_UID_MIN, und schau dir dann deine Fehlermeldung nochmal an...

Re: Debian Sarge, Apache2, Suexec2, mod_fastcgi, php5-fcgi HowTo

Posted: 2005-01-16 21:11
by kase
Es gab ein paar Updates im HowTo, insbesondere in der Einleitung, sowie 2 neue Punkte 15 und 16.

15: Mehrere PHP-Versionen innerhalb eines einzigen vHosts mittels verschiedenen .php* Endungen

16: PHP-Prozesse von Usern mit einer niedrigeren Priorität starten (nice), um noch genauer CPU-Ressourcen zu verteilen oder zum Beispiel Lags auf GameServern durch Web-Zugriffe zu verhindern, wenn GameServer und WebServer auf der gleichen Maschine laufen.

Re: Debian Sarge, Apache2, Suexec2, mod_fastcgi, php5-fcgi HowTo

Posted: 2005-01-19 14:29
by carl
Vorerst mal Danke kase für dieses fette How-To.
Genau das was ich gesucht habe.

Ich habe jedoch ein Problem und zwar wir bei mir das php-fcgi-starter nicht korrekt ausgeführt. Im Browser erscheint einfach der Text:
echo Content-type: text/plain PHPRC="/var/www/php-fcgi configs/default/" export PHPRC PHP_FCGI_CHILDREN=4 export PHP_FCGI_CHILDREN exec /usr/bin/php-cgi

Interessant ist, dass die Zeile #!/bin/sh nicht angezeigt wird. Es wird also etwas ausgeführt. Ich habe das script in meinen normalen webordner (+ExecCGI) kopiert und als normales cgi-script ausführen lassen -> das gleiche Resultat

In suexec.log erscheint bei diesem Versuch:
[2005-01-19 14:25:52]: uid: (1004/www-default) gid: (1004/1004) cmd: php-fcgi-starter.cgi

und in der error.log steht nichts.

Re: Debian Sarge, Apache2, Suexec2, mod_fastcgi, php5-fcgi HowTo

Posted: 2005-01-19 16:40
by kase
Ich vermute, es liegt daran, dass du die Datei .cgi genannt hast, du darfst an den php-fcgi-starter keine Ednung hängen... Die suexec.log sollte dementsprechend so aussehen:

Code: Select all

[2005-01-16 22:26:41]: uid: (kase/kase) gid: (100/100) cmd: php-fcgi-starter
Edit: Nochwas... Bist du dir 100% sicher, dass exec /usr/bin/php-cgi auch wirklich ein fcgi Binary ist? Das sieht mir sehr nach einem cgi Binary aus.

Re: Debian Sarge, Apache2, Suexec2, mod_fastcgi, php5-fcgi HowTo

Posted: 2005-01-19 17:34
by carl
ich habe ja php-fcgi-starter in mein standart webverzeichnis (auch mit ExecCgi) nach php-fcgi-starter.cgi kopiert um die Asuführung mit cgi-script zu testen. aber auch das hat nicht funktioniert.
Im Browser erscheint einfach der Text:
echo Content-type: text/plain PHPRC="/var/www/php-fcgi configs/default/" export PHPRC PHP_FCGI_CHILDREN=4 export PHP_FCGI_CHILDREN exec /usr/bin/php-cgi
nichtmal das folgende script ist ausführbar:

Code: Select all

#!/bin/sh
echo "test"
es erscheint dann im browser:
Internal Server Error

in error.log steht bei diesem kleinen test:
[Wed Jan 19 17:31:46 2005] [error] [client 192.168.1.10] malformed header from script. Bad header=test: php-fcgi-starter.cgi

und ja php-cgi gibt folgendes aus:

PHP 4.3.10-2 (cgi-fcgi) (built: Dec 19 2004 03:35:32)
Copyright (c) 1997-2004 The PHP Group
Zend Engine v1.3.0, Copyright (c) 1998-2004 Zend Technologies

Re: Debian Sarge, Apache2, Suexec2, mod_fastcgi, php5-fcgi HowTo

Posted: 2005-01-20 12:57
by kase
Der php-fcgi-starter darf nicht in dein Standard Web-Verzeichnis, sondern muss genau dahin, wo er im Howto vorgesehen ist. Außerdem darf die Datei nicht php-fcgi-starter.cgi heißen, sondern muss php-fcgi-starter heißen.

Du musst schon 100% nach dem Howto vorgehen, ansonsten gibt es sooo viele Fehlerquellen bei dem Umfang des Howtos, dass man daran ewig suchen müsste.

Edit: Dass dein obriges Test-Script nicht funktioniert ist ja wohl logisch..., dein php-Binary scheint trotz des falschen Namens aber in Ordnung zu sein.

Re: Debian Sarge, Apache2, Suexec2, mod_fastcgi, php5-fcgi HowTo

Posted: 2005-01-20 15:24
by carl
Ist mir auch klar! :-)
habe das script ja nur nach php-fcgi-starter.cgi kopiert, um mit cgi-script zu schauen, ob es überhaupt ausführbar ist auf meinem apache.
und das war es nicht.
und ja sorry beim obrigen script fehlt der descriptor.
100% nach einem how-to vorgehen kann nie gut sein, denn das ganze sollte ja auch seinen bedürfnissen entsprechen.
natürlich vorausgesetzt man weiss was man tut.
habe das neue php-5.0.3 gesaugt und nochmals neu kompiliert.
NUN FUNKTIONIERT ES!

nochmals danke für alles.

Re: Debian Sarge, Apache2, Suexec2, mod_fastcgi, php5-fcgi HowTo

Posted: 2005-01-20 16:15
by kase
Das ist aber überhaupt kein cgi Script, es trägt lediglich den Namen, ich vermute aus der History raus... Wieso das ganze nun mit php 5.0.3 funktioniert und mit php 4.3.10 nicht, kann ich dir aber auch nicht sagen, theoretisch müsste es ohne Probleme mit beidem funktionieren.