mod_fcgid in mod_chroot root

Apache, Lighttpd, nginx, Cherokee
hever
Posts: 74
Joined: 2003-09-14 15:23
Location: Münster

mod_fcgid in mod_chroot root

Post by hever » 2008-01-11 09:07

Hallo zusammen!

Die Umgebung:
Apache 2.2 mit mod_fcgid + suexec und mod_chroot

mod_fcigd läuft ohne aktiviertes mod_chroot problemlos.

Wenn ich mod_chroot aktiviere (suexec ist deaktiviert!) erhalte ich folgende Fehlermeldungen im error.log:

Code: Select all

[Fri Jan 11 08:28:37 2008] [notice] mod_fcgid: call /xxx/webadmin.php with wrapper /var/www/cgi-bin/xxx/php-fcgi
[Fri Jan 11 08:28:37 2008] [info] mod_fcgid: server /xxx/webadmin.php(6895) started
[Fri Jan 11 08:28:37 2008] [debug] arch/unix/fcgid_proc_unix.c(525): (111)Connection refused: mod_fcgid: can't connect unix domain socket: /var/run/fcgid/sock/6584.60


- Die Sockets werden in dem Verzeichnis angelegt mod_fcgid scheint sie nicht lesen zu können.
- Alle beteiliten Verzeichnisse/Dateien sind auf 777 gesetzt.
- Allle Shared Object Files sind einmal mit LoadFile geladen und dann noch per Hardlink in das changed root eingebunden.
- Die php binary welche das php-fcgi script laden soll ist ins changed root kopiert.
- Der Pfad zum Wrapper Script und dessen Berechtigungen stimmen im normalen und im changed root überein.
- Wenn ich eine php Datei aufrufe, kommt direkt die Fehlermeldung (siehe oben), das Wrapper Script wurde an der stelle noch garnicht aufgerufen.

Das Wrapper Script:

Code: Select all

#!/bin/sh

echo "PHP-CGI: WRAPPER SCRIPT CALLED XXX !!!";

PHPRC="/etc/php5/cgi"
export PHPRC

exec /usr/bin/php-cgi


Nochmal, die konfiguration funktioniert ohne mod_chroot ohne Probleme.
Es gibt unter mod_chroot nur irgendwelche Probleme beim verbinden zum Socket die mir einfach nicht ersichtlich sind.

Beim chrooten wird das root auf /var/www gesetzt.
Habe ich vielleicht irgendetwas vergessen ins changed root zu linken oder müssen ggf. noch andere Pfade angepasst werden?

(Ich linke und chmodde alles auf 777 um erstmal testen zu können.)

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

Re: mod_fcgid in mod_chroot root

Post by Joe User » 2008-01-11 09:47

hever wrote:- Die Sockets werden in dem Verzeichnis angelegt mod_fcgid scheint sie nicht lesen zu können.

Aber nicht als Hardlink in /var/www/var/run/fcgid/sock
hever wrote:- Alle beteiliten Verzeichnisse/Dateien sind auf 777 gesetzt.

0750 für Verzeichnisse und 0640 für Files muss reichen, darüber ist böse.
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.

hever
Posts: 74
Joined: 2003-09-14 15:23
Location: Münster

Re: mod_fcgid in mod_chroot root

Post by hever » 2008-01-11 10:10

Joe User wrote:
hever wrote:- Die Sockets werden in dem Verzeichnis angelegt mod_fcgid scheint sie nicht lesen zu können.

Aber nicht als Hardlink in /var/www/var/run/fcgid/sock


Ich habe in /var/www für /var/run schon eine neue Verzeichnisstrucktur angelegt und keine hardlinks verwendet.
Ich habe also die neuen Ordner bis runter zu /var/www/var/run/fcgid/sock angelegt.
Dort werden die Sockets auch erstellt.
Dann habe ich noch aus dem root einen symlink in das chroot angelegt, so das die Sockets auch unter /var/run/fcgid/sock erscheinen.
(So wie auch mit der PID.)

Folgendes liegt also im chroot ohne hardlink.

Code: Select all

SocketPath /var/run/fcgid/sock
SharememPath /var/run/fcgid_shm
PidFile /var/run/httpd.pid
LockFile /var/lock/accept.lock
 


Joe User wrote:
hever wrote:- Alle beteiliten Verzeichnisse/Dateien sind auf 777 gesetzt.

0750 für Verzeichnisse und 0640 für Files muss reichen, darüber ist böse.

Seh ich eigentlich fast genau so aber so kann ich erstmal Berechtigungsprobleme die bisher solche "can't connect unix domain socket" - Probleme auslösten ausschließen. Wenn es dann mal läuft müssen die Berechtigungen natürlich so restriktiv wie möglich gewählt werden.

hever
Posts: 74
Joined: 2003-09-14 15:23
Location: Münster

Re: mod_fcgid in mod_chroot root

Post by hever » 2008-01-11 10:33

Ok es hat sich erledigt.

Die lib Verzeichnisse waren nicht gelinkt. (Es gab wohl doch nen Neustart im Nebel der nächtlichen Fehlersuche).

EDIT:

Eine andere Problemlösung möchte ich noch loswerden, damit die Forensuche hier weiterhelfen kann:
Bei der Konfiguration von mod_fcgid + mod_chroot hatte ich auch einige Zeit folgendes Problem:

Code: Select all

[emerg] (2)No such file or directory: mod_fcgid: Can't create share memory for size %zu byte


Die Lösung war simpel:

Code: Select all

SharememPath /var/run/fcgid_shm


bsp. in die fcgid.conf.

hever
Posts: 74
Joined: 2003-09-14 15:23
Location: Münster

Re: mod_fcgid in mod_chroot root

Post by hever » 2008-02-02 14:14

Was ist zu tun wenn man aufgrund gegebener Umstände nur mod_fcgid 1.1 verwenden kann?

Ich stieß wieder auf folgendes Problem, welches nur bei einem "reload" auftauchte:

Code: Select all

[emerg] (2)No such file or directory: mod_fcgid: Can't create share memory for size %zu byte


http://fastcgi.coremail.cn/doc.htm sagt SharememPath ist unter mod_fcgid 1.1 nicht verfügbar:
SharememPath path (logs/fcgid_shm)

The share memory file path. (UNIX only) (version >= 2.1 only)


Ich habe mich, und dann auch das System, gefragt um welche Dateien es sich hier handelt. strace half mir weiter:

Code: Select all

6740  open("/var/lib/apache2/fcgid/shm", O_WRONLY) = -1 ENOENT (No such file or directory)
6740  open("/var/lib/apache2/fcgid/shm", O_WRONLY|O_CREAT|O_EXCL, 0666) = -1 ENOENT (No such file or directory)


Ein Zugriff auf die dort angegebene Datei muss also im changed root ermöglicht werden.
Ich hoffe dies erspart anderen die Suche nach der Datei...

snoop74
Posts: 1
Joined: 2009-11-04 18:27

Re: mod_fcgid in mod_chroot root

Post by snoop74 » 2009-11-04 18:30

Hallo.

Die lib Verzeichnisse waren nicht gelinkt. (Es gab wohl doch nen Neustart im Nebel der nächtlichen Fehlersuche).


Wie linke ich denn die Verzeichnisse ?

Danke.

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

Re: mod_fcgid in mod_chroot root

Post by Roger Wilco » 2009-11-04 19:16

Snoop74 wrote:Wie linke ich denn die Verzeichnisse ?

Code: Select all

man ln