PHP als fastcgi oder Modul

porschinho

Registered User
Hallo.

Mit Plesk 9 besteht ja jetzt die Möglichkeit pro Domain zu entscheiden, ob PHP als Apache-Modul oder im fastCGI Modus laufen soll.

Meine Frage ist nun, sind durch fastCGI Performancevorteile gegenüber der Modulvariante zu erwarten? Da ich den Server alleine nutze, spielen Sicherheitsaspekte bei der Auswahl keine Rolle!
 
FastCGI hat einige Vorteile. U.A. eine eigene php.ini für jeden VHost und das Vermeiden des Apache-Filedescriptor-WTF in PHP, mit dem nachweislich der Apache komplett zur Laufzeit durch einen anderen Service ausgetauscht werden kann.
Da PHP nicht threadsafe ist, ist FastCGI auch Voraussetzung für den Einsatz von Apache2-mpm-worker.

Wenn du nur eigene Sachen auf der Kiste laufen hast und keinen Hochleistungs-Webserver brauchst, sollte die Variante als Modul aber ausreichend sein.
 
Wäre schön, wenn's so wäre. Zumindest ist nich dokumentiert wie man einen php.ini pro Vhost macht oder wo die liegen muss. Also bin ich erst einmal bei der "alten" Methode geblieben wozu ich hier auch ein Howto verfasst hatte. Falls du weißt wie man das quasi "einfach" mit Plesk 9 hinbekommt, wäre das toll wenn du mal mitteilen würdest :)
 
Hallo,

Hat sich mittlerweile mal noch jemand mit dem Problem auseinander gesetzt? Man kann ja nun wie gesagt schön auswählen ob man den vhost als apache modul, cgi, fastcgi laufen haben will, wählt man aber cgi oder fastcgi so wird die php.ini aus "/etc/php5/" genutzt. Wie könnte man eine php.ini pro vhost verwenden? Sobald man obiges auswählt wird automatisc das php5-cgi binary aus /usr/bin verwendet.

Meine Idee war folgende, in /usr/bin das php5-cgi gegen ein script austauschen, das so in der Art aussieht:

Code:
#!/bin/sh
PHPRC='/var/www/vhosts/@domain_name@/cgi-bin'
export PHPRC
exec /usr/bin/php5-cgi.old

Nun, mit der Methode kann ich hier der php5-cgi sagen in welchem Pfad eine php.ini verwendet werden soll, Problem ist nur, obige Variable funktioniert nur wenn Plesk ein script anfasst und umkopiert (von skeleton nach vhost z.b., dann wird der domain name eingesetzt). Mein Grundproblem mit dieser Methode ist also, wie krieg ich den Pfad der jeweiligen Domain aus der grad das script aufgerufen wird IN den Pfad rein.


Falls wer eine andere Methode kennt um das hinzubekommen, wäre ich dankbar. Hier im Board unter FAQ's und Anleitungen gibts zwar von mir selbst ein Howto aber damit kann man nicht wirklich die neue Funktion in Plesk9 sinnvoll nutzen.
 
Du könntest den aktuellen Pfad oder Domainnamen (oder welche Information du auch immer benötigst) als Umgebungsvariable setzen. Der Apache httpd bietet dafür die Direktive SetEnv.
 
Das geht dann aber auch nicht dynamisch. Er müsste ja immer den Pfad übergeben aus dem der jeweilige Aufruf des cgi binary's kommt. Also z.b. von Kunde1 wird die Seite aufgerufen, gleichzeitig von Kunde2, nun hätten wir 2 Pfade. Ich müsste die dann quasi alle setzen und jedes mal ein Script pro Vhost aufrufen. Das Ziel war ja die "unaufwändige" Einstellung in Plesk9 verwenden zu können ohne selbst dahinter einen Riesen Aufstand zu machen :)
 
So, ich habe jetzt erst Zeit gefunden. Sorry, aber deine Anwort ist leider überhaupt nicht hilfreich. Was soll mir denn der Satz
"Mit den Plesk-Templates für die Apache-Konfigurationsdateien ist das dynamisch genug."
sagen ? Das Problem hast du erfasst? Ich möchte das ja alles pro Vhost machen, also nutzt mir das setzen EINES Pfades ja nichts.
 
Das Problem hast du erfasst?
Ja, danke der Nachfrage. Ich denke, dass ich in dem Thema recht gut drin bin.

Bist du dir hingegen sicher, dass du das Konzept von Templates[1] voll und ganz verstanden hast?

[1]: (engl.) template [tech.] - die Schablone, die Vorlage
 
In der Tat hab ich das sehr gut, ich will mir hier auch nicht streiten. Es wäre nur schön gewesen du hättest mal erwähnt von welchem Template du eigentlich redest, sorry, das geht einfach aus dem ganzen Zusammenhang nicht hervor. Aber es ist ok, du musst natürlich nicht helfen, danke trotzdem!
 
Danke. Allerdings habe ich ja genau diese Variable z.B. benutzt wie du in meinem ersten Beitrag siehst, diese funktioniert aber nicht wenn man einfach nur ein Script aufruft, diese funktioniert NUR bei den Skeletons, das war oder ist ja mein Problem.
 
Also ich weiß was du meinst, aber ich geb zu, ich knobel grad wieder rum, denn das Script was letzlich das binary aufruft, ist immer zentral in /usr/bin und genau diesem müsste ich ja quasi beim Aufruf aus einem vhost heraus immer einen anderen Pfad mitgeben...
 
Back
Top