Erfahrungen apache2 mit PHP 5 als FastCGI
Hallo nochmal,
ich hab zur Abwechslung mal eine Lösung für ein hier noch nicht geschildertes Problem (oder ich hab es überlesen ):
Nachdem ich meine VHosts alle erfolgreich umgezogen habe, habe ich ab und an einen "500 Internal Server Error" bekommen, in den logs war ein "premature end of script headers". Die Lösung habe ich hier gefunden (letzter Abschnitt):
http://www.felix-schwarz.name/Secure_PH ... cgid)_(en)
Gruß, Marc
ich hab zur Abwechslung mal eine Lösung für ein hier noch nicht geschildertes Problem (oder ich hab es überlesen ):
Nachdem ich meine VHosts alle erfolgreich umgezogen habe, habe ich ab und an einen "500 Internal Server Error" bekommen, in den logs war ein "premature end of script headers". Die Lösung habe ich hier gefunden (letzter Abschnitt):
http://www.felix-schwarz.name/Secure_PH ... cgid)_(en)
Gruß, Marc
Hallo,
wurde hier glaube ich noch nicht so direkt geschrieben.
Ich habe die Timeouts sogar noch ein ganzes Stück höher, Auszug aus meiner fcgid.conf:
wurde hier glaube ich noch nicht so direkt geschrieben.
Ich habe die Timeouts sogar noch ein ganzes Stück höher, Auszug aus meiner fcgid.conf:
Code: Alles auswählen
# Lange IPCC Timeouts, damit es unter Last keine 500er gibt.
IPCConnectTimeout 60
IPCCommTimeout 120
Hi Leute...
ich komme mit der verbindung apach2 + php5-cgi + libapach2-mod-fcgid auch nicht wirklich weiter. Ich so einiges aus diesem beitrag abzuleiten aber ich bekomme immer ein error 500 vom apache zurück. Auch die suexec log sagt mir das hier was mit den rechten nicht stimmt ... target uid/gid mismatch with directory...
zur erklärung: www-data ist der apache user bzw. seine gruppe und mschumann ist der vhost user bzw. seine gruppe
die softwareversionen sind debian stable (etch) alles per apt-get install
hier meine conf´s und log´s
vhost
php-fcgi-htdocs
php-fcgi-webtest.local.fab9.net
fcgid.conf
verzeichnisse (ich denke hier ist der hase begraben)
suexec.log
so long.. mulix
ich komme mit der verbindung apach2 + php5-cgi + libapach2-mod-fcgid auch nicht wirklich weiter. Ich so einiges aus diesem beitrag abzuleiten aber ich bekomme immer ein error 500 vom apache zurück. Auch die suexec log sagt mir das hier was mit den rechten nicht stimmt ... target uid/gid mismatch with directory...
zur erklärung: www-data ist der apache user bzw. seine gruppe und mschumann ist der vhost user bzw. seine gruppe
die softwareversionen sind debian stable (etch) alles per apt-get install
hier meine conf´s und log´s
vhost
Code: Alles auswählen
<VirtualHost 192.168.3.150:80>
SuExecUserGroup mschumann mschumann
ServerName webtest.local.fab9.net
DocumentRoot /var/www/webtest.local.fab9.net/
AddHandler fcgid-script .php
<Directory /var/www/webtest.local.fab9.net>
FCGIWrapper /var/www/php-fcgi-scripts/php-fcgi-webtest.local.fab9.net .php
Options FollowSymLinks MultiViews +ExecCGI
AllowOverride None
Order allow,deny
allow from all
</Directory>
ErrorLog /var/log/apache2/error.log
LogLevel warn
CustomLog /var/log/apache2/access.log combined
ServerSignature Off
</VirtualHost>
Code: Alles auswählen
#!/bin/sh
PHPRC="/etc/php5/cgi/php.ini"
export PHPRC
PHP_FCGI_CHILDREN=3
export PHP_FCGI_CHILDREN
exec /usr/bin/php5-cgi
Code: Alles auswählen
#!/bin/sh
PHPRC="/etc/php5/cgi/php.ini"
export PHPRC
PHP_FCGI_CHILDREN=3
export PHP_FCGI_CHILDREN
exec /usr/bin/php5-cgi
Code: Alles auswählen
<IfModule mod_fcgid.c>
AddHandler fcgid-script .fcgi
SocketPath /var/lib/apache2/fcgid/sock
IPCConnectTimeout 20
</IfModule>
Code: Alles auswählen
/var:
drwxrwxrwx 2 www-data www-data 4096 2007-05-13 22:29 www
/var/www:
drwxr-xr-x 2 www-data www-data 4096 2007-05-13 22:29 php-fcgi-scripts
drwxr-x--- 2 mschumann www-data 4096 2007-05-13 22:14 webtest.local.fab9.net
/var/www/php-fcgi-scripts:
-rw-r--r-- 1 www-data www-data 126 2007-05-13 22:29 php-fcgi-htdocs
-rw-r--r-- 1 mschumann www-data 126 2007-05-13 15:27 php-fcgi-webtest.local.fab9.net
/var/www/webtest.local.fab9.net:
-rwxr----- 1 mschumann www-data 30 2007-05-13 15:42 index.php
-rwxr----- 1 mschumann www-data 16 2007-05-13 22:14 test.html
Code: Alles auswählen
[2007-05-14 17:59:42]: uid: (1000/mschumann) gid: (1000/1000) cmd: php-fcgi-webtest.local.fab9.net
[2007-05-14 17:59:42]: target uid/gid (1000/1000) mismatch with directory (33/33) or program (1000/33)
Das php-fcgi-webtest.local.fab9.net script muß glaube ich auch der Gruppe mschumann gehören und ausführbar sein. Falls das nicht reicht, erstelle unter /var/www/php-fcgi-scripts auch ein Unterverzeichnis, welches mschumann gehört (User + Gruppe), und verschiebe das Script dahin. Dementsprechend den Pfad dann im Virtual Host anpassen.mulix hat geschrieben:
/var/www/php-fcgi-scripts:
-rw-r--r-- 1 www-data www-data 126 2007-05-13 22:29 php-fcgi-htdocs
-rw-r--r-- 1 mschumann www-data 126 2007-05-13 15:27 php-fcgi-webtest.local.fab9.net
Viel Glück!
Das Unterverzeichnis wird benötigt!
Code: Alles auswählen
chown root:root /var/www/php-fcgi-scripts
mkdir /var/www/php-fcgi-scripts/mschumann
chown mschumann:mschumann /var/www/php-fcgi-scripts/mschumann
chmod 755 /var/www/php-fcgi-scripts/mschumann
mv /var/www/php-fcgi-scripts/webtest.local.fab9.net /var/www/php-fcgi-scripts/mschumann/
chown mschumann:mschumann /var/www/php-fcgi-scripts/mschumann/webtest.local.fab9.net
chmod 755 /var/www/php-fcgi-scripts/mschumann/webtest.local.fab9.net
Hi marc76
WOW es lebt.... dank dir.
danke auch an kase für die richtigstellung der chmod´s, ich schrieb noch da hattest du schon dein post draussen - muss ich noch umsetzen
ich musste nur unter /var/www/php-fcgi-scripts ein verzeichniss erstellen mit rechten des vhost-users, dan die php-fcgi datei dorthin kopieren (apache vhost anpassen) und es lief. cool
also so schaut das jetzte aus
im großen und ganzen sollte es das sein... evtl. noch ein paar rechte anpassen - muss man sich durch den kopf gehen lassen
so long... mulix
WOW es lebt.... dank dir.
danke auch an kase für die richtigstellung der chmod´s, ich schrieb noch da hattest du schon dein post draussen - muss ich noch umsetzen
ich musste nur unter /var/www/php-fcgi-scripts ein verzeichniss erstellen mit rechten des vhost-users, dan die php-fcgi datei dorthin kopieren (apache vhost anpassen) und es lief. cool
also so schaut das jetzte aus
Code: Alles auswählen
/var:
drwxrwxrwx 2 www-data www-data 4096 2007-05-13 22:29 www
/var/www:
drwxr-xr-x 2 www-data www-data 4096 2007-05-13 22:29 php-fcgi-scripts
drwxr-x--- 2 mschumann www-data 4096 2007-05-13 22:14 webtest.local.fab9.net
/var/www/php-fcgi-scripts:
-rw-r--r-- 1 www-data www-data 126 2007-05-13 22:29 php-fcgi-htdocs
drwxr-x-r-x 2 mschumann mschumann 4096 2007-05-13 22:14 webtest.local.fab9.net
/var/www/php-fcgi-scripts/webtest.local.fab9.net::
-rwxr-xr-x 1 mschumann mschumann 126 2007-05-13 15:27 php-fcgi-webtest.local.fab9.net
/var/www/webtest.local.fab9.net:
-rwxr----- 1 mschumann www-data 30 2007-05-13 15:42 index.php
-rwxr----- 1 mschumann www-data 16 2007-05-13 22:14 test.html
so long... mulix
Ich hab irgendwie ein Brett vorm Kopf:
Ich habe (dachte ich) die richtigen Sachen eingebaut, aber nur Probleme.. die html Dateien gehen noch, php geht auf einer Domain.. auf der https domain (anderer Content) nicht..
geht:
Geht nicht:
html Dateien gehen im https vhost
php nicht..
rufe ich eine Datein auf kommt
Im log:
[Wed Jun 27 22:37:18 2007] [error] [client IS.MY.OWN.IP] Attempt to serve directory: /var/www/https_test.biz/docs/
Suexec.log ist leer...
Ich habe (dachte ich) die richtigen Sachen eingebaut, aber nur Probleme.. die html Dateien gehen noch, php geht auf einer Domain.. auf der https domain (anderer Content) nicht..
geht:
Code: Alles auswählen
<VirtualHost *>
ServerAdmin xyz@test.biz
ServerName testserver.test.biz
ServerAlias www.testserver.test.biz
DocumentRoot /var/www/test.biz/docs
SuExecUserGroup test_biz test_biz
<Directory />
Options -All +FollowSymLinks
AllowOverride None
</Directory>
<Directory /var/www/test.biz/>
Options -All +FollowSymlinks +ExecCGI
AllowOverride AuthConfig
Order allow,deny
allow from all
# FCGID-PHP-Teil
FCGIWrapper /var/www/php-fcgi-scripts/test.biz/php-fcgi-starter .php
AddHandler fcgid-script .php
</Directory>
ErrorLog /var/www/test.biz/logs/error.log
# Possible values include: debug, info, notice, warn, error, crit,
# alert, emerg.
LogLevel warn
CustomLog /var/www/test.biz/logs/access.log combined
ServerSignature On
</VirtualHost>
Geht nicht:
Code: Alles auswählen
<VirtualHost IP.IP.IP.IP:443>
ServerName testserver.test.biz
DocumentRoot /var/www/https_test.biz/docs
ServerAdmin xyz@test.biz
SuExecUserGroup https_test_biz https_test_biz
# SSL
SSLCertificateFile /etc/httpd/ssl/serverbiz.crt
SSLCertificateKeyFile /etc/httpd/ssl/serverbiz.key
SSLEngine On
SSLCipherSuite ALL:!ADH:!EXPORT56:RC4+RSA:+HIGH:+MEDIUM:+LOW:+SSLv2:+EXP:
SetEnvIf User-Agent ".*MSIE.*" \
nokeepalive ssl-unclean-shutdown \
downgrade-1.0 force-response-1.0
<Directory />
Options -All +FollowSymLinks
AllowOverride None
</Directory>
<Directory /var/www/https_test.biz>
Options Indexes FollowSymLinks MultiViews
AllowOverride None
Order allow,deny
allow from all
# FCGID-PHP-Teil
FCGIWrapper /var/www/php-fcgi-scripts/https_test.biz/php-fcgi-starter .php
AddHandler fcgid-script .php
</Directory>
ErrorLog /var/www/https_test.biz/logs/error.log
# Possible values include: debug, info, notice, warn, error, crit,
# alert, emerg.
LogLevel warn
CustomLog /var/www/https_test.biz/logs/access.log combined
</VirtualHost>
php nicht..
rufe ich eine Datein auf kommt
Code: Alles auswählen
Forbidden
You don't have permission to access /app_1/index.php on this server.
[Wed Jun 27 22:37:18 2007] [error] [client IS.MY.OWN.IP] Attempt to serve directory: /var/www/https_test.biz/docs/
Suexec.log ist leer...
Beim schnellen drüberschauen würd ich sagen dir fehlt im ssl-vhost die ExecCgi option.....
nebenbei: "Options -All +FollowSymlinks +ExecCGI" ist identisch zu "Options FollowSymlinks ExecCGI" und letzteres finde ich einfacher lesbar (siehe auch http://buecher.lingoworld.de/apache2/showdir.php?id=632 )
nebenbei: "Options -All +FollowSymlinks +ExecCGI" ist identisch zu "Options FollowSymlinks ExecCGI" und letzteres finde ich einfacher lesbar (siehe auch http://buecher.lingoworld.de/apache2/showdir.php?id=632 )
Gruß,
SeeDyX
SeeDyX
Hallo,
Ich hoffe Ihr könnt helfen das zu klären, ich nutze mod_fastcgi und suexec, in der vHost steht
Sowohl mit Symlinks, oder als DocRoot im vHost erhalte ich folgende Fehler:
Wenn man sich mal dpkg -L gallery2 ansieht, ist leicht zu erkennen, dass es nicht unter /var/www installiert wird.
Das selbe gilt ja leider für phpadmin.
Wie kann man das lösen, ohne auf das debian-Paketsystem zu verzichten?
--with-suexec-docroot ist /var/www
Ich hoffe Ihr könnt helfen das zu klären, ich nutze mod_fastcgi und suexec, in der vHost steht
Code: Alles auswählen
<VirtualHost 172.16.240.1:80>
ServerAdmin webmaster@localhost
DocumentRoot /var/www/gallery2
ServerName www.mygallery2.home
ServerAlias www.mygallery2.home
DirectoryIndex index.php index.html index.htm
SuexecUserGroup www-fcgi www-fcgi
<Directory />
Options FollowSymLinks
AllowOverride None
</Directory>
<Directory /var/www/gallery2>
Options Indexes FollowSymLinks MultiViews
AllowOverride None
Order allow,deny
allow from all
</Directory>
ScriptAlias /cgi-bin/ /usr/lib/cgi-bin/
<Directory "/usr/lib/cgi-bin">
AllowOverride None
Options +ExecCGI -MultiViews -Indexes +SymLinksIfOwnerMatch
Order allow,deny
Allow from all
</Directory>
ErrorLog /var/log/apache2/www.mygallery2.home-error.log
# Possible values include: debug, info, notice, warn, error, crit,
# alert, emerg.
LogLevel warn
CustomLog /var/log/apache2/www.mygallery2.home-access.log combined
ServerSignature On
</VirtualHost>
Code: Alles auswählen
SoftException in Application.cpp:199: Script "/usr/share/gallery2/index.php" resolving to "/usr/share/gallery2/index.php" not within configured docroot
Code: Alles auswählen
[Wed Oct 24 17:50:49 2007] [error] [client 172.16.240.1] SoftException in Application.cpp:199: Script "/var/www/gallery2/index.php" resolving to "/usr/share/gallery2/index.php" not within configured docroot
Das selbe gilt ja leider für phpadmin.
Wie kann man das lösen, ohne auf das debian-Paketsystem zu verzichten?
--with-suexec-docroot ist /var/www
Code: Alles auswählen
$ sudo /usr/lib/apache2/suexec2 -V
-D AP_DOC_ROOT="/var/www"
-D AP_GID_MIN=100
-D AP_HTTPD_USER="www-data"
-D AP_LOG_EXEC="/var/log/apache2/suexec.log"
-D AP_SAFE_PATH="/usr/local/bin:/usr/bin:/bin"
-D AP_UID_MIN=100
-D AP_USERDIR_SUFFIX="public_html"
Was für Wrapper Scripte hast du?
Ich kann grad mit dem Application.cpp nciht wirklich was anfangen
Ansonsten, hast du dir diesen kompletten Thread mal durchgelesen(Alle Seiten - ich weiß ist ziemlich viel inzwischen, aber ich hab das damals mehrmals gemacht, hat geholfen )? da steht ne ganze menge drin..... Vorallem so zum generellen Aufbau.
Wenn ich mich noch richtig erinnere muss das Binary/Script das eigentlich ausgeführt wird unter /var/www liegen. Was das Script dann macht ist allerdings egal, das kann dann auch dinge außerhalb von /var/www aufrufen (genau dafür sind die PHP-Wrapper Scripte da, die rufen das php binary auf, das ja außerhalb von /var/www liegt, welches dann wiederum php Seiten aufruft die auch irgendow liegen können)
Ich kann grad mit dem Application.cpp nciht wirklich was anfangen
Ansonsten, hast du dir diesen kompletten Thread mal durchgelesen(Alle Seiten - ich weiß ist ziemlich viel inzwischen, aber ich hab das damals mehrmals gemacht, hat geholfen )? da steht ne ganze menge drin..... Vorallem so zum generellen Aufbau.
Wenn ich mich noch richtig erinnere muss das Binary/Script das eigentlich ausgeführt wird unter /var/www liegen. Was das Script dann macht ist allerdings egal, das kann dann auch dinge außerhalb von /var/www aufrufen (genau dafür sind die PHP-Wrapper Scripte da, die rufen das php binary auf, das ja außerhalb von /var/www liegt, welches dann wiederum php Seiten aufruft die auch irgendow liegen können)
Gruß,
SeeDyX
SeeDyX
In diesem thread ist die Konstellation näher beschrieben:
http://www.rootforum.de/forum/viewtopic.php?p=295108
/etc/apache2/mods-available/fastcgi.conf:
Inzwischen ist auch -user floogy durch www-fcgi ersetzt, -user VHOST (z.B. mypages.home) wäre wahrscheinlich optimal.
http://www.rootforum.de/forum/viewtopic.php?p=295108
Code: Alles auswählen
var
`--www
|--php-fcgi-scripts
| |-- index.html
| |-- mypages.home
| | |-- index.html
| | `-- php-fcgi-starter
| `-- www.gallery2.home
| |-- index.html
| `-- php-fcgi-starter
|--mypages.home
| |-- conf
| `-- web
| `-- index.php
`--www.gallery2.home
|-- conf
`-- web
`-- index.php
Code: Alles auswählen
#http://archiv.debianhowto.de/de/apache2-phpfcgi-sarge/c_apache2-phpfcgi-sarge.html
<IfModule mod_fastcgi.c>
AddHandler fastcgi-script .fcgi .php
FastCgiWrapper /usr/lib/apache2/suexec2
FastCgiIpcDir /var/lib/apache2/fastcgi
FastCgiServer /var/www/php-fcgi-scripts/mypages.home/php-fcgi-starter -user floogy -group www-fcgi
<Location /cgi-bin/php-fcgi-starter>
SetHandler fastcgi-script
Options +ExecCGI
</Location>
Action php-fastcgi /cgi-bin/php-fcgi-starter
AddType application/x-httpd-php .php
Code: Alles auswählen
$ cat /var/www/php-fcgi-scripts/mypages.home/php-fcgi-starter
#!/bin/sh
PHPRC="/var/www/mypages.home/conf"
export PHPRC
PHP_FCGI_CHILDREN=4
export PHP_FCGI_CHILDREN
#exec /PATH/TO/PHP-BINARY/php-fcgi
exec /usr/bin/php5-cgi
Code: Alles auswählen
$ /usr/bin/php5-cgi -v
PHP 5.2.3-1ubuntu6 (cgi-fcgi) (built: Oct 5 2007 01:15:27)
Copyright (c) 1997-2007 The PHP Group
Zend Engine v2.2.0, Copyright (c) 1998-2007 Zend Technologies
Wie ich das sehe hast Du suexec selbst kompiliert, und für andere Dateisysteme und Pfade den Benutzercheck entfernt?SeeDyX hat geschrieben:Wenn ich mich noch richtig erinnere muss das Binary/Script das eigentlich ausgeführt wird unter /var/www liegen. Was das Script dann macht ist allerdings egal, das kann dann auch dinge außerhalb von /var/www aufrufen (genau dafür sind die PHP-Wrapper Scripte da, die rufen das php binary auf, das ja außerhalb von /var/www liegt, welches dann wiederum php Seiten aufruft die auch irgendow liegen können)
http://debianhowto.de/doku.php/de:howto ... ec_binarys
Die Richtigkeit dieses Zusatzes kann ich hier nicht bestaätigen:
Code: Alles auswählen
Edit: Ein Symlink /var/www auf ein ggf. anderes DocumentRoot hilft auch, ohne dass man das suexec neu bauen muss.
nein, habe nicht selbst kompiliert, Standard debian stable
Ich nutze auch den phomyadmin von debian, der ja nciht unter /var/www/ installiert ist (da ist ja nur der symlink, über den ich auch drauf zugreife), ich glaube ich musste nur in dem phpmyadmin ordner ein paar rechte von dateien verändern, damit der user unter dem der phpmyadmin ausgeführt werden soll auch die dateien lesen darf. Das Wrapper Script liegt allerdings unter /var/www/conf/...
Aber ichhabe ansonsten momentan leider keine idee zu deinem Problem...
Ich nutze auch den phomyadmin von debian, der ja nciht unter /var/www/ installiert ist (da ist ja nur der symlink, über den ich auch drauf zugreife), ich glaube ich musste nur in dem phpmyadmin ordner ein paar rechte von dateien verändern, damit der user unter dem der phpmyadmin ausgeführt werden soll auch die dateien lesen darf. Das Wrapper Script liegt allerdings unter /var/www/conf/...
Aber ichhabe ansonsten momentan leider keine idee zu deinem Problem...
Gruß,
SeeDyX
SeeDyX
Wie lautet denn der VHOST für phpmyadmin unter sites-available?
Zu dem Fehler konnte ich nur das hier finden:
http://www.wh-forum.de/coding-webdesign ... l-php.html
Meiner Meinung nach sollte das also mit suexec zu tun haben.
Hmm... da fällt mir ein: eventuell ist ja suphp enabled
Da scheint der Hund begraben zu liegen:
Nun bekomme ich außer auf nicht-php Seiten:
et voilà eine lesbare Fehlermeldung in /var/log/apache2/error.log :
Mann, wie konnte ich nur das suphp Modul übersehen?
Allerdings funktionieren auch die konfigurierten vhosts nicht.
Im suexec.log findet sich nichts auffälliges.
Die vhost funktionieren wegen dem selben Fehler nicht mehr:
[client 172.16.240.1] FastCGI: "ExecCGI Option" is off in this directory: /index.php
Mal sehen, wie ich das gelöst bekomme...
http://www.google.com/search?q=FastCGI% ... +directory
Hmm... das googlen bringt da nicht viel... Ich werde wohl nochmal alles von vorne durchgehen müssen.
Weshalb FastCGI "ExecCGI Option" is off in this directory ist mir ehrlich gesagt schleierhaft, da in allen vhosts options +ExecCGI steht:
Im suexec.log steht folgendes:
Was ich allerdings wegen der merkwürdigen Schreibweise komisch finde: uid: (www-fcgi/www-fcgi)
Das ist ja doppelt??
Zu dem Fehler konnte ich nur das hier finden:
http://www.wh-forum.de/coding-webdesign ... l-php.html
Meiner Meinung nach sollte das also mit suexec zu tun haben.
Hmm... da fällt mir ein: eventuell ist ja suphp enabled
Code: Alles auswählen
$ sudo a2dismod suphp
Module suphp disabled; run /etc/init.d/apache2 force-reload to fully disable.
Nun bekomme ich außer auf nicht-php Seiten:
Code: Alles auswählen
Forbidden
You don't have permission to access /index.php on this server.
Code: Alles auswählen
[client 172.16.240.1] FastCGI: "ExecCGI Option" is off in this directory: /phpmyadmin/index.php
Allerdings funktionieren auch die konfigurierten vhosts nicht.
Im suexec.log findet sich nichts auffälliges.
Die vhost funktionieren wegen dem selben Fehler nicht mehr:
[client 172.16.240.1] FastCGI: "ExecCGI Option" is off in this directory: /index.php
Mal sehen, wie ich das gelöst bekomme...
http://www.google.com/search?q=FastCGI% ... +directory
Hmm... das googlen bringt da nicht viel... Ich werde wohl nochmal alles von vorne durchgehen müssen.
Weshalb FastCGI "ExecCGI Option" is off in this directory ist mir ehrlich gesagt schleierhaft, da in allen vhosts options +ExecCGI steht:
Code: Alles auswählen
$ rgrep -i execcgi /etc/apache2/sites-enabled/
/etc/apache2/sites-enabled/000-default: Options +ExecCGI -MultiViews -Indexes +SymLinksIfOwnerMatch
/etc/apache2/sites-enabled/www.mypages.home: Options +ExecCGI -MultiViews -Indexes +SymLinksIfOwnerMatch
/etc/apache2/sites-enabled/gallery2: Options +ExecCGI -MultiViews -Indexes +SymLinksIfOwnerMatch
/etc/apache2/sites-enabled/vh1: Options +ExecCGI -MultiViews -Indexes +SymLinksIfOwnerMatch
Code: Alles auswählen
uid: (www-fcgi/www-fcgi) gid: (www-fcgi/www-fcgi) cmd: php-fcgi-starter
Das ist ja doppelt??
-
- Beiträge: 50
- Registriert: 02.07.2005 02:10:43
- Wohnort: osna
-
Kontaktdaten:
Hey, bin auch dabei gerade apache2.2 php5 fcgid und suexec zu konfigurieren.
lief eigendlich alles so weit ausser das ich beim startet ne warnung bekommen hab und php5-cgi nicht mit den rechten des users sonder www-data gestartet werden.
warnung:
nach dem ich die rechte noch mal gesezt habe von suexec: chmod 4750 suexec. war die warnung
nächstes problem die php5-cgi startet garnicht mehr.
fehler aus den logs:
rechte:
lief eigendlich alles so weit ausser das ich beim startet ne warnung bekommen hab und php5-cgi nicht mit den rechten des users sonder www-data gestartet werden.
warnung:
Code: Alles auswählen
Forcing reload of web server (apache2)...Warning: SuexecUserGroup directive requires SUEXEC wrapper.
Warning: SuexecUserGroup directive requires SUEXEC wrapper.
Warning: SuexecUserGroup directive requires SUEXEC wrapper.
waiting Warning: SuexecUserGroup directive requires SUEXEC wrapper.
Warning: SuexecUserGroup directive requires SUEXEC wrapper.
Warning: SuexecUserGroup directive requires SUEXEC wrapper.
nächstes problem die php5-cgi startet garnicht mehr.
fehler aus den logs:
Code: Alles auswählen
[Wed Dec 12 19:08:54 2007] [notice] mod_fcgid: server /var/www/powertuxx.de/htdocs/index.php(4995) started
[Wed Dec 12 19:08:54 2007] [debug] arch/unix/fcgid_proc_unix.c(491): (111)Connection refused: mod_fcgid: can't connect unix domain socket: /var/lib/apache2/fcgid/sock/4751.169
[Wed Dec 12 19:08:55 2007] [notice] mod_fcgid: process /var/www/powertuxx.de/htdocs/index.php(4995) exit(server exited), terminated by calling exit(), return code: 255
[Wed Dec 12 19:08:55 2007] [notice] mod_fcgid: process /var/www/powertuxx.de/htdocs/index.php(4994) exit(server exited), terminated by calling exit(), return code: 255
[Wed Dec 12 19:08:55 2007] [notice] mod_fcgid: process /var/www/powertuxx.de/htdocs/index.php(4993) exit(server exited), terminated by calling exit(), return code: 255
[Wed Dec 12 19:08:55 2007] [notice] mod_fcgid: process /var/www/powertuxx.de/htdocs/index.php(4992) exit(server exited), terminated by calling exit(), return code: 255
[Wed Dec 12 19:08:56 2007] [warn] mod_fcgid: can't apply process slot for /var/www/bib.powertuxx.de/htdocs/index.php
rechte:
Code: Alles auswählen
755 vuser1.vuser1 domain.ltd
755 root.root conf
conf
755 vuser1.vuser1 domain.ltd
-- 755 vuser1.vuser1 php5-cgid
wissen ist macht
-
- Beiträge: 50
- Registriert: 02.07.2005 02:10:43
- Wohnort: osna
-
Kontaktdaten:
-
- Beiträge: 50
- Registriert: 02.07.2005 02:10:43
- Wohnort: osna
-
Kontaktdaten:
also bei etch ist es ja suexec statt suexec2. also das ding sollte wohl drauf sein, es liegt auch in seinem verzeichnis.
ich kanns auch aufrufen um mir die infos an zu zeigen.
hab schon mal danach mit aptitude gesucht aber der hat nix gefunden.
langsam kozt mich das schon an.
ich spiele schon mit den gedanken es eventuell zu complimieren.
ausdruck wenn ich es aufrufe:
# /usr/lib/apache2/suexec -V
-D AP_DOC_ROOT="/var/www"
-D AP_GID_MIN=100
-D AP_HTTPD_USER="www-data"
-D AP_LOG_EXEC="/var/log/apache2/suexec.log"
-D AP_SAFE_PATH="/usr/local/bin:/usr/bin:/bin"
-D AP_UID_MIN=100
-D AP_USERDIR_SUFFIX="public_html"
suexec sollte doch eigendlich standard im system sein.
hab gestern auch rausgefunden wieso das ganze lief und die php5-cgi binäry aufgerufen werden konnte,
libapache2-mod-php5 war installiert, deswegen lief es auch, nur wurde es halt mit den rechten von www-data aufgerufen.
deswegen wurde auch suexec umgangen.
wenn ich es selbst complimieren würde, mit welchen Optionen sollte ich es denn configurieren?
oder sieht da jemand noch eine andere möglichkeit ?
Fehler beim aufruf der Webseite.
ich kanns auch aufrufen um mir die infos an zu zeigen.
hab schon mal danach mit aptitude gesucht aber der hat nix gefunden.
langsam kozt mich das schon an.
ich spiele schon mit den gedanken es eventuell zu complimieren.
ausdruck wenn ich es aufrufe:
# /usr/lib/apache2/suexec -V
-D AP_DOC_ROOT="/var/www"
-D AP_GID_MIN=100
-D AP_HTTPD_USER="www-data"
-D AP_LOG_EXEC="/var/log/apache2/suexec.log"
-D AP_SAFE_PATH="/usr/local/bin:/usr/bin:/bin"
-D AP_UID_MIN=100
-D AP_USERDIR_SUFFIX="public_html"
suexec sollte doch eigendlich standard im system sein.
hab gestern auch rausgefunden wieso das ganze lief und die php5-cgi binäry aufgerufen werden konnte,
libapache2-mod-php5 war installiert, deswegen lief es auch, nur wurde es halt mit den rechten von www-data aufgerufen.
deswegen wurde auch suexec umgangen.
wenn ich es selbst complimieren würde, mit welchen Optionen sollte ich es denn configurieren?
oder sieht da jemand noch eine andere möglichkeit ?
Fehler beim aufruf der Webseite.
Code: Alles auswählen
ervice Temporarily Unavailable
The server is temporarily unable to service your request due to maintenance downtime or capacity problems. Please try again later.
wissen ist macht
ok dann ist es installiert.. und aktiviert?
musst du mal schaun ob die configs in /etc/apache2/mods-availible drin ist (sollte sie) und ob nen link dazu in /etc/apache2/mods-enabled drin ist (das wird wahrscheinlich nciht der fall sein)
also aktivieren mit: a2enmod suexec
libapache2-mod-php muss deinstalliert oder deaktiviert sein, stimmt
musst du mal schaun ob die configs in /etc/apache2/mods-availible drin ist (sollte sie) und ob nen link dazu in /etc/apache2/mods-enabled drin ist (das wird wahrscheinlich nciht der fall sein)
also aktivieren mit: a2enmod suexec
libapache2-mod-php muss deinstalliert oder deaktiviert sein, stimmt
Gruß,
SeeDyX
SeeDyX
-
- Beiträge: 50
- Registriert: 02.07.2005 02:10:43
- Wohnort: osna
-
Kontaktdaten:
seit dem ich den libapache2-mod-php5 deinstalliet habe, sind die webseiten garnicht mehr erreichbar.
a2enmod suexec ergibt bei mir:
# a2enmod suexec
This module is already enabled!
# ls /etc/apache2/mods-available/ | grep suexec
suexec.load
# ls /etc/apache2/mods-enabled/ | grep suexec
suexec.load
also suexec ist eingetragen aktiviert und gelinkt, deswegen weiss auch immomment auch nicht mehr weiter woran es liegen könnte.
wieso kann er denn keni socket erstellen ?
könnte er irgendwelche probleme mit den rechten haben irgendwo ?
a2enmod suexec ergibt bei mir:
# a2enmod suexec
This module is already enabled!
# ls /etc/apache2/mods-available/ | grep suexec
suexec.load
# ls /etc/apache2/mods-enabled/ | grep suexec
suexec.load
also suexec ist eingetragen aktiviert und gelinkt, deswegen weiss auch immomment auch nicht mehr weiter woran es liegen könnte.
wieso kann er denn keni socket erstellen ?
könnte er irgendwelche probleme mit den rechten haben irgendwo ?
wissen ist macht
Hallo,
ich habe ein ähnliches Problem wie marc76 auf Seite 8 dieses Threads (403 Fehler bei jedem Zugriff). Ich habe die Umstellung auf fcgi nach diesem Tutorial gemacht, da ich ISPConfig benutze:
http://www.howtoforge.com/forums/showthread.php?t=12302
Das Problem besteht aber seltsamerweise nur bei neu eingerichteten Sites, die bestehenden funktionieren alle. Soweit ich das sehen kann, wird nichtmal der entsprechende php5-cgi prozess gestartet. suexec_log und error.log schreiben gar nichts darüber...
Hat jemand eine Idee, wo ich noch suchen könnte?
ich habe ein ähnliches Problem wie marc76 auf Seite 8 dieses Threads (403 Fehler bei jedem Zugriff). Ich habe die Umstellung auf fcgi nach diesem Tutorial gemacht, da ich ISPConfig benutze:
http://www.howtoforge.com/forums/showthread.php?t=12302
Das Problem besteht aber seltsamerweise nur bei neu eingerichteten Sites, die bestehenden funktionieren alle. Soweit ich das sehen kann, wird nichtmal der entsprechende php5-cgi prozess gestartet. suexec_log und error.log schreiben gar nichts darüber...
Hat jemand eine Idee, wo ich noch suchen könnte?
Re: Erfahrungen apache2 mit PHP 5 als FastCGI
Es geht noch einmal um die Rechteverteilung nach KASEs Konzept auf Seite 3 dieses Threads:
Hat einer eine saubere Lösung zur Hand? Mir scheint das Problem ein sehr grundsätzliches zu sein. Wie gesagt: alles fcgid macht doch keinen Sinn, wenn ich für den Apache das mühsam verbarrikadierte Tor wieder aufreissen muss.
Auf die Frage hin, wie das denn realisierbar sein solle, sagt KASE: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.
@KASE: Wie soll denn diese "richtige" Konfiguration realistischerweise aussehen? Denn eine übliche Situation ist diese: ein User lädt ein Gemisch aus PHP- und Grafik-/sonstigen Dateien per FTP auf den Server. Der proftpd kann seinerseits nicht für die einen Dateien group "abc" vergeben und für die anderen Dateien die Gruppe "www-data" (oder habe ich da was übersehen??). Also haben alle eine Gruppe nach dem Upload und mein User probiert das nun aber gleich aus (nicht erst einen Tag später, nachdem der nächtliche Cronjob gelaufen ist und die Gruppenrechte korrigiert hat). Das geht natürlich schief. Entweder haben alle Dateien Gruppe "www-data" und das verhindert eben nicht den Skript-Zugriff auf die benachbarten Accounts (und macht ja das ganze fcgi-Gedrösel zum Witz) - oder aber der Apache kann auf alle Nicht-PHP-Dateien nicht zugreifen und quittiert hübsch mit forbidden-Meldungen. Einen Cronjob im Minutentakt kann jetzt aber irgendwie auch keine Lösung sein. Mir kommt das Konzept schräg vor.FTP bzw SCP richtig konfigurieren. Stichworte: User, Group, umask (chmod)
Hat einer eine saubere Lösung zur Hand? Mir scheint das Problem ein sehr grundsätzliches zu sein. Wie gesagt: alles fcgid macht doch keinen Sinn, wenn ich für den Apache das mühsam verbarrikadierte Tor wieder aufreissen muss.