Probleme mit Apache-User und PHP-Script bzw. dessen Verzeichnisse

Christian-K

New Member
Hallo, ich habe einen Server aufgesetzt mit Debian 4.0, Apache 2.2.x (suoshin) , mod-php5(suoshin) f. Apache, suexec, mod_rewrite, MySQL 5.0.41 und Confixx 3.30 Pro.
Der Apache läuft als Benutzer u. Gruppe www-data.
Mit dem in Confixx angelegten Kunden Web1 habe ich mein CMS Script per FTP(mit Web1) in das entsprechende Verzeichniss (home/www/web1/html/cms/) geladen - alle Dateien und Ordner haben dann logischerweise den Besitzer Web1 und Gruppe Web1.

Das CMS-Script, bzw. dessen Installer für Komponenten, Module und Templates brauchen schreibrechte in einigen der Verzeichnissen - und da kommt auch schon das Problem:
Das CMS, was als Apache-User (www-data) ausgeführt wird (bzw. als dieser User in die Verzeichniss schreibt), hat erst dann schreibrechte auf die Verzeichnisse wenn ich diese auf chmod 777 stelle - was aber äußerst ungünstig ist.

Die erste idee ist natürlich alle Dateien des Scripts dem (www-data) zuzuweisen, allerdings kann ich die Daten dann nichtmehr bequem per FTP (Web1) verwalten - schlechte idee also...

Die zweite idee war es den www-data der Gruppe web1 hinzu zufügen. Per "gpasswd -a www-data web1" gesagt getan - keine veränderung der Situation, Verzeichnisse immer noch nicht beschreibbar - erst mit chmod 777.

Nun bin ich mit meinem Latein am Ende... ich brauche dabei mal ein paar hilfreiche Tipps......

Danke und MfG Christian-K
 
Last edited by a moderator:
Alternativ PHP als Fast-CGI laufen lassen, und dann z.b. PHP über ein Skript zu starten, welches ich an meinen Post angehängt habe. Damit wird PHP dem jeweiligen User und der Gruppe zugeordnet, ist also eine relativ sichere Sache. Ich nutze das so bei meinem Lighttpd, sollte aber ohne Probleme auch auf den Apache übertragbar sein.

User anlegen
Gruppe anlegen // Ich denke das wird bei dir dann Confixx übernehmen

Für jeden User ein neues Skript schreiben.

/var/www/vhost/user/html // das html Verzeichniss auf 750 setzten

Dir Ordnerstruktur könnte man so machen:

/var/www/fastcgi // hier die Startskripte für PHP rein
/var/www/vhosts // hier die Virtuellenhosts rein

Dann PHP über die Skripte starten. Und einen neuen Cronjob erstellen.

@reboot for i in /var/www/fastcgi/*.sh; do $i; done

Das startet nach einem Reboot automatisch PHP
 

Attachments

Wow, klasse Antwort!
Geht das auch ohne fCGI? Ich würde gerne aus Performancegründen(stichwort Php-caches) bei mod_php bleiben.

Ich meine, ich war vorher mit meinem CMS-Script bei einem Hoster per Webspacepaket, die hatten die "selbe" Konfiguration (php5 als mod) und der Apache konnte alle "Webxx" Verzeichnisse auch ohne chmod7777 beschreiben. Also sollte es doch auch anders möglich sein, oder?

Mfg Christian-K
 
Last edited by a moderator:
Hi, hat irgendjemand noch ein Workaround oder irgendeine Info, Ressource (webseite o.Ä.) zum Problem was aber mit mod_php funktioniert?

Danke nochmals
Christian-K
 
Hab es gelöst....
War nur eine Sache der Logik:
Erstmal alle Dateien und Ordner der usergroup www-data zugewiesen:
Code:
chgrp -R www-data verzeichniss
Dann Schreibrechte,Leserechte (+Execute f. Verzeichnisse) der Gruppe und User vergeben:
Code:
chmod -R gu+rwX verzeichniss
Nun funzt es Prima!

Danke, und Mfg Christian-K
 
Back
Top