Erfahrungen apache2 mit PHP 5 als FastCGI

Debian macht sich hervorragend als Web- und Mailserver. Schau auch in den " Tipps und Tricks"-Bereich.
Benutzeravatar
rolo
Beiträge: 2697
Registriert: 29.08.2002 12:12:25
Lizenz eigener Beiträge: neue BSD Lizenz
Wohnort: hannover

Beitrag von rolo » 24.01.2007 14:32:32

ich nehme das mal an:

Code: Alles auswählen

php5-cgi -i | grep FastCGI
<tr><td class="e">Server API </td><td class="v">CGI/FastCGI </td></tr>

Kase
Beiträge: 124
Registriert: 24.01.2005 22:15:40

Re: Erfahrungen apache2 mit PHP 5 als FastCGI

Beitrag von Kase » 24.01.2007 14:34:37

mundaun hat geschrieben: wobei das leider mit Debian Etch nicht mehr möglich sein wird, da libapache2-mod-fcgid rausgeflogen ist, und da es für PHP ebenfalls kein FCGI-Binary geben wird. Das heisst, man muss weiterhin den Umweg über inoffizielle Pakete bzw. selber Kompilieren machen. Schade...

Code: Alles auswählen

cd ~
mkdir fcgid
cd fcgid
echo "deb-src http://ftp.de.debian.org/debian/ unstable main" >> /etc/apt/sources.list
echo "APT::Default-Release "testing";" >> /etc/apt/apt.conf.d/70debconf
apt-get update
apt-get -t unstable source libapache2-mod-fcgid
cd libapache2-mod-fcgid-2.0
dpkg-checkbuilddeps
dpkg-buildpackage
cd ..
dpkg -i libapache2-mod-fcgid_2.0-1_i386.deb
Ich bin mir aber relativ sicher, dass mod_fcgid bald wieder in den ETCH Zweig aufgenommen werden wird, weil es einfach von sehr vielen benutzt wird.

Ein php-fcgi Binary gibt es, denn die fastcgi Unterstützung ist im normalen CGI Binary schon mit drin, also einfach das CGI installieren.

@Pawel:
Das mit den Emails kann man so oder so sehen *ggg* Vieles waren aber auch einfach nur "Danke" Mails :)

Mit dem Kopieren beim immutable Bit hast du natürlich recht, ist sehr unschön, aber was macht man nicht alles für die Sicherheit :)

Waleb
Beiträge: 42
Registriert: 22.03.2005 18:02:13
Kontaktdaten:

Beitrag von Waleb » 24.02.2007 14:35:16

Hallo,

sehr schöne Anleitung hier.

Ich hab das nun alles so eingerichtet aber leider parst er die php Dateien nicht sondern bietet sie zum downloaden an.
Ich nutze Debian Etch.

virualhost:

Code: Alles auswählen

NameVirtualHost *
<VirtualHost *>
        SuExecUserGroup wwwbenutzer wwwbenutzer

        ServerName waleb.net
        ServerAlias www.waleb.net

        DocumentRoot /var/www/waleb.net/
        <Directory /var/www/waleb.net>
                FCGIWrapper /var/www/conf/php-fcgi-waleb.net .php
                Options FollowSymLinks MultiViews +ExecCGI
                AllowOverride None
                Order allow,deny
                allow from all
        </Directory>
        ErrorLog /var/log/apache2/error.log
        # Possible values include: debug, info, notice, warn, error, crit,
        # alert, emerg.
        LogLevel warn
        CustomLog /var/log/apache2/access.log combined
        ServerSignature Off
</VirtualHost>

/var/www/conf/php-fcgi-waleb.net

Code: Alles auswählen

#!/bin/sh
PHPRC="/etc/php5/cgi"
export PHPRC
PHP_FCGI_CHILDREN=3
export PHP_FCGI_CHILDREN
exec /usr/bin/php5-cgi
Ich habe den Apache schon neu gestartet aber ohne Ergebnis. Leider spuckt google nicht allzuviele nützliche Seiten über fcgi und php aus.

