Page 1 of 1
PHP5 als Fast-cgi
Posted: 2008-01-02 19:48
by slayer2205
Hallo,
aufgrund der Sicherheitsproblematik von mod_php will ich PHP5 als fast_cgi installieren. Jetzt ist mir aber aufgefallen, dass, wenn PHP in Dateien schreiben darf, diese dem Benutzer gehören müssen, dem auch die php-instanz gehört.
Also laut Tutorial: Ich kompiliere mit einem Nutzer a in dessen /home/a php. Dann wird php mit den Rechten des Users a ausgeführt. Ist das richtig? Dann würde das ja im Umkehrschluss bedeuten, dass für jeden Benutzer, der ein separates "Web-Verzeichnis" hat, ein eigenes php kompiliert werden muss, damit php in die Dateien des jeweiligen Nutzers schreiben kann?! Das kann ich mir eigentlich nicht vorstellen
Re: PHP5 als Fast-cgi
Posted: 2008-01-02 20:07
by Roger Wilco
slayer2205 wrote:Jetzt ist mir aber aufgefallen, dass, wenn PHP in Dateien schreiben darf, diese dem Benutzer gehören müssen, dem auch die php-instanz gehört.
Das ist ein Feature von SuExec und nicht von mod_fcgid, nur mal so am Rande.
slayer2205 wrote:Also laut Tutorial: Ich kompiliere mit einem Nutzer a in dessen /home/a php. Dann wird php mit den Rechten des Users a ausgeführt. Ist das richtig?
Ja, allerdings reicht es aus, wenn im Homeverzeichnis des Benutzers ein entsprechendes Wrapperskript (im Besitz des Benutzers, wg. SuExec) für den systemweit installierten PHP-Interpreter liegt. Du brauchst dort keinen kompletten PHP-Interpreter speichern, wenn du nicht willst.
Re: PHP5 als Fast-cgi
Posted: 2008-01-03 09:18
by slayer2205
Da muss ich leider noch mal nachhaken. Vielleicht suche ich nach den falschen Stichwörtern. Wie sieht so ein Wrapper-Skript aus?
Re: PHP5 als Fast-cgi
Posted: 2008-01-03 11:18
by Roger Wilco
Re: PHP5 als Fast-cgi
Posted: 2008-01-06 14:33
by slayer2205
So - ich habe jetzt php5 und apache2 mit allem installiert (alles mit apt-get) und es sollte eigentlich funktionieren. Tut es aber nicht. Ich bekomme die Datei zum Download angeboten
Vielleicht kann mir da jemand helfen. Zur Veranschaulichung
/var/www/vhosts/fa62/conf/php5-fcgid-htdocs
/var/www/vhosts/fa62/htdocs/html/index.php
/etc/apache2/sites-enabled/vhost-fa62
/usr/lib/cgi-bin/php5 (Funktioniert auch -> php5 -v erzeugt eine korrekte Ausgabe)
/etc/php5/apache2/php.ini
php5-fcgid-htdocs:
Code: Select all
#!/bin/sh
PHPRC="/etc/php5/apache2/"
export PHPRC
exec /usr/lib/cgi-bin/php5
vhost-fa62:
Code: Select all
<VirtualHost 78.46.43.174>
ServerName fa62.forum
AddHandler cfgid-script .php
SuExecUserGroup fa62web fa62web
DocumentRoot /var/www/vhosts/fa62/htdocs/html
<Directory /var/www/vhosts/fa62/htdocs/html>
Order allow,deny
Allow from all
</Directory>
#Web-Verzeichnis
<Directory /var/www/vhosts/fa62/htdocs>
Options +ExecCGI
FCGIWrapper /var/www/vhosts/fa62/conf/php5-fcgid-htdocs .php
</Directory>
</VirtualHost>
fa62.forum habe ich auf meinem lokalen System in die hosts eingetragen, damit ich mit einem Namen statt der IP arbeiten kann.
Fehlt noch Information? Oder kann man hieraus bereits den Fehler erkennen?
Re: PHP5 als Fast-cgi
Posted: 2008-01-06 15:21
by Joe User
Re: PHP5 als Fast-cgi
Posted: 2008-01-06 15:34
by slayer2205
Stimmt :)
Geht aber trotzdem noch nicht... :(
Re: PHP5 als Fast-cgi
Posted: 2008-01-07 20:00
by slayer2205
Muss man evtl. für suexec explizit das Verzeichnis angeben, unterhalb dessen es tätig werden soll?
EDIT: ES GEHT!! Ich werd bekloppt.. Da muss an irgendeiner Stelle eine Rechtevergabe nicht gestimmt haben.. Trotzdem danke an alle für's Lesen und helfen:)
Re: PHP5 als Fast-cgi
Posted: 2008-01-08 18:35
by slayer2205
Jetzt habe ich doch wieder ein Problem. Und zwar wird suExec zwar offenbar ausgeführt, aber es entsteht ein 500 internal error. Das seltsame ist, dass in der suexec.log dies auftaucht:
[2008-01-08 18:34:02]: uid: (1001/fa62web) gid: (1001/1001) cmd: index.php
Sagt das jemandem was?
Re: PHP5 als Fast-cgi
Posted: 2008-01-08 18:44
by Roger Wilco
Was steht denn zum gleichen Zeitpunkt im Error Log?
Re: PHP5 als Fast-cgi
Posted: 2008-01-08 19:50
by slayer2205
Da kommt Folgendes:
Code: Select all
[Tue Jan 08 19:48:58 2008] [info] (104)Connection reset by peer: mod_fcgid: read: read data from fastcgi server error.
[Tue Jan 08 19:48:58 2008] [error] [client 77.184.246.85] Premature end of script headers: index.php
Vorsichtshalber noch mal der vhost (ICh habe auf dem Server noch keine Domain
Code: Select all
<VirtualHost 78.46.43.174>
ServerName 78.46.43.174
SuExecUserGroup fa62web fa62web
AddHandler fcgid-script .php
DocumentRoot /var/www/vhosts/no_domain/web/htdocs
<Directory /var/www/vhosts/no_domain/web/htdocs>
Order allow,deny
Allow from all
</Directory>
#Web-Verzeichnis
<Directory /var/www/vhosts/no_domain/web>
FCGIWrapper /var/www/vhosts/no_domain/php-fcgi/php5-fcgid-start$
Options +ExecCGI
</Directory>
ErrorLog /var/www/vhosts/no_domain/log/error.log
LogLevel debug
CustomLog /var/www/vhosts/no_domain/log/access.log combined
</VirtualHost>
Re: PHP5 als Fast-cgi
Posted: 2008-01-08 20:27
by slayer2205
Ich krieg echt 'ne Krise! Jetzt geht das Ganze auf einmal wieder. Der Fehler war, dass ich mit Putty den VirtualHost von einer Datei in die andere kopiert habe. Das Problem war, dass eine Zeile länger als 80 Zeichen war. Somit habe ich das "$" am Ende der Zeile mit kopiert. Somit stand da:
Code: Select all
CGIWrapper /var/www/vhosts/no_domain/php-fcgi/php5-fcgid-start$
statt
Code: Select all
CGIWrapper /var/www/vhosts/no_domain/php-fcgi/php5-fcgid-starter .php
Das ist mir peinlich :oops: