Hallo zusammen,
ich habe einen Apache Webserver mit mod_fastcgi und suexec konfiguriert.
Um PHP auszuführen habe ich ein Script erstellt, welches ein paar Einstellungen setzt und dann PHP aufruft.
Da ich auch noch suexec verwende wird das Script das PHP aufruft immer unter einem Benutzer (und einer Gruppe) die im VirtualHost konfiguriert ist ausgeführt und somit auch PHP unter diesem Benutzer ausgeführt.
Die Konfiguration ist folgendem ähnlich:
http://www.debianhowto.de/doku.php/de:h ... 2_php-fcgi
http://www.fastcgi.com/docs/faq.html#PHP
http://www.fastcgi.com/mod_fastcgi/docs ... stcgi.html (mod_fastcgi Apache Doku)
Es scheint momentan notwendig zu sein, für jeden VirtualHost ein eigenes Script zu haben, welches dann PHP aufruft.
Mehrere VirtualHosts können nicht ein Script benutzen, welches PHP aufruft, weil suexec dann meckern würde (UID bzw. GID mismatch.).
Mein Problem:
Ich würde gerne nur ein Script benutzen (das dann PHP aufruft), welches alle VirtualHosts aufrufen können und somit mittels suexec unter verschiedenen Benutzern ausgeführt wird.
Noch lieber würde ich die ganze Konfiguration nur im VirtualHost - Abschnitt vornehmen und garnicht erst das Script aufrufen (bsp. die PHP-Binary direkt aufrufen.).
Ich sehe keine Möglichkeit wie das gehen kann (mir fallen nur Gründe ein warum es mit suexec nicht funktionieren kann), darum hoffe ich, dass mir jemand mit mehr Erfahrung weiterhelfen kann...
Nochmal: Ich möchte vermeiden für jeden VirtualHost ein eigenes Script erstellen zu müssen.
Apache + fcgi + suexec | EIN php-call-script für X vHosts
-
- Posts: 74
- Joined: 2003-09-14 15:23
- Location: Münster
-
- Posts: 333
- Joined: 2003-02-12 14:35
- Location: Bern, Schweiz
Re: Apache + fcgi + suexec | EIN php-call-script für X vHosts
Hast du mal daran gedacht, nur ein Virtual Host mit "ServerAlias" zu verwenden und im Script entsprechend auf die URL zu reagieren?
-
- Posts: 74
- Joined: 2003-09-14 15:23
- Location: Münster
Re: Apache + fcgi + suexec | EIN php-call-script für X vHosts
Ich brauche mehrere VirtualHosts...
Wie käme man denn im Shell Script an die URL ?
Wie käme man denn im Shell Script an die URL ?
-
- Posts: 333
- Joined: 2003-02-12 14:35
- Location: Bern, Schweiz
Re: Apache + fcgi + suexec | EIN php-call-script für X vHosts
Wieso ein Shell Script? Startest du ein PHP-Script über das CLI?
Sorry ich blick gerade nicht durch...
Edit:
Uff, da merkt man wie wenig ich geschlafen habe ;)
Ich sitz voll auf der Leitung. Melde mich wieder wenn ich eine Idee habe...
Nichts für ungut.
Sorry ich blick gerade nicht durch...
Edit:
Uff, da merkt man wie wenig ich geschlafen habe ;)
Ich sitz voll auf der Leitung. Melde mich wieder wenn ich eine Idee habe...
Nichts für ungut.
-
- Posts: 74
- Joined: 2003-09-14 15:23
- Location: Münster
Re: Apache + fcgi + suexec | EIN php-call-script für X vHosts
Vielleicht habe ich es auch etwas konfus beschrieben.
Wenn man mod_fastcgi benutzt, dann wird PHP über ein shell script aufgerufen (oder auch das Binary direkt)...
fastcgi.conf
php-fcgi
... im VirtualHost steht etwas wie:
Das Script php-fcgi wird also unter dem Benutzer USER und der Gruppe GROUP ausgeführt.
Das natürlich nur wenn das Script auch USER:GRUPPE gehört, sonst meckert suexec.
Wenn ein anderer VirtualHost nun also das Script aufrufen möchte, muss das Script dessen USER:GROUP aufweisen, es brauch also andere Berechtigungen.
Das führt dazu dass es mehrere Scripts geben muss die alle gleich aussehen (wenn man nicht unterschiedliche Einstellungen vornehmen mag) nur damit PHP unter anderen Berechtigungen ausgeführt wird.
Wenn man mod_fastcgi benutzt, dann wird PHP über ein shell script aufgerufen (oder auch das Binary direkt)...
fastcgi.conf
Code: Select all
<IfModule mod_fastcgi.c>
FastCgiWrapper On
AddHandler php-fastcgi .php
ScriptAlias /cgi-bin/ /var/www/cgi-bin/
Action php-fastcgi /cgi-bin/php-fcgi
AddType application/x-httpd-php .php
</IfModule>
Code: Select all
#!/bin/sh
PHPRC="/etc/php5/cgi"
export PHPRC
PHP_FCGI_CHILDREN=4
export PHP_FCGI_CHILDREN
exec /usr/bin/php-cgi
Code: Select all
<VirtualHost *:80>
.
.
.
SuexecUserGroup USER GROUP
.
.
.
</VirtualHost>
Das natürlich nur wenn das Script auch USER:GRUPPE gehört, sonst meckert suexec.
Wenn ein anderer VirtualHost nun also das Script aufrufen möchte, muss das Script dessen USER:GROUP aufweisen, es brauch also andere Berechtigungen.
Das führt dazu dass es mehrere Scripts geben muss die alle gleich aussehen (wenn man nicht unterschiedliche Einstellungen vornehmen mag) nur damit PHP unter anderen Berechtigungen ausgeführt wird.
-
- Posts: 5923
- Joined: 2004-05-23 12:53
Re: Apache + fcgi + suexec | EIN php-call-script für X vHosts
Richtig. Für alles andere müsstest du dein SuExec-Binary patchen. Oder du benutzt SuPHP, wobei dann für jeden Request der Interpreter neu geforkt werden muss.hever wrote:Wenn ein anderer VirtualHost nun also das Script aufrufen möchte, muss das Script dessen USER:GROUP aufweisen, es brauch also andere Berechtigungen.
Das führt dazu dass es mehrere Scripts geben muss die alle gleich aussehen (wenn man nicht unterschiedliche Einstellungen vornehmen mag) nur damit PHP unter anderen Berechtigungen ausgeführt wird.
BTW: mod_fastcgi für den Apache httpd wird nicht mehr weiterentwickelt. Du solltest auf mod_fcgid umstellen.
-
- Posts: 74
- Joined: 2003-09-14 15:23
- Location: Münster
Re: Apache + fcgi + suexec | EIN php-call-script für X vHosts
Ist mein anliegen denn so besonders, will man wirklich meistens für jeden VirtualHost ein eigenes Script anlegen und liegt meine Zielkonfiguration so daneben ?!
-
- Posts: 74
- Joined: 2003-09-14 15:23
- Location: Münster
Re: Apache + fcgi + suexec | EIN php-call-script für X vHosts
Unter Verwendung von mod_fcgid und
erhalte ich folgende Fehlermeldung:
FCGIWrapper takes 1-2 arguments, The CGI wrapper setting
Wie kann ich mehrere Erweiterungen neben .php als PHP Script ausführen lassen ?
Code: Select all
FCGIWrapper /var/www/cgi-bin/php-fcgi .php .php4
FCGIWrapper takes 1-2 arguments, The CGI wrapper setting
Wie kann ich mehrere Erweiterungen neben .php als PHP Script ausführen lassen ?
-
- Posts: 74
- Joined: 2003-09-14 15:23
- Location: Münster
Re: Apache + fcgi + suexec | EIN php-call-script für X vHosts
Folgende Konfiguration funktioniert, ich finde es mit dem doppelten FCGIWrapper jedoch noch etwas unschön.
Kann mir jemand erklären warum "AddHandler fcgid-script .php4 .php" notwendig ist ?
Code: Select all
<VirtualHost *>
SuexecUserGroup USER GROUP
DocumentRoot /var/www/
AddHandler fcgid-script .php4 .php
<Directory /var/www/test>
FCGIWrapper /var/www/cgi-bin/php-fcgi .php
FCGIWrapper /var/www/cgi-bin/php-fcgi .php4
Options +ExecCGI
Order Allow,Deny
Allow from All
</Directory>
</VirtualHost>