Umzug von Webseite auf Apache2
Hallo zusammen,
ich möchte eine bestehende Webseite auf einen anderen Server umziehen.
Test-Zielserver ist ein Apache2 unter Ubuntu 15.0
Alle Dateien sind kopiert, das macht keine Probleme.
Beim Aufruf der index.htm wird diese auch angezeigt, jedoch fehlen Bilder die in Unterordnern liegen.
Auch beim direkten Aufruf der Datei im Browser klappt es nicht, es kommt ein:
Forbidden
You don't have permission to access /~boards/index.html on this server.
Apache/2.4.12 (Ubuntu) Server at testserver.test.xyz Port 80
Die Rechte sind im Verzeichnis /var/www/html/ mit gesetzt worden.
Ich kann jede Datei aufrufen, die im root-Verzeichnis liegt, bei jedem Unterverzeichnis kommt der obige Fehler.
Ein ls-la zeigt mir, dass die Dateien (auch die Verzeichnisse und Dateien in /var/www/html/ und den Unterverzeichnissen) alle
bzw
haben.
Ich habe das Verzeichnis nochmal geleert und gesehen, dass die Apache2 Default Webseite dem User root und Group root gehört, müsste das nicht eigentlich www-data in beiden Fällen sein ?
Aber wie ich es auch ändere, ich bekomme immer mein permission denied.
.htaccess oder .htpasswd existiert nicht.
Kann mir bitte jemand helfen, wo mein Denkfehler liegt ?
Danke vorab und Grüße, Henere
ich möchte eine bestehende Webseite auf einen anderen Server umziehen.
Test-Zielserver ist ein Apache2 unter Ubuntu 15.0
Alle Dateien sind kopiert, das macht keine Probleme.
Beim Aufruf der index.htm wird diese auch angezeigt, jedoch fehlen Bilder die in Unterordnern liegen.
Auch beim direkten Aufruf der Datei im Browser klappt es nicht, es kommt ein:
Forbidden
You don't have permission to access /~boards/index.html on this server.
Apache/2.4.12 (Ubuntu) Server at testserver.test.xyz Port 80
Die Rechte sind im Verzeichnis /var/www/html/ mit
chmod -R 644 *
Ich kann jede Datei aufrufen, die im root-Verzeichnis liegt, bei jedem Unterverzeichnis kommt der obige Fehler.
Ein ls-la zeigt mir, dass die Dateien (auch die Verzeichnisse und Dateien in /var/www/html/ und den Unterverzeichnissen) alle
drw-r--r--
-rw-r--r--
Ich habe das Verzeichnis nochmal geleert und gesehen, dass die Apache2 Default Webseite dem User root und Group root gehört, müsste das nicht eigentlich www-data in beiden Fällen sein ?
Aber wie ich es auch ändere, ich bekomme immer mein permission denied.
.htaccess oder .htpasswd existiert nicht.
Kann mir bitte jemand helfen, wo mein Denkfehler liegt ?
Danke vorab und Grüße, Henere
Bitte markiere auch die Kommentare, die zur Lösung des Beitrags beigetragen haben
Content-ID: 298327
Url: https://administrator.de/forum/umzug-von-webseite-auf-apache2-298327.html
Ausgedruckt am: 21.04.2025 um 15:04 Uhr
10 Kommentare
Neuester Kommentar
Moin,
Hallöchen,
In den meisten default setups die du über deine Distro installierst, wie in diesem Fall bei Ubuntu wird standardmäßig ermöglichst, das Benutzer Kontent selbst hosten.
Diese rufen dann ihre Inhalte über eine URL ab, die nach dem Hostnamen (und eventuell Port) eine Tilde haben hinter die der Benutzername folgt,
In deinem Fall ist das /~boards/. Hier wird also versucht auf das public_html verzeichnis des Benutzers boards zuzugreifen, der auf deinem Neuen Setup nicht existiert. Folglich natürlich auch nicht aufgerufen werden kann.
Die einfachste und auch beste Variante ist die Pfade anzupassen sodass dein Kontent letztendlich nur noch unter /var/www/html zu finden ist. Die Alternative dazu ist einen Benutzer boards anzulegen, unter seinem Benutzernamen das Verzeichnis ~/public_html anzulegen und dort den Kontent unter zu bringen. Ehrlich gesagt, kann ich dir nicht sagen, wann das Mode war, ich schätze in Zeiten der Shellhosts, aber das ist eindeutig nicht mehr Stand der Zeit. Ändern bzw. Anpassen wird dringend empfohlen. Das erspart dir auch einen solches Durch einander, solltest du deinen Kontent nochmal umziehen.
Gruß
Chris
Hallöchen,
In den meisten default setups die du über deine Distro installierst, wie in diesem Fall bei Ubuntu wird standardmäßig ermöglichst, das Benutzer Kontent selbst hosten.
Diese rufen dann ihre Inhalte über eine URL ab, die nach dem Hostnamen (und eventuell Port) eine Tilde haben hinter die der Benutzername folgt,
In deinem Fall ist das /~boards/. Hier wird also versucht auf das public_html verzeichnis des Benutzers boards zuzugreifen, der auf deinem Neuen Setup nicht existiert. Folglich natürlich auch nicht aufgerufen werden kann.
Die einfachste und auch beste Variante ist die Pfade anzupassen sodass dein Kontent letztendlich nur noch unter /var/www/html zu finden ist. Die Alternative dazu ist einen Benutzer boards anzulegen, unter seinem Benutzernamen das Verzeichnis ~/public_html anzulegen und dort den Kontent unter zu bringen. Ehrlich gesagt, kann ich dir nicht sagen, wann das Mode war, ich schätze in Zeiten der Shellhosts, aber das ist eindeutig nicht mehr Stand der Zeit. Ändern bzw. Anpassen wird dringend empfohlen. Das erspart dir auch einen solches Durch einander, solltest du deinen Kontent nochmal umziehen.
Gruß
Chris

Moin,
die Meldungen kommen meist dann wenn auf einem System der zusätzliche Securitylayer SELinux implementiert ist, dann müssen zusätzliche Policies für den Zugriff angelegt werden. Solltest du auf jeden Fall mal überprüfen ob das auf dem Zielsystem der Fall ist
Guckst du dazu auch hier:
http://www.serverlab.ca/tutorials/linux/web-servers-linux/configuring-s ...
Die Fehlermeldung ist nämlich sehr typisch dafür.
Gruß jodel32
die Meldungen kommen meist dann wenn auf einem System der zusätzliche Securitylayer SELinux implementiert ist, dann müssen zusätzliche Policies für den Zugriff angelegt werden. Solltest du auf jeden Fall mal überprüfen ob das auf dem Zielsystem der Fall ist
Guckst du dazu auch hier:
http://www.serverlab.ca/tutorials/linux/web-servers-linux/configuring-s ...
Die Fehlermeldung ist nämlich sehr typisch dafür.
Gruß jodel32

Benötigte Standardzugriffsrechte für Dateien und Verzeichnisse:
http://askubuntu.com/questions/386928/default-permissions-for-var-www
Kann aber je nach Webseite variieren wenn deine Webseite in einem Verzeichnis z.B. Schreibrechte benötigt. Da musst du die Rechte der ursprünglichen Seite analysieren und was diese jeweils benötigt.
Und wie immer gilt:
In order to traverse (enter) a directory, you need to have execute permission on that directory. The webserver needs this permission to list a directory or serve any files inside of it.
http://serverfault.com/questions/357108/what-permissions-should-my-webs ...
http://askubuntu.com/questions/386928/default-permissions-for-var-www
Kann aber je nach Webseite variieren wenn deine Webseite in einem Verzeichnis z.B. Schreibrechte benötigt. Da musst du die Rechte der ursprünglichen Seite analysieren und was diese jeweils benötigt.
Und wie immer gilt:
In order to traverse (enter) a directory, you need to have execute permission on that directory. The webserver needs this permission to list a directory or serve any files inside of it.
http://serverfault.com/questions/357108/what-permissions-should-my-webs ...

Deswegen nimmt man für einen produktiven Webserver lieber ein CentOS oder RedHat und Konsorten, welche die Rechte des Apache-Prozesses zusätzlich mit SELinux Policies kontrollieren 
Ohne explizite Write-Policy für ein Verzeichnis läuft dort nämlich gar nichts auch wenn die Dateizugriffsrechte das erlauben würden.
Ein Ubuntu 15.10 als öffentlichen Webserver, käme mir persönlich nie in die Tüte, erstens weil bei diesem Zweig kein Long Term Support verfügbar ist und zweitens ist das eher was für Intranets aber nichts für den öffentlichen Betrieb. Bei Ubuntu lieber zu den LTS Versionen greifen wenns unbedingt Ubuntu sein muss.
Ohne explizite Write-Policy für ein Verzeichnis läuft dort nämlich gar nichts auch wenn die Dateizugriffsrechte das erlauben würden.
Ein Ubuntu 15.10 als öffentlichen Webserver, käme mir persönlich nie in die Tüte, erstens weil bei diesem Zweig kein Long Term Support verfügbar ist und zweitens ist das eher was für Intranets aber nichts für den öffentlichen Betrieb. Bei Ubuntu lieber zu den LTS Versionen greifen wenns unbedingt Ubuntu sein muss.