PHP5 als Fast-cgi

Apache, Lighttpd, nginx, Cherokee
slayer2205
Posts: 48
Joined: 2007-12-27 17:33

PHP5 als Fast-cgi

Post by slayer2205 » 2008-01-02 19:48

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

Roger Wilco
Administrator
Administrator
Posts: 6001
Joined: 2004-05-23 12:53

Re: PHP5 als Fast-cgi

Post by Roger Wilco » 2008-01-02 20:07

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.

slayer2205
Posts: 48
Joined: 2007-12-27 17:33

Re: PHP5 als Fast-cgi

Post by slayer2205 » 2008-01-03 09:18

Da muss ich leider noch mal nachhaken. Vielleicht suche ich nach den falschen Stichwörtern. Wie sieht so ein Wrapper-Skript aus?

Roger Wilco
Administrator
Administrator
Posts: 6001
Joined: 2004-05-23 12:53

Re: PHP5 als Fast-cgi

Post by Roger Wilco » 2008-01-03 11:18


slayer2205
Posts: 48
Joined: 2007-12-27 17:33

Re: PHP5 als Fast-cgi

Post by slayer2205 » 2008-01-06 14:33

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?

User avatar
Joe User
Project Manager
Project Manager
Posts: 11599
Joined: 2003-02-27 01:00
Location: Hamburg

Re: PHP5 als Fast-cgi

Post by Joe User » 2008-01-06 15:21

slayer2205 wrote:

Code: Select all

        AddHandler cfgid-script .php

Fipptehler...
PayPal.Me/JoeUserFreeBSD Remote Installation
Wings for LifeWings for Life World Run

„If there’s more than one possible outcome of a job or task, and one
of those outcomes will result in disaster or an undesirable consequence,
then somebody will do it that way.“ -- Edward Aloysius Murphy Jr.

slayer2205
Posts: 48
Joined: 2007-12-27 17:33

Re: PHP5 als Fast-cgi

Post by slayer2205 » 2008-01-06 15:34

Stimmt :)

Geht aber trotzdem noch nicht... :(

slayer2205
Posts: 48
Joined: 2007-12-27 17:33

Re: PHP5 als Fast-cgi

Post by slayer2205 » 2008-01-07 20:00

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:)

slayer2205
Posts: 48
Joined: 2007-12-27 17:33

Re: PHP5 als Fast-cgi

Post by slayer2205 » 2008-01-08 18:35

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?

Roger Wilco
Administrator
Administrator
Posts: 6001
Joined: 2004-05-23 12:53

Re: PHP5 als Fast-cgi

Post by Roger Wilco » 2008-01-08 18:44

Was steht denn zum gleichen Zeitpunkt im Error Log?

slayer2205
Posts: 48
Joined: 2007-12-27 17:33

Re: PHP5 als Fast-cgi

Post by slayer2205 » 2008-01-08 19:50

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>

slayer2205
Posts: 48
Joined: 2007-12-27 17:33

Re: PHP5 als Fast-cgi

Post by slayer2205 » 2008-01-08 20:27

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: