Jump to content
Froxlor Forum
  • 0

[Howto] PHP FCGID / FPM - Forbidden bei neuen Kunden


Ithariel

Question

Seit ich auf FCGID / FPM umgestellt habe erhalte ich ein "Forbidden"! Was kann ich tun?

 

Dieses Problem scheint in letzter Zeit viele Nutzer von Froxlor zu beschäftigen, weshalb ich hier einmal genauer auf das Problem eingehen möchte.

Beachtet bitte, dass dieser Beitrag auf Basis von Debian mit Apache angelegt wurde.

 

Wie kommt das Problem zu Stande?

 

Froxlor hat in einer der Letzten Versions Updates die Standard Berechtigung von Kunden-Verzeichnissen von

 

755 drwxr-xr-x

auf

750 drwxr-x---

 

geändert. Dadurch haben nur noch Besitzer und Gruppen-Mitglieder Zugriff auf das Kunden-Verzeichnis.

 

Wenn nun ein neuer Kunde angelegt wird, wird dieser in die Datenbank geschrieben.

Genau genommen handelt es sich dabei um den FTP User welcher beim Anlegen eines Kunden

in Froxlor mit angelegt wird. Dieser erhält zeitgleich auch eine eigene Gruppe. Im Anschluss wird der 

Webserver User, im normal Fall ist das www-data, dieser Gruppe hinzugefügt.

 

Dieser User sowie die Gruppe und die Zugehörigkeit von www-data werden jeweils von libnss-bg-mysql aus 

der Datenbank ausgelesen. Damit bei einem Dateisystem Aufruf nicht jedesmal ein Datenbank Query gefahren

werden muss, wird das ganze mittels dem NSCD Dienst gecached.

 

Wenn nun nach dem Anlegen eines Kunden der Gruppen Cache noch nicht abgelaufen ist, kann der Webserver

noch nicht auf das Kunden Verzeichnis Zugreifen, was zu dem Fehler "Forbidden" führt.

 

 

Was kann ich gegen dieses Problem tun?

 

Es gibt mehrere Möglichkeiten um gegen das Problem etwas zu tun. Das einfachste währe wohl den Gruppen Cache

zu deaktivieren. Dazu muss in der /etc/nscd.conf die folgende Zeile angepasst werden:

enable-cache            group           yes

Hier muss einfach das yes auf ein no abgeändert werden und im Anschluss der NSCD neu gestartet werden:

/etc/init.d/nscd restart

Als nächstes könnte man in der selben Konfiguration die TTL des Gruppen Caches verkürzen. Dazu muss der Wert in Sekunden angepasst werden:

positive-time-to-live   group           3600

Je nach System sollte man den Wert von 3600 problemlos auf 600 oder gar weniger reduzieren können.

 

 

Zu guter letzt kann man noch den Gruppen Cache vom NSCD invalidieren. Dazu legen wir einfach folgende Datei an:

 

/var/www/froxlor/scripts/webserver_restart.sh

#!/bin/bash

/usr/sbin/nscd -i group
/etc/init.d/apache2 reload

Und passen dessen Berechtigungen noch an:

chown root:root /var/www/froxlor/scripts/webserver_restart.sh
chmod 700 /var/www/froxlor/scripts/webserver_restart.sh

Jetzt können wir in Froxlor unter Einstellungen ->  Webserver-Einstellungen -> Webserver-Reload-Command

einfach folgendes eintragen:

/var/www/froxlor/scripts/webserver_restart.sh

Nach dem Speichern wird nun unser Froxlor bei jedem Webserver Reload den Gruppen Cache invalidieren wodurch wir kein Frobidden mehr erhalten sollten.

Link to comment
Share on other sites

9 answers to this question

Recommended Posts

Hallo,

Danke f?r diese tolle Anleitung!

Bei mir steht allerdings in der Datei "/etc/nscd.conf" statt "group" "passwd". Hat das Auswirkungen?

 

Geh mal etwas weiter runter in der Datei. Der Part mit "passwd" ist f?r die User gedacht. Insgesamt m?sste es 4 Bl?cke geben: passwd, group, hosts und services.

Link to comment
Share on other sites

Etwas spät, aber was solls.

 

Das Problem äussert sich darin, dass nach anlegen des Kunden (also des virtuellen Users), der Webserver keine Lese-Berechtigung 

auf das Kundenverzeichnis hat. Dadurch gibt der Webserver einfach 403 Forbidden aus.

Link to comment
Share on other sites

Geh mal etwas weiter runter in der Datei. Der Part mit "passwd" ist f?r die User gedacht. Insgesamt m?sste es 4 Bl?cke geben: passwd, group, hosts und services.

Danke, das habe ich wohl ?bersehen :).

Spricht etwas dagegen, wenn ich den Wert z.B. auf 100 setzte? Hohe Auslastung o.?.

Link to comment
Share on other sites

Das kann ich dir leider nicht sagen Thunderbyte. Auf meinem kleinen vServer mit 2 Domains k?nnte ich den Gruppen Cache gleich ganz deaktivieren.

Ob du dann Probleme haben wirst, kann ich nicht beurteilen. Versuch es doch einfach mal. :)

Link to comment
Share on other sites

?

Hmm ich habe die Anleitung im OP befolgt aber habe leider trotzdem noch die Fehlermeldung "Forbidden".

 

Auf meinem Archlinux laptop habe ich die /etc/hosts ge?ndert auf "ip-des-server domain.com www.domain.com".

Wenn ich nun im browser www.domain.com ?ffne erscheint die Fehlermeldung "forbidden".

 

Eigtl. sollte hier testweise die richtige website mit richtigem inhalt erscheinen?

?

?@edit: libnss-mysql.cfg mit "localhost" anstatt "127.0.0.1" hat auch nichts gebracht :/

?@edit2: DANKE AN Thunderbird:

?Das Problem war dass "Apache 2.4" nicht aktiviert war in den froxlor webserver einstellungen :)

Link to comment
Share on other sites

Das Passt ja, wollte mich dazu gerade belesen.

 

Verstehe ich es richtig, dass dass oben beschriebende das löst:

Ich lege einen Kunden an. Der Legt ein FTP an und eine DB.

Dann Läd der Benutzer ein System hoch, sagen wir WP hat aber keine Schreibrechte....

 

Oder habe ich da etwas falsch verstanden?

Link to comment
Share on other sites

Also ich habe den Fehler behoben, indem ich in der libnss-mysql.cfg bei Host anstatt 127.0.0.1 localhost eingetragen habe. Dann war auch der Fehler verschwunden, dass er angeblich nicht auf die Datenbank zugreifen kann  :) K?nnt ihr ja mal testen ..

Link to comment
Share on other sites

Archived

This topic is now archived and is closed to further replies.



×
×
  • Create New...