DocumentRoot und Berechtigungen

schwedenmann

schwedenmann

Foren Gott
Hallo

Ich installier mir gerade nur privat, also nicht "produktives" auf mehreren Linuxen, meines Multiboottestpc jeweils einen Webserver + php + mysql(mariadb) um mal einige CMS auszuprobieren.

Jetzt die eigentliche Frage: Mit welchen Rechten und mit welchem user:gruppe läuft das DocumentRoot ?
Wenn ich mir so docs zu webservern anschaue, kommen da mehrere Antworten. von www-date fürs documentroot bis auch zu einer eigenen Gruppe www , in den man z.B. einne lokalen uiser reinsetzt und dann /var/www oder /var/ww/html entsprechende Rechte für das documentroot gibt.
Gibt es da irgendeine regel, wie man die Rechte fürs DocuemntRoot vergibt und an wen ?

mfg
schwedenmann
 
Wenn Du "nach Deinen Anforderungen" als Regel ansiehst, dann gibt es die.

Ich würde sagen: Die einzige Regel ist die, daß Du die Berechtigungen vergeben solltest, die Dein Webserver und Dein CMS zum sauberen Betrieb benötigen. Das kann von (auch wenn's ein Bug ist) 777 für's DocRoot und alle UVZ sein (nicht lachen, gibt's. Wie gesagt - Bug) bis zu 500 für Verzeichnisse und 400 für Dateien darin sein. Wenn z.B. Webserver und php unter verschiedenen Nutzern laufen sieht's wieder anders aus.

Kurz gesagt: jeder beteiligte Serverprozess braucht je nach verwendeter Software / CMS / ... ein Mindestmaß an Rechten. Die solltest Du vergeben, alles weitere hängt ggf. von der von Dir verwendeten internen Benutzer- und Rechte-Verwaltung und -Struktur ab.
... und davon, wie Du dort Dateien bearbeiten / "deployen" / ablegen willst, ...
 
Die Rechte kann man vergeben und werden von Distributoren auch voreingestellt. Bei Debian ist es www-data, bei suse ist es root usw. Jedenfalls habe ich mit Voreinstellungen keine Probleme gehabt. Ich probiere selbst viele CMS-Programme, allerdings lege ich ein CMS jeweils unter eigenen Virtuellen Host an. Somit kann ich auf einem Linux-System über verschiedene URL auf verschiedene CMS zugreifen.

Ist einfacher als sich extra Distributionen für jeweils ein CMS zu installieren. LAMP ist auf allen Systemen gleich.

Stichwort: Apache VirtualHost
 
Hallo

@ViNic
Ist einfacher als sich extra Distributionen für jeweils ein CMS zu installieren. LAMP ist auf allen Systemen gleich.

Klar, habe ich auf auf meinem HauptPC auch (alles nur privat, bin kein ITler, nur als Spielerei) , hab in der /etc/hosts zig unterschiedliche "Testurls a la 192.168.178.20 meintestserver.local so in der Art stehen) , sodaß ich mehrere html Projekte per vhost verfolgen kann. Ich hab den Multibootpc nur deshalb genommen, weil ich auch mal mehrere Webserverinstallationen und deren Kompatibilität zu den CMS testen wollte, bevor ich was auf dem Hauptpc installier (mehrere webserver auf einem System macht ja Schwierigkeiten, auf dem HauptRechnerz.B. läuft nginx, allerdings mit php5.6xy). Installiert bekommen habe ich Django-CMS-aktuellestes, Drupal 8.2.5, CMS-madesimple, typo3 und Pivotx, gescheitert bin ich an joomla, razorCMS, PapayaCMS und SilverstripeCMS.

Wichtig war einfach mal nachfragen, wie die Berechtigungen gesetzt werden. Wenn ich das bei den Installationen jetzt gesehen habe www-data:www-data 777, bzw. www-data:wwwdata:755, nur findet man das in den Installationsdokus so nicht explizit erklärt, deshalb habe ich nachgefragt.

P.S. Wie stellt man eigentlich von php5.6 auf php.7.0 um ? Beides sind installiert aber nutzt wir 5.6 , auf einem debian-Sid.

mfg
schwedenmann
 
Umstellen von php-Versionen hängt davon ab, wie es denn eingebunden wird - Apache-Module, PHP-FPM / FastCGI / , ...
 
Hallo

@marce

Sollte wohl per php-fpm realisiert wrden, ist wie gesagt ein nginx.

server {
listen 80;
server_name meinserver1;
root /deblivpro/www/data1/meinserver1;
index index.php index.html index.htm index.nginx-debian.html;
location / {
try_files $uri $uri/ =404;
}
error_page 404 /404.html;
error_page 500 502 503 504 /50x.html;
location = /50x.html {
root /deblivpro/www/data1/meinserver1;
}
location ~ \.php$ {
try_files $uri =404;
fastcgi_pass unix:/var/run/php5-fpm.sock;
fastcgi_index index.php;
fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;
include fastcgi_params;
}
}

Wenn ich dort php5-fpm gegen php7.0-fpm austausche, wird eine info.php im DocumentRoot nicht erkannt.
Bei einer frischen unstable Installation wird dagegen php-7.xy ausgegeebn, wenn dort php7.0-fpm steht.
php-fpm ist installiert und ist php7.0-php, php5-fpm ist auch installiert. Aktiv müßte eigentlich php7.0 sein, denn in der php5.ini sieht keine extensions deklariert, nur in der php.ini von php7.0 ! deshalb konnte ich ja auch mysqldbs in Drupal einbinden, obwohl auhc dort php5-fpm in der nginxvhosts steht, genau wie hier im beispielvhosts für meintestserver1.

mfg
schwedenmann
 
wie die Konfig bei Debian konkret aussieht - keine Ahnung. Du solltest aber sicherstellen, daß der php-FPM-Server des 7er läuft und die solltest auch idealerweise die komplette Prozesskette stoppen und neu starten - da passieren sonst manchmal recht lustige Dinge.

Grundsätzlich kannst du mit phpFPM auf jedenfall problemlos mehrere PHP-Versionen parallel betreiben und je VHost wählen / zuteilen.
 

Ähnliche Themen

Ort des documentroot

Apache2 konfigurieren für mehrere Seiten

Apache virtuelle Server und ftp Zugang

VHOST Problem, Debian Lenny

Brauche Hilfe bei Apache2 Mod_Proxy und Redirect

Zurück
Oben