[Date Prev][Date Next] [Thread Prev][Thread Next] [Date Index] [Thread Index]

Re: Apache mit php5-fpm und verschiedenen Benutzern



Martin Steigerwald <martin@lichtvoll.de> wrote:

> Ich hab, nachdem ich die Migration auf nginx aufgab, da es Out of the
> box kein Content Negotiation kann,  nun das PHP auf meinem Apache von
> Modul auf php5- fpm umgestellt, um dann das Event MPM statt des
> Prefork MPM zu nutzen.

> Dabei ging ich von dem folgenden von Sven Hartge inspirierten HOWTO
> aus:

> https://netz-rettung-recht.de/archives/1909-PHP-FPM-jetzt-mit-mod_proxy_fcgi.html

> Das funktioniert soweit auch, das Wordpress funktioniert, meine Uralt-Webseite 
> mit Marke Eigenbau-PHP ebenfalls, und Owncloud habe ich davor ohnehin 
> entsorgt, da ich vorhabe, es durch Seafile zu ersetzen.

> Im HOWTO ist allerdings nun auch von verschiedenen Pools für
> verschiedene Nutzer die Rede. Das verstehe ich da jetzt nicht so ganz,
> da einerseits in der Pool-Konfiguration der neue Benutzer eingetragen
> soll, dann doch laut Kommentaren auf dem Blog-Eintrag doch wieder
> nicht, da Apache2 doch als www- data läuft.

Wenn du php-fpm einsetzt, dann musst du Trennen zwischen dem Benutzer,
unter dem Apache läuft und unter dem FPM läuft.

Apache ist ja bei FPM nur noch ein "Proxy" für PHP-Seiten, diese werden
ja im FPM-Prozess ausgeführt.

Daher kann man ohne Weiteres einen neuen Pool im FPM unter einem anderen
Benutzer anlegen und alle PHP-Seiten laufen in diesem Pool dann unter
dem Kontext des anderen Benutzers.

Statische Dinge, wie z.B. Bilder etc. werden weiterhin vom Apache
ausgeliefert, was ja ungefährlich ist. Natürlich muss man dabei dann
beachten, dass Apache auch Zugriff auf diese Daten hat.

> Nun überlege ich, das irgendwann mal komplett zu kapseln und zwar via

> libapache2-mpm-itk - multiuser module for Apache

> Also für jeden Benutzer den Apache unter dem Benutzer laufen lassen oder gar 
> für jeden Benutzer noch einen weiteren Benutzer machen, damit jemand, der in 
> die Seite einbricht nicht gleich auch noch Zugriff auf das Homeverzeichnis 
> hat. Also z.B. für die Webseiten für den Benutzer martin, noch einen Benutzer 
> martinweb. Den Benutzer martin würde ich dann in die Gruppe martinweb packen 
> oder anderweitig via ACLs dafür sorgen, dass er auf die Webseiten-Daten 
> zugreifen kann.

> Was haltet ihr davon? Hat das jemand so im Einsatz? Funktioniert das
> gut? Oder ist das für einen kleinen privaten Server alles schon viel
> zu kompliziert und wartungsaufwendig?

ITK brauchst du nicht für so ein Setup, es sei denn, du willst noch
andere aktive Dinge neben PHP in deinem Benutzerkontext ausführen, z.B.
CGIs. (Wobei man das mittels z.B. "fcgistarter" auch via mod_proxy_fcgi
kapseln kann.)

Willst du nur PHP machen, dann brauchst du nur einen Benutzer
"martinweb" anlege, einen Pool definieren, der als dieser Benutzer
läuft, mittels ACL dafür sorgen, dass "www-data" (und ggfls. dein
normaler User "martin") lesenden Zugriff auf die Dateien hat (für die
statischen Daten) und fertig.

Willst du dagegen mod_itk nutzen, so braucht man FPM streng genommen gar
nicht, sondern kann normal mit mod_php arbeiten, da die User-Trennung ja
von mod_itk schon vorgenommen wird.

S°

-- 
Sigmentation fault. Core dumped.


Reply to: