Debian: Apache2 und PHP via libapache2-mod-fastcgi

Apache, Lighttpd, nginx, Cherokee
paeddl
Posts: 3
Joined: 2007-05-13 12:27
 

Debian: Apache2 und PHP via libapache2-mod-fastcgi

Post by paeddl »

Hiho,

ich hab einen Root-Server mit Debian Etch laufen. Darauf habe ich ich den Apache2 als MPM-Worker installiert und versuche nun PHP über FastCGI laufen zu lassen. Da ich alles mithilfe der Debian-Pakete installieren möchte, hab ich auf libapache2-mod-fastcgi aus der "non-free"-Sparte zurückgegriffen. Nach der Installation via aptitude, bin ich laut dieser Anleitung vorgegangen:

http://blog.robinz.info/archives/2006/0 ... in-debian/

Ich legte also in meinem Webserver-Verzeichnis einen Link zum CGI-Modul an und kopierte die beschriebenen Phrase an die richtige Stelle meiner Config für die Site.

etc/apache2/sites-available/default sieht bei mir also so aus:

Code: Select all

NameVirtualHost *

#Ergänzung für FastCGI
FastCgiServer /var/www/cgi-bin/php5.fcgi

<VirtualHost *>

	#Ergänzung für PHP via FastCGI
	ScriptAlias /fcgi-bin/ /var/www/cgi-bin/

	Options ExecCGI
	SetHandler fastcgi-script

	AddHandler php-fastcgi .php
	Action php-fastcgi /fcgi-bin/php5.fcgi
	AddType application/x-httpd-php .php
	#Ergänzung Ende
	
	DocumentRoot /var/www/
	<Directory />
		Options FollowSymLinks
		AllowOverride None
	</Directory>

	ScriptAlias /cgi-bin/ /usr/lib/cgi-bin/
	<Directory "/usr/lib/cgi-bin">
		AllowOverride None
		Options ExecCGI -MultiViews +SymLinksIfOwnerMatch
		Order allow,deny
		Allow from all
	</Directory>

</VirtualHost>
mod_actions hab ich aktiviert, aber ich erhalte dennoch beim Aufruf einer PHP-Seite folgende Fehlermeldung:
You don't have permission to access /apache2-default/index.php on this server.
Die Log-Datei sagt dazu Folgendes:
FastCGI: invalid (dynamic) server "/var/www/apache2-default/index.php": access for server (uid 33, gid 33) not allowed: execute not allowed
Wenn ich das Verzeichnis an sich aufrufe:
FastCGI: invalid (dynamic) server "/var/www/apache2-default/": script is a directory!
*ach nee, wirklich?*

Google flüsterte mir, dass in diesem Forum schon eine Menge Beiträge über ähnliche Probleme verfasst wurden. Auch nach Eingabe meiner Fehlermeldung in die SF dieses Boards fühlte ich mich kurzzeitig verstanden und dachte die Lösung gefunden zu haben, aber Pustekuchen.

Lange Rede, kurzer Sinn: Könnt ihr mir helfen? :)
ghoster1970
Posts: 71
Joined: 2006-06-21 13:31
Location: Potsdam
 

Re: Debian: Apache2 und PHP via libapache2-mod-fastcgi

Post by ghoster1970 »

suexec fordert eine UID von mindestens 100, daher ist www-data dafür nicht geeignet weil dieser 33 hat ;)
paeddl
Posts: 3
Joined: 2007-05-13 12:27
 

Re: Debian: Apache2 und PHP via libapache2-mod-fastcgi

Post by paeddl »

Danke dafür!

Ich hab jetzt einen neuen User angelegt und zudem ein neuen VirtualHost. In dessen Verzeichnis habe ich jetzt noch mal die PHP-Datei gepackt. Besitzer dieser Datei ist genau dieser neue User. Daraufhin lass ich dies in den Logs:
FastCGI: "ExecCGI Option" is off in this directory: /index.php
Das hab ich dann in das Directory geschrieben:
<Directory "/var/www/web">
Options FollowSymLinks
AllowOverride None
Options ExecCGI
</Directory>
So und wenn ich jetzt das PHP-Skript aufrufe, dauert es erstmal ewig um dann aber mit einem Internal Server Error abzubrechen.

error.log:
FastCGI: comm with (dynamic) server "/var/www/web/index.php" aborted: (first read) idle timeout (30 sec)
FastCGI: incomplete headers (0 bytes) received from server "/var/www/web/index.php"
FastCGI: (dynamic) server "/var/www/web/index.php" has failed to remain running for 30 seconds given 3 attempts, its restart interval has been backed off to 600 seconds
Ja und nu? :D
kase
Posts: 1031
Joined: 2002-10-14 22:56
 

Re: Debian: Apache2 und PHP via libapache2-mod-fastcgi

Post by kase »

Inhalt und Rechte der Datei php5.fcgi.
cirox
Posts: 212
Joined: 2006-05-08 23:20
Location: Berlin
 

Re: Debian: Apache2 und PHP via libapache2-mod-fastcgi

Post by cirox »

Paeddl wrote: hab ich auf libapache2-mod-fastcgi aus der "non-free"-Sparte zurückgegriffen.
Das war vielleicht nicht die beste Idee, weil mod_fastcgi veraltet ist. Versuchs mal lieber mit mod_fcgi. Das Verfahren sollte das Gleiche sein und auf die selben Sachen (siehe kase) musst Du auch achten.

Als Tip: Benutze gleich PHP 5.2.1 oder PHP 5.2.2 ohne Child Prozesse. Läuft hier tadelos ohne dir den Speicher mit sinnlosen Prozessen, die dann unter Umständen noch in den SWAP gehen zuzumüllen.
paeddl
Posts: 3
Joined: 2007-05-13 12:27
 

Re: Debian: Apache2 und PHP via libapache2-mod-fastcgi

Post by paeddl »

Das ist ja echt lustig. Genau in dem Moment, als ich in Putty war und meinen Augen nicht traute als ich "ps aux" eingab und die ganzen Prozesse sah, benachrichtigte mich mein E-Mail-Client über den neuen Beitrag von dir :D

Der Beitrag hat wirklich genau gepasst :D Also das mit den Prozessen will ich so schnell, wie möglich ändern. Das geht ja so gar nicht. Das frisst mir echt den Arbeitsspeicher auf.

mod_fcgi gibts nicht als Debian-Paket, oder heißt das da vielleicht irgendwie anders?

Hab da gerade mal ne Anleitung zu gefunden:

http://o9y.net/archives/2006/02/17/ruby ... er-debian/

Muss ich die Anpassung am Makefile auch vornehmen? Hast du damit Erfahrung?

PHP5.2.2 bekomme ich noch über aptitude, wenn ich den unstable-Zweig wähle. Sollte ich das wirklich tun?

Weiß hier vielleicht auch ein Anderer Rat?

Danke auf jeden Fall schon mal!
cirox
Posts: 212
Joined: 2006-05-08 23:20
Location: Berlin
 

Re: Debian: Apache2 und PHP via libapache2-mod-fastcgi

Post by cirox »

Schau mal im Debian Forum vorbei, da ist alles wichtige beschrieben in einem ellenlangen Thread.

Wenn Du Etch hast gibt es da mod_fcgi, bei Sarge musst Du dir das .deb Paket holen und die Abhängigkeiten ändern, da die Version in Sarge zu alt ist. Steht auch im Debian Forum.

Du kannst ja PHP5.2.1 + von den Backports nehmen oder kompilierst das gleich selbst.

PS: Ich seh gerade Du hast ja etch. Da gibt es doch alles ausser PHP 5.2.1 +
kase
Posts: 1031
Joined: 2002-10-14 22:56
 

Re: Debian: Apache2 und PHP via libapache2-mod-fastcgi

Post by kase »

Die PHP Version in ETCH (5.2.0) ist ebenfalls vollkommen ausreichend.