Grüße

Benutzeravatar
rolo
Beiträge: 2697
Registriert: 29.08.2002 12:12:25
Lizenz eigener Beiträge: neue BSD Lizenz
Wohnort: hannover

Beitrag von rolo » 24.02.2007 14:57:53

hi,

Code: Alles auswählen

DocumentRoot /var/www/waleb.net/
<Directory /var/www/waleb.net> 
...
FCGIWrapper /var/www/conf/php-fcgi-waleb.net .php
du must deinen vhost ebenfalls im conf verzeichnis anlegen. also

Code: Alles auswählen

/var/www/conf/waleb.net
wobei waleb.net das verzeichnis sein sollte indem die dateien für deinen vhost untergebracht sind.
dafür musst du dann natürlich auch DocumentRoot und Directory anpassen.
in der /var/www/conf/php-fcgi-waleb.net muss PHPRC der komplette pfad zu deiner php.ini sein. also statt

Code: Alles auswählen

PHPRC="/etc/php5/cgi"
lieber

Code: Alles auswählen

PHPRC="/etc/php5/cgi/php.ini"
ich habe dann mit etch, nachdem das "meiste" funktioniert, allerdings bisher noch probleme cgi scripte/programme zu starten. siehe hier
Zuletzt geändert von rolo am 24.02.2007 15:18:09, insgesamt 2-mal geändert.

Waleb
Beiträge: 42
Registriert: 22.03.2005 18:02:13
Kontaktdaten:

Beitrag von Waleb » 24.02.2007 15:15:47

Hm, also ich hab jetzt mal aus praktischen Gründen nicht den Vhost nach /var/www/conf/waleb.net verlegt sondern die php-fcgi-waleb.net nach /var/www/ kopiert. Habe den Pfad von FCGIWrapper dementsprechend angepasst.

Den Pfad zur php.ini habe ich nun auch komplettiert aber nach einen restart hat nicht nichts gebessert:

http://waleb.net/w.php

Benutzeravatar
rolo
Beiträge: 2697
Registriert: 29.08.2002 12:12:25
Lizenz eigener Beiträge: neue BSD Lizenz
Wohnort: hannover

Beitrag von rolo » 24.02.2007 15:27:08

setz nochmal hier:

Code: Alles auswählen

DocumentRoot ....
AddHandler fcgid-script .php
den addhandler ein.

Benutzeravatar
rolo
Beiträge: 2697
Registriert: 29.08.2002 12:12:25
Lizenz eigener Beiträge: neue BSD Lizenz
Wohnort: hannover

Beitrag von rolo » 24.02.2007 15:43:48

edit:
wenn's das noch nicht bringt, lösche deinen browser-cache mal. sonst macht der es sich eventuell einfach, und will die seite , obwohl bereits alles auf dem server ok. ist, weiterhin nur downloaden.

Waleb
Beiträge: 42
Registriert: 22.03.2005 18:02:13
Kontaktdaten:

Beitrag von Waleb » 24.02.2007 15:47:27

Nun kommt ne Fehlermeldung http://waleb.net/w.php

Service Temporarily Unavailable

The server is temporarily unable to service your request due to maintenance downtime or capacity problems. Please try again later.

/var/log/apache2/suexec.log

[2007-02-24 15:44:45]: uid: (1001/wwwbenutzer) gid: (1001/1001) cmd: php-fcgi-waleb.net
[2007-02-24 15:44:45]: target uid/gid (1001/1001) mismatch with directory (0/0) or program (0/0)

Benutzeravatar
rolo
Beiträge: 2697
Registriert: 29.08.2002 12:12:25
Lizenz eigener Beiträge: neue BSD Lizenz
Wohnort: hannover

Beitrag von rolo » 24.02.2007 15:55:26

Code: Alles auswählen

mismatch with directory
wie sehen die berechtigungen ab /var/www denn aus? haben die ordner und dateien alle! den richtigen user und die passende gruppe, also wwwbenutzer?

Waleb
Beiträge: 42
Registriert: 22.03.2005 18:02:13
Kontaktdaten:

Beitrag von Waleb » 24.02.2007 16:10:20

Code: Alles auswählen

waleb:/var/www# ls -l -R
.:
total 16
drwxr-xr-x 2 wwwbenutzer wwwbenutzer 4096 2007-02-24 14:32 conf
-rw-r--r-- 1 root        root          21 2007-02-24 13:40 index.php
-rw-r--r-- 1 wwwbenutzer wwwbenutzer  122 2007-02-24 15:12 php-fcgi-waleb.net
drwxr-xr-x 2 waleb       waleb       4096 2007-02-24 15:41 waleb.net

./conf:
total 8
-rw-r--r-- 1 wwwbenutzer wwwbenutzer 114 2007-02-24 13:12 php-fcgi-htdocs
-rw-r--r-- 1 wwwbenutzer wwwbenutzer 114 2007-02-24 13:14 php-fcgi-waleb.net

./waleb.net:
total 16
-rw-r--r-- 1 waleb waleb 669 2007-02-24 15:41 favicon.ico
-rw-r--r-- 1 waleb waleb   4 2007-02-24 13:38 index.html
-rw-r--r-- 1 waleb waleb  26 2007-02-24 13:54 index.php
-rw-r--r-- 1 waleb waleb  21 2007-02-24 13:55 w.php
Müsste stimmen oder?

Waleb
Beiträge: 42
Registriert: 22.03.2005 18:02:13
Kontaktdaten:

Beitrag von Waleb » 24.02.2007 16:14:10

apache2/error.log

Code: Alles auswählen

[Sat Feb 24 16:11:09 2007] [notice] mod_fcgid: call /var/www/waleb.net/w.php with wrapper /var/www/php-fcgi-waleb.net
suexec policy violation: see suexec log for more details
[Sat Feb 24 16:11:09 2007] [notice] mod_fcgid: server /var/www/waleb.net/w.php(6692) started
[Sat Feb 24 16:11:10 2007] [notice] mod_fcgid: call /var/www/waleb.net/w.php with wrapper /var/www/php-fcgi-waleb.net
suexec policy violation: see suexec log for more details
[Sat Feb 24 16:11:10 2007] [notice] mod_fcgid: server /var/www/waleb.net/w.php(6693) started
[Sat Feb 24 16:11:11 2007] [notice] mod_fcgid: call /var/www/waleb.net/w.php with wrapper /var/www/php-fcgi-waleb.net
suexec policy violation: see suexec log for more details
[Sat Feb 24 16:11:11 2007] [notice] mod_fcgid: server /var/www/waleb.net/w.php(6694) started
[Sat Feb 24 16:11:12 2007] [notice] mod_fcgid: call /var/www/waleb.net/w.php with wrapper /var/www/php-fcgi-waleb.net
suexec policy violation: see suexec log for more details
[Sat Feb 24 16:11:12 2007] [notice] mod_fcgid: server /var/www/waleb.net/w.php(6695) started
[Sat Feb 24 16:11:13 2007] [notice] mod_fcgid: call /var/www/waleb.net/w.php with wrapper /var/www/php-fcgi-waleb.net
suexec policy violation: see suexec log for more details
[Sat Feb 24 16:11:13 2007] [notice] mod_fcgid: server /var/www/waleb.net/w.php(6696) started
[Sat Feb 24 16:11:13 2007] [notice] mod_fcgid: process /var/www/waleb.net/w.php(6695) exit(server exited), terminated by calling exit(), return code: 120
[Sat Feb 24 16:11:13 2007] [notice] mod_fcgid: process /var/www/waleb.net/w.php(6694) exit(server exited), terminated by calling exit(), return code: 120
[Sat Feb 24 16:11:13 2007] [notice] mod_fcgid: process /var/www/waleb.net/w.php(6693) exit(server exited), terminated by calling exit(), return code: 120
[Sat Feb 24 16:11:13 2007] [notice] mod_fcgid: process /var/www/waleb.net/w.php(6692) exit(server exited), terminated by calling exit(), return code: 120
[Sat Feb 24 16:11:14 2007] [notice] mod_fcgid: call /var/www/waleb.net/w.php with wrapper /var/www/php-fcgi-waleb.net
suexec policy violation: see suexec log for more details
[Sat Feb 24 16:11:14 2007] [notice] mod_fcgid: server /var/www/waleb.net/w.php(6697) started
[Sat Feb 24 16:11:15 2007] [notice] mod_fcgid: call /var/www/waleb.net/w.php with wrapper /var/www/php-fcgi-waleb.net
suexec policy violation: see suexec log for more details
[Sat Feb 24 16:11:15 2007] [notice] mod_fcgid: server /var/www/waleb.net/w.php(6698) started
[Sat Feb 24 16:11:16 2007] [notice] mod_fcgid: call /var/www/waleb.net/w.php with wrapper /var/www/php-fcgi-waleb.net
suexec policy violation: see suexec log for more details
[Sat Feb 24 16:11:16 2007] [notice] mod_fcgid: server /var/www/waleb.net/w.php(6699) started
[Sat Feb 24 16:11:17 2007] [notice] mod_fcgid: call /var/www/waleb.net/w.php with wrapper /var/www/php-fcgi-waleb.net
suexec policy violation: see suexec log for more details
[Sat Feb 24 16:11:17 2007] [notice] mod_fcgid: server /var/www/waleb.net/w.php(6700) started
[Sat Feb 24 16:11:17 2007] [notice] mod_fcgid: process /var/www/waleb.net/w.php(6699) exit(server exited), terminated by calling exit(), return code: 120
[Sat Feb 24 16:11:17 2007] [notice] mod_fcgid: process /var/www/waleb.net/w.php(6698) exit(server exited), terminated by calling exit(), return code: 120
[Sat Feb 24 16:11:17 2007] [notice] mod_fcgid: process /var/www/waleb.net/w.php(6697) exit(server exited), terminated by calling exit(), return code: 120
[Sat Feb 24 16:11:17 2007] [notice] mod_fcgid: process /var/www/waleb.net/w.php(6696) exit(server exited), terminated by calling exit(), return code: 120
[Sat Feb 24 16:11:21 2007] [notice] mod_fcgid: process /var/www/waleb.net/w.php(6700) exit(server exited), terminated by calling exit(), return code: 120
apache2/suexec.log

Code: Alles auswählen

[2007-02-24 16:11:52]: uid: (1001/wwwbenutzer) gid: (1001/1001) cmd: php-fcgi-waleb.net
[2007-02-24 16:11:52]: target uid/gid (1001/1001) mismatch with directory (0/0) or program (1001/1001)

Benutzeravatar
rolo
Beiträge: 2697
Registriert: 29.08.2002 12:12:25
Lizenz eigener Beiträge: neue BSD Lizenz
Wohnort: hannover

Beitrag von rolo » 24.02.2007 16:14:50

Code: Alles auswählen

chown -R wwwbenutzer:wwwbenutzer /var/www
damit setzt du ab /var/www (rekursiv) wwwbenutzer als user und gruppe ein. ansonsten kommt suexec damit nicht klar.

Waleb
Beiträge: 42
Registriert: 22.03.2005 18:02:13
Kontaktdaten:

Beitrag von Waleb » 24.02.2007 16:23:29

Es geht :D :D :D :D :D :D

juhu. Die php-fcgi-waleb.net wollte auch noch Executerechte und nun gehts!

Danke dir vielmals!

Benutzeravatar
rolo
Beiträge: 2697
Registriert: 29.08.2002 12:12:25
Lizenz eigener Beiträge: neue BSD Lizenz
Wohnort: hannover

Beitrag von rolo » 24.02.2007 16:27:04

setz noch das immutable bit auf die php-fcgi-waleb.net falls noch nicht getan.

Code: Alles auswählen

chattr -V +i php-fcgi-waleb.net

Waleb
Beiträge: 42
Registriert: 22.03.2005 18:02:13
Kontaktdaten:

Beitrag von Waleb » 24.02.2007 16:38:12

Ok, zusammenfassend (als kleinen Merkzettel an mich). Wenn ich einen neuen vhost anlege muss ich:

in /var/www eine neue php-fcgi-xyz - Datei anlegen. (744 owner: xyzbenutzer:xyzbenutzer + immutable bit)
in /var/www einen neuen Ordner "xyz" anlegen (=DocRoot) (owner: xyzbenutzer:xyzbenutzer)
in /etc/apache2/sites-available einen neuen vhost anlegen

Ist das korrekt?

Waleb
Beiträge: 42
Registriert: 22.03.2005 18:02:13
Kontaktdaten:

Beitrag von Waleb » 25.02.2007 17:37:36

Hallo,

ich muss nochmal auf den Threat hier zurückgreifen ;). Ich habe ein bisschen umstrukturiert, nun sieht es so aus:

Code: Alles auswählen

waleb:/var/www# ls -l -R
.:
total 8
drwx--x--x 3 waleb   waleb   4096 2007-02-25 17:00 waleb.net
drwx--x--x 3 wwwroot wwwroot 4096 2007-02-24 17:31 wwwroot

./waleb.net:
total 8
drwx--x--x 2 waleb waleb 4096 2007-02-25 17:04 docroot
-r-x------ 1 waleb waleb  122 2007-02-24 16:39 php-fcgi-waleb.net

./waleb.net/docroot:
total 4
-rwx------ 1 waleb waleb 20 2007-02-24 17:34 index.php

./wwwroot:
total 8
drwx--x--x 2 wwwroot wwwroot 4096 2007-02-24 18:17 docroot
-r-x------ 1 wwwroot wwwroot  121 2007-02-24 17:30 php-fcgi-wwwroot

./wwwroot/docroot:
total 4
-rwx--x--x 1 wwwroot wwwroot 20 2007-02-24 17:40 index.php
lrwxrwxrwx 1 root    root    21 2007-02-24 18:17 phpmyadmin -> /usr/share/phpmyadmin
Ich frage mich momentan wie ich am besten die chmod für die Ordner und Dateien einstelle.

1. Wenn ich 700 oder 770 für die Ordner docroot vergebe werden die Seiten nicht mehr angezeigt:
Forbidden

You don't have permission to access / on this server.
Wenn ich 711 oder 701 setze geht es. Kann mir jemand erklären warum?

2. Warum setze ich dieses Immutable Bit bei den Dateien php-fcgi-xy wenn ich den Benutzern doch die Schreibrechte entziehen kann?

3. Wie verhindere ich das ein User die Daten des anderen sieht? - Ok, chmod 700 aber wenn ein Benutzer eine neue Datei erstellt hat die ja nicht automatisch die Rechte des übergeordneten Ordners oder?

Kase
Beiträge: 124
Registriert: 24.01.2005 22:15:40

Beitrag von Kase » 26.02.2007 15:28:59

1. Das Problem ist, dass alle Files mit einer Endung, die NICHT *.php ist, als User www-data vom Apache versucht werden zu lesen. Nur PHP Dateien werden als USER ausgeführt.

Abhilfe schafft hier folgende Config:

Alle Dateien haben die Rechte USER:www-data 740

PHP kann dann die Dateien als USER:USER durch das 7 für User ausführen.

Der Apache kann alle nicht-PHP-Dateien dank des 4 für die Gruppe www-data lesen. Der Apache selbst muss dafür natürlich als www-data:www-data laufen.

Die Rechte für Others sollten auf jeden Fall 0 sein.

Es ist darauf zu achten, dass PHP-Files als USER:USER und NICHT als USER:www-data ausgeführt werden, da nur so sichergestellt ist, dass PHP nur die Files des vHosts lesen kann.

Außerdem ist darauf zu achten, dass es keinen vHost gibt, der irgendwelche Scripte als www-data ausführen darf, weder User noch Group, www-data dürfen wirklich nur statische Seiten sein (html, Bilder, Files, usw), die der Apache liest.

2. Du setzt das Bit, da die Files dem User gehören müssen, sonst meckert suexec. Natürlich kannst du den Files die Schreibrechte entziehen, da die Files dann aber immer noch dem gleichen User gehören, der sie ausführt, kann der die Schreibrechte natürlich ganz einfach wieder setzen... http://www.php.net/chmod oder http://www.php.net/system

3. Durch die oben beschriebene Config kann kein User die Dateien eines anderen sehen.

Statische Dateien werden durchs DocRoot vom jeweiligen vHost geschützt, Scripte laufen als USER1:USER1 und haben dann natürlich absolut keine Rechte auf andere Scripte, die zum Beispiel USER2:www-data gehören.
Zuletzt geändert von Kase am 26.02.2007 19:35:36, insgesamt 1-mal geändert.

Waleb
Beiträge: 42
Registriert: 22.03.2005 18:02:13
Kontaktdaten:

Beitrag von Waleb » 26.02.2007 17:08:51

Ok, das klappt perfekt.

Ich habe nur noch ein Problem:

Was mache ich wenn jemand der von dem Zeug keine Ahnung hat Dateien hochläd? Seis ftp oder ssh er kann ja jeweils den chmod verändern oder noch warscheinlicher: er wird die Dateien und Ordner schon mit falschem chmod hochladen.

Was kann man da machen?

Kase
Beiträge: 124
Registriert: 24.01.2005 22:15:40

Beitrag von Kase » 26.02.2007 17:16:21

FTP bzw SCP richtig konfigurieren. Stichworte: User, Group, umask (chmod)

Im schlimmsten Fall jede Nacht einen Cronjob laufen lassen, der die Rechte recursiv richtig setzt.

Zonk
Beiträge: 70
Registriert: 27.09.2005 11:00:31
Kontaktdaten:

Beitrag von Zonk » 28.02.2007 21:41:48

Hallo, ich hab mal probiert eurem Howto zu folgen, da ich grade an dem Gleichen problem stehe.
WEnn cih fertig bin, stell ich das ganze auf meiner Wikipage online, damit mehrere Leute diese Hilfe nutzen können.. nun zu minem problem:


hatte bisher PHP5 mit Suexecund fastcgi am laufen, lief allerdings nnciht schön da zwar php funzte, aber suexec nicht..


habe deswegen ganz kahl geschlagne und mit eurem HowTo neu angefangen.. Suexec läut jetzt schön und checkt auch die Filepermissions, jedoch kann ich keine PHP-dateien Starten..

als fehler komtm im apache2/error.log immer

Code: Alles auswählen

