Rapsberry Pi Apache Verzeichnis ändern?

4 Antworten

Vom Fragesteller als hilfreich ausgezeichnet

Das ist tatsächlich eine Frage der Rechte. Der Webserver kann nur auf Verzeichnisse zugreifen, die dem Benutzer www-data gehören. Das von Dir als DocumentRoot angegebene Verzeichnis gehört aber dem Benutzer pi und der Gruppe pi.

Die Rechte nun auf 777 zu setzen (jeder kann lesen, schreiben und ausführen) funktioniert zwar (siehe Antwort von RakonDark), ist aber denkbar schlechte Praxis und entspricht keinem Sicherheitskonzept. Als Kompromiss kannst Du die Gruppe des Verzeichnisses und aller seiner Unterverzeichnisse auf www-data setzen und den Besitzer auf pi. Die Rechte setzt Du auf 775. Am einfachsten geht das so:

sudo find /home/pi/webserver/html/ -type d -print0 | xargs -0 chown www.data.pi
sudo find /home/pi/webserver/html/ -type d -print0 | xargs -0 chmod 0775
find /home/pi/webserver/html/ -type f -print0 | xargs -0 chown pi.pi
find /home/pi/webserver/html/ -type f -print0 | xargs -0 chmod 0664

Der Befehl find sucht unterhalb des angegebenen Verzeichnisses, mit -type d suchst Du ausschließlich Verzeichnisse (

d

irectories), mit -type f ausschließlich Dateien (

f

iles).  Mit der Pipe übergibst Du die gefundenen Ergebnisse an xargs, welches dann die Befehle chown (change owner) und chmod (change mode) aufruft.

So kannst Du die Dateien als Benutzer pi editieren und der Webserver darf sie lesen. Wenn Du ein neues Unterverzeichnis anlegst, musst Du das wieder mit den ersten beiden Befehlen mit den richtigen Rechten ausstatten.

Du wirst nicht die nötigen rechte haben um dort drinne zu arbeiten. Füge diese mal hinzu, starte den Pi neu und versuch es nochmal.

RakonDark  07.06.2017, 12:37

wieso den PI neustarten ?? apache neu starten . das ist doch linux und nicht windows

0
Nemesis900  07.06.2017, 13:00
@RakonDark

Verdammt, habe mir auch nach dem schreiben gedacht das das eigentlich Unsinn ist. Hatte gehofft das es keiner merkt ;)

1
Linuxhase  08.06.2017, 05:24

@Nemesis900

Du wirst nicht die nötigen rechte haben um dort drinne zu arbeiten.

Er hat natürlich die Rechte um in /home/pi/webserver/ zu arbeiten, es ist ja sein $HOME , derjenige der nicht auf diesen Ort zugreifen kann bzw. darf ist www-data

Linuxhase

0

dein server brauch die rechte in dem verzeichnis , achtung bei ordnern müssen auch ausführungsrechte sein, sonst kann vom apache nicht in das verzeichnis gewechselt werden .

rechte werden mit chmod gesetzt , am einfachsten einfach

chmod -R 777 /home/pi/webserver/html setzen . dann läuft das , wichtig ist aber das bei neu angelegten dateien dann auch RECHTE für Others gesetzt sind , sonst kann dein webserver auch die neuen dateien nicht sehen .

Die Zugriffsverweigerung kann auch mit der Konfiguration des Directory zusammenhängen: Such mal in den Konfigurationsdateien des Apache Servers nach deny und allow.

order deny,allow
deny from all
allow from <your ip>
Woher ich das weiß:Berufserfahrung – Web Developer bei einem mittelständischen Portalbetreiber