Erfahrungen apache2 mit PHP 5 als FastCGI

Debian macht sich hervorragend als Web- und Mailserver. Schau auch in den " Tipps und Tricks"-Bereich.
Antworten
Pawel
Beiträge: 284
Registriert: 27.11.2006 03:59:39

Beitrag von Pawel » 05.03.2007 08:45:44

Kase hat geschrieben:

Code: Alles auswählen

Connection refused: mod_fcgid: can't connect unix domain socket
AFAIR ist die Ursache für diesen Fehler die Stable Version von fcgid. Ein Update auf Testing (Etch) hilft da sehr. Auch sind einige (teilweise) nervige Bugs weniger drin.

Kase
Beiträge: 124
Registriert: 24.01.2005 22:15:40

Beitrag von Kase » 05.03.2007 20:23:25

Poste doch bitte mal deine suexec.log

Zonk
Beiträge: 70
Registriert: 27.09.2005 11:00:31
Kontaktdaten:

Beitrag von Zonk » 06.03.2007 09:29:23

AFAIR ist die Ursache für diesen Fehler die Stable Version von fcgid. Ein Update auf Testing (Etch) hilft da sehr.
Das ist ja mal ein Ansatz:). Hatte schon dne apache im Verdacht.. werd ich heute gleich mal ausprobieren!! evtl klappts dann ja doch *g* *freu*


wie muss ich mein Debian Sarge konfigurierenn, dass er das Paket als Testing nimmt, ohne dass ihc mir da was zerschiesse? Besonders im Hinblick auf Updates?

Grüße Zonk
Who believes to be has stopped to become

Pawel
Beiträge: 284
Registriert: 27.11.2006 03:59:39

Beitrag von Pawel » 06.03.2007 09:53:50

Zonk hat geschrieben:wie muss ich mein Debian Sarge konfigurierenn, dass er das Paket als Testing nimmt, ohne dass ihc mir da was zerschiesse? Besonders im Hinblick auf Updates?
Das wurde schon besprochen, siehe folgendes oder hier steht, wie man die Sourcen aus dem Unstable Zweig bekommt. Vorsicht, beim letzteren stellt man als Default-Release "testing" ein.

cirox
Beiträge: 70
Registriert: 23.06.2006 20:37:57

Beitrag von cirox » 06.03.2007 14:36:41

läuft das "libapache2-mod-fcgid (1:1.10-2)" aktuell in TESTING (ETCH) auch mit Apache 2.0 in SARGE? Weil laut http://packages.debian.org/testing/net/ ... -mod-fcgid hängt es ja von Apache2.2 ab.

gruß cirox

cirox
Beiträge: 70
Registriert: 23.06.2006 20:37:57

Beitrag von cirox » 06.03.2007 17:39:50

also das Paket hängt vom Apache2.2 ab. Egal auf welcher Art man das nun einbauen möchte er möchte den Apache updaten unter Sarge. Bleibt also nur ein Selbstkompilieren, was aber bestimmt nicht Sinn der Sache ist.

Aber mal so einfach den Apache updaten ist natürlich auch so ne Sache. .....

Kase
Beiträge: 124
Registriert: 24.01.2005 22:15:40

Beitrag von Kase » 06.03.2007 20:13:06

Also ich bin mir recht sicher, dass fcgid auch mit Apache 2 funktioniert, vor allem, weil das Paket in unstable alles andere als neu ist (wegen Etch Release, in unstable 1.10 Juli 2006, aktuell ist 2.1 Feb 2007).

Zur Not einfach Mal von Hand die Abhängigkeit auf Apache2 verändern und auf die aktuelle in Sarge setzen (in debian/control) und probieren, ob Fehler kommen beim buildpackage.

Die entsprechenden Links zum Bauen von Paketen aus Testing oder Unstable hat Pawel ja bereits gepostet.

@Zonk:

Poste bitte nochmal die Rechte deines php-fcgi-starter und die Rechte des Verzeichnisses, in dem er liegt.

Code: Alles auswählen

ls -la  /var/www/default/conf/php-fcgi-starter

cirox
Beiträge: 70
Registriert: 23.06.2006 20:37:57

Beitrag von cirox » 06.03.2007 21:03:24

ja lieber am .deb rumpfriepeln , als dass system sarge mit apache2.2 zerschiessen?

Also, die Build-Depends sind: debhelper (>= 4.0.0), apache2-threaded-dev (>= 2.2.3-2), libtool, cdbs, libapr1-dev, pkg-config
Und die Depends: apache2.2-common

Klar die Depends geändert in: apache2-common
Und bei den Build-Depends: debhelper (>= 4.0.0), apache2-threaded-dev (>= 2.2.3-2), libtool, cdbs, libapr0-dev, pkg-config

und jetzt kommen die Fragen:

Also cdbs, apache2-threaded-dev, debhelper, libtool und pkg-config kann man unter sarge ja installieren, aber:

libapr1-dev muss zu libapr0-dev

Ich denke mal das ist besser als die libapr1-dev wieder aus TESTING zu holen, weil dann fängt ja das System zerschiessen schon wieder an ?

Auf jeden Fall bekommt man so erstmal das .deb Paket gebaut. Aber im Changelog steht:

Code: Alles auswählen

libapache2-mod-fcgid (1.10-1.1~smcv0) unstable; urgency=low

  * Non-maintainer upload.
  * Compile against Apache 2.2 and APR 1.0 (Closes: #391757, #393020).
Das gibt mir schon wieder zu denken wegen dem Compile against Apache 2.2 and APR 1.0 weil genau die Sachen hab ich ja siehe oben rausgeschmissen .....

Kase
Beiträge: 124
Registriert: 24.01.2005 22:15:40

Beitrag von Kase » 07.03.2007 00:31:13

In so einem Fall geht nur probieren und testen.

Wenn das Paket mit buildpackage gebaut werden kann, dann ist das schon mal viel Wert.

Installier das fertige Paket, du kannst dir damit ja quasi nichts kaputt machen, zur Not haust du es mit Purge einfach wieder runter.

mod_fcgid hat ja quasi keine Abhängigkeiten, und die Dateien sind auch sehr übersichtlich...

http://packages.debian.org/cgi-bin/sear ... &arch=i386

Svenny
Beiträge: 320
Registriert: 11.09.2003 19:18:55

Beitrag von Svenny » 07.03.2007 17:04:54

Halli Hallo,

ich hab mir nun diesen Thread glaub ich 5 mal durchgelesen und am Ende ist nun doch eine Frage offen geblieben.

-> Ist es überhaupt Möglich phpX mit mod_fcgid in Sarge zu nutzen ohne an den debs rumzuschrauben oder selbst zu kompilieren?

Danekschön,
Sven
Bashian Roulette? (v2)
((RANDOM%6)) || rm -rf /

Kase
Beiträge: 124
Registriert: 24.01.2005 22:15:40

Beitrag von Kase » 07.03.2007 20:45:44

Ja, in Debian Sarge ist php-fcgi sowohl mit mod_fcgid als auch mit mod_fastcgi nutzbar.

Ich vermute bei Zonk auch eher ein Rechteproblem, denn der Apache legt den Socket an, ohne zu wissen, ob der PHP Prozess von suexec gestartet werden kann, oder nicht. Wenn der PHP Prozess nicht startet, schlägt natürlich das READ auf den Socket fehl, mit genau oben geposteter Fehlermeldung.

Aber so lange man weder die Rechte des fcgi-starters noch die suexec.log postet, kann man nun mal schlecht helfen.

Svenny
Beiträge: 320
Registriert: 11.09.2003 19:18:55

Beitrag von Svenny » 08.03.2007 03:17:44

Das klingt ja schonmal aufmuntert. Wenn man sich den Thread so durchließt heißt es immer geht, geht nicht, geht, geht nicht, geht, geht nicht ;)

Dann probier ich mal mein glück.

EDIT1: gehe ich nun recht in der annahme, dass php files immer executeable gechmodd'ed werden müssen?
EDIT2: Bei mir läufts leider auch nicht, hab den Apache grade gepurged und logischerweise alle Logfiles weg.
Auf jeden fall hatte das fcgi php script +x rechte und owner www-data (200) sowie sämtliche uid/gid ab /var/www aufwärts waren www-data(200):www-data(200)

das letzte was ich noch in meiner ssh session hab is die suexec.log mit

Code: Alles auswählen

[2007-03-08 03:50:57]: uid: (200/www-data) gid: (200/200) cmd: php.php
[2007-03-08 03:50:57]: (8)Exec format error: exec failed (php.php)
und die error.log:

Code: Alles auswählen

[Thu Mar 08 03:49:24 2007] [notice] mod_fcgid: server /var/www/php.php(7520) started
[Thu Mar 08 03:49:24 2007] [notice] mod_fcgid: server /var/www/php.php(7521) started
[Thu Mar 08 03:49:24 2007] [notice] mod_fcgid: server /var/www/php.php(7522) started
[Thu Mar 08 03:49:24 2007] [notice] mod_fcgid: server /var/www/php.php(7523) started
[Thu Mar 08 03:49:24 2007] [notice] mod_fcgid: server /var/www/php.php(7524) started
[Thu Mar 08 03:49:24 2007] [error] [client 84.129.108.135] Premature end of script headers: php.php
[Thu Mar 08 03:49:28 2007] [notice] mod_fcgid: server /var/www/php.php(7525) started
[Thu Mar 08 03:49:28 2007] [notice] mod_fcgid: process /var/www/php.php(7524) exit(communication error), terminated by calling exit(), return code: 255
[Thu Mar 08 03:49:28 2007] [notice] mod_fcgid: process /var/www/php.php(7523) exit(server exited), terminated by calling exit(), return code: 255
[Thu Mar 08 03:49:28 2007] [notice] mod_fcgid: process /var/www/php.php(7522) exit(server exited), terminated by calling exit(), return code: 255
[Thu Mar 08 03:49:28 2007] [notice] mod_fcgid: process /var/www/php.php(7521) exit(server exited), terminated by calling exit(), return code: 255
[Thu Mar 08 03:49:28 2007] [notice] mod_fcgid: process /var/www/php.php(7520) exit(server exited), terminated by calling exit(), return code: 255
[Thu Mar 08 03:49:34 2007] [notice] mod_fcgid: process /var/www/php.php(7525) exit(server exited), terminated by calling exit(), return code: 255
das wars.. sämtliche rechte hab ich auf www-data:www-data geänder /var/lib/apache2 und aufwärts..
das wrapper script sieht so aus:

Code: Alles auswählen

#!/bin/sh
PHPRC="/etc/php4/cgi/"
export PHPRC
PHP_FCGI_CHILDREN=10
export PHP_FCGI_CHILDREN
exec /usr/bin/php4-cgi
mehr input hab ich grade nicht und mein kopf sagt grade SEGFAULT und will ins bett. Also Gute nacht.
Bashian Roulette? (v2)
((RANDOM%6)) || rm -rf /

Zonk
Beiträge: 70
Registriert: 27.09.2005 11:00:31
Kontaktdaten:

Beitrag von Zonk » 08.03.2007 10:00:20

Pardon, hatte grad Klausurenstress, weshalb ihc an dem Thema nchit weitergearbeite habe. Am Wochenende melde ich mich mit den neuesten Erkenntnissen.

Danke Zonk
Who believes to be has stopped to become

cirox
Beiträge: 70
Registriert: 23.06.2006 20:37:57

Beitrag von cirox » 08.03.2007 12:09:52

Kase hat geschrieben:Ja, in Debian Sarge ist php-fcgi sowohl mit mod_fcgid als auch mit mod_fastcgi nutzbar.
naja wenn man die Standardpakete nimmt in Sarge. Dort ist aber a) mod_fastcgi fehlerhaft (es kommt zu 500 Fehlern unter Last + noch ein paar andere Tücken ;) ) und b) mod_fcgid liegt in einer ziemlich alten Version vor -> in den neueren wurden viel Bugfixes gemacht.

Des Weiteren ist in Sarge das neue mod_fcgid nicht nutzbar ( aus TESTING) ohne an den Abhängigkeiten rumzuschrauben, wenn man es nicht selbst kompiliert, da hier unter Debian der Apache 2.2 verlangt wird.

Ein Update auf Apache2.2 unter Sarge ist mir persönlich um Produktivbetrieb zu riskant, da noch nicht ausprobiert.

Kase
Beiträge: 124
Registriert: 24.01.2005 22:15:40

Beitrag von Kase » 09.03.2007 19:22:24

@Svenny:

Da ist noch was grundlegendes faul, poste mal bitte deine Configs:

fcgid.conf und dein vHost (fcgid.conf ganz und vhost mindestens die Zeilen SuexecUserGroup ... und FCGIWrapper ...)

Es ist sehr merkwürdig, warum er da "php.php" ausführen will, normalerweise sollte da der Name deines php-fcgi-starters stehen.

PHP Dateien müssen natürlich nicht ausführbar sein. Das, was ausführbar sein muss, ist der php-fcgi-starter.

Antworten