[Wed Feb 28 20:04:57 2007] [notice] mod_fcgid: server /var/www/default/web/test.php(31900) started
[Wed Feb 28 20:04:57 2007] [notice] mod_fcgid: server /var/www/default/web/test.php(31901) started
[Wed Feb 28 20:04:57 2007] [notice] mod_fcgid: server /var/www/default/web/test.php(31902) started
[Wed Feb 28 20:04:57 2007] [notice] mod_fcgid: server /var/www/default/web/test.php(31903) started
[Wed Feb 28 20:04:57 2007] [notice] mod_fcgid: server /var/www/default/web/test.php(31904) started
[Wed Feb 28 20:04:57 2007] [notice] mod_fcgid: server /var/www/default/web/test.php(31905) started
[Wed Feb 28 20:04:57 2007] [notice] mod_fcgid: server /var/www/default/web/test.php(31906) started
[Wed Feb 28 20:04:57 2007] [notice] mod_fcgid: server /var/www/default/web/test.php(31907) started
[Wed Feb 28 20:04:57 2007] [notice] mod_fcgid: server /var/www/default/web/test.php(31908) started
[Wed Feb 28 20:04:57 2007] [notice] mod_fcgid: server /var/www/default/web/test.php(31909) started
[Wed Feb 28 20:04:57 2007] [notice] mod_fcgid: server /var/www/default/web/test.php(31910) started
[Wed Feb 28 20:05:03 2007] [notice] mod_fcgid: process /var/www/default/web/test.php(31910) exit(server exited), terminated by calling exit(), return code: 255
[Wed Feb 28 20:05:03 2007] [notice] mod_fcgid: process /var/www/default/web/test.php(31909) exit(server exited), terminated by calling exit(), return code: 255
[Wed Feb 28 20:05:03 2007] [notice] mod_fcgid: process /var/www/default/web/test.php(31908) exit(server exited), terminated by calling exit(), return code: 255
[Wed Feb 28 20:05:03 2007] [notice] mod_fcgid: process /var/www/default/web/test.php(31907) exit(server exited), terminated by calling exit(), return code: 255
[Wed Feb 28 20:05:03 2007] [notice] mod_fcgid: process /var/www/default/web/test.php(31906) exit(server exited), terminated by calling exit(), return code: 255
[Wed Feb 28 20:05:03 2007] [notice] mod_fcgid: process /var/www/default/web/test.php(31905) exit(server exited), terminated by calling exit(), return code: 255
[Wed Feb 28 20:05:03 2007] [notice] mod_fcgid: process /var/www/default/web/test.php(31904) exit(server exited), terminated by calling exit(), return code: 255
[Wed Feb 28 20:05:03 2007] [notice] mod_fcgid: process /var/www/default/web/test.php(31903) exit(server exited), terminated by calling exit(), return code: 255
[Wed Feb 28 20:05:03 2007] [notice] mod_fcgid: process /var/www/default/web/test.php(31902) exit(server exited), terminated by calling exit(), return code: 255
[Wed Feb 28 20:05:03 2007] [notice] mod_fcgid: process /var/www/default/web/test.php(31901) exit(server exited), terminated by calling exit(), return code: 255
[Wed Feb 28 20:05:03 2007] [notice] mod_fcgid: process /var/www/default/web/test.php(31900) exit(server exited), terminated by calling exit(), return code: 255
ich habe den verdacht dass es irgendwie am /var/www/default/conf/php-fcgi-starter liegt, oder an der /etc/apache2/mods-available/fcgid.conf liegt, weiß aber niht was:

mein wrapper /var/www/default/conf/php-fcgi-starter sieht so aus:

Code: Alles auswählen

#!/bin/sh
PHPRC="/var/www/default/conf/"
export PHPRC
PHP_FCGI_CHILDREN=4
export PHP_FCGI_CHILDREN
exec /usr/bin/php5-cgi

meine /etc/apache2/mods-available/fcgid.conf:

Code: Alles auswählen

<IfModule mod_fcgid.c>
  AddHandler fcgid-script .fcgi
  AddHandler fcgid-script .php
#  SocketPath /var/lib/apache2/fcgid/sock
  SocketPath /var/run/apache2/
</IfModule>

Ob der Socket Path der Richtige ist, hab ihc keine Ahnung.. wofür ist er denn? wer legt ihn an und wer nutzt ihn?


Ich hoffe ihr könnt mir helfen.

Grüße Zonk
Who believes to be has stopped to become

Benutzeravatar
rolo
Beiträge: 2697
Registriert: 29.08.2002 12:12:25
Lizenz eigener Beiträge: neue BSD Lizenz
Wohnort: hannover

Beitrag von rolo » 28.02.2007 22:10:34

Code: Alles auswählen

PHPRC="/var/www/default/conf/"
da kommt der pfad zu der von dir für den vhost genutzten php.ini rein. du kannst auch eine seite zurückblättern, da findest du eine möglichkeit.

Code: Alles auswählen

<IfModule mod_fcgid.c>
  AddHandler fcgid-script .fcgi
  AddHandler fcgid-script .php
#  SocketPath /var/lib/apache2/fcgid/sock
  SocketPath /var/run/apache2/
</IfModule> 
hat's einen grund, warum du den SocketPath geändert hast?

ansonsten passen, soweit ich das richtig sehe, diese beiden pfade nicht zusammen:

Code: Alles auswählen

/var/www/default/web/test.php
/var/www/default/conf/php-fcgi-starter
[/code]
Zuletzt geändert von rolo am 28.02.2007 22:36:25, insgesamt 1-mal geändert.

Zonk
Beiträge: 70
Registriert: 27.09.2005 11:00:31
Kontaktdaten:

Beitrag von Zonk » 28.02.2007 22:36:10

nein, nur ein versuch..

Die php ini hab ich einmal als Pfad probiert, einmal als Pfad/php.ini

WElchen Socket hast ud bie dir laufen?

auf dme Debuglevel kommen je nach Socket einmal

Code: Alles auswählen

[debug] arch/unix/fcgid_proc_unix.c(487): (111)Connection refused: mod_fcgid: can't connect unix domain socket: /var/lib/apache2/fcgid/sock/761.0
und einmal

Code: Alles auswählen

 [info] (104)Connection reset by peer: mod_fcgid: read data from fastcgi server error.
Who believes to be has stopped to become

Benutzeravatar
rolo
Beiträge: 2697
Registriert: 29.08.2002 12:12:25
Lizenz eigener Beiträge: neue BSD Lizenz
Wohnort: hannover

Beitrag von rolo » 28.02.2007 22:41:14

> WElchen Socket hast ud bie dir laufen?
den anderen halt:

Code: Alles auswählen

SocketPath /var/lib/apache2/fcgid/sock

Zonk
Beiträge: 70
Registriert: 27.09.2005 11:00:31
Kontaktdaten:

Beitrag von Zonk » 28.02.2007 22:46:35

wie lautet deine fcgi.conf vollständig?

mit deinem socketpath lautet die apache raeaktion:

Code: Alles auswählen

[notice] Apache/2.0.54 (Debian GNU/Linux) configured -- resuming normal operations
[notice] mod_fcgid: server /var/www/default/web/test.php(1178) started
[info] (104)Connection reset by peer: mod_fcgid: read data from fastcgi server error.
[error] [client xxx.xxx.xxx.xxx] Premature end of script headers: test.php
[notice] mod_fcgid: process /var/www/default/web/test.php(1178) exit(communication error), terminated by calling exit(), return code: 255

ich verstehe nicht was falsch läuft, wo sich der mod_fcgid verschluckt..
Seltsamerweise wird auch jeder test.php -Aufruf mit 10 Versuchen begleitet...
enden tut es mit

Code: Alles auswählen

[Wed Feb 28 21:27:59 2007] [debug] arch/unix/fcgid_proc_unix.c(487): (111)Connection refused: mod_fcgid: can't connect unix domain socket: /var/lib/apache2/fcgid/sock/1287.24
[Wed Feb 28 21:27:59 2007] [info] mod_fcgid: can't apply process slot for /var/www/default/web/test.php
was meint er mit fastgi server?

brauche ich zusätzlich das mod_fastcgi?
Who believes to be has stopped to become

Benutzeravatar
rolo
Beiträge: 2697
Registriert: 29.08.2002 12:12:25
Lizenz eigener Beiträge: neue BSD Lizenz
Wohnort: hannover

Beitrag von rolo » 28.02.2007 22:59:33

> wie lautet deine fcgi.conf vollständig?
ausser das ich den addhandler

Code: Alles auswählen

AddHandler fcgid-script .php
im vhost stehen habe, stimmt das dann schon überein.

Antworten