Wo kann ich meine lokale Website platzieren, beginnend mit der 2.4.7-Version von apache2?

50

Ich habe kürzlich Ubuntu 14.04 installiert, dann habe ich lamp-servermeine Webseiten installiert und in das /var/wwwVerzeichnis gestellt, aber als ich localhost im Browser geöffnet habe, war nichts dabei. Ich denke, das ist passiert, weil Zend Apache aktualisiert hat.

Was auch immer der Grund sein mag, ich möchte wissen, wo ich meine PHP-Dateien aufbewahren soll, damit ich über meinen Browser darauf zugreifen kann.

akabhirav
quelle
Obwohl keine Antwort auf die Frage des OP kann die folgende Antwort einige Besucher helfen , die auf diese Frage stolpern beim Versuch , ein ähnliches Problem zu beheben: askubuntu.com/a/525120/1183
augustin

Antworten:

76

Die Apache2-Version, die bei der Veröffentlichung von Ubuntu 14.04 veröffentlicht wurde, ist 2.4.7. Ab dieser Version scheint das neue Stammverzeichnis für den Server aus Sicherheitsgründen wie folgt zu lauten:

/var/www/html

Von nun an müssen Sie hier die Dateien für Ihre (lokale) Website ablegen. Sie sollten dieses Problem bei zukünftigen Updates nicht mehr haben.


Wie auch immer, wenn Sie dieses Verzeichnis mit einem anderen ändern möchten, müssen Sie (als root) die folgende Zeile aus /etc/apache2/sites-available/000-default.conffile ( sudo nano /etc/apache2/sites-available/000-default.conf) ändern :

DocumentRoot /var/www/html

zu

DocumentRoot /path/to/another/directory

Danach müssen Sie den Apache-Server mit dem folgenden Befehl neu starten, damit die neuen Änderungen wirksam werden:

sudo service apache2 restart
Radu Rădeanu
quelle
10
Interessanterweise habe ich nach den Gründen für diesen Schritt gesucht. Wenn jemand interessiert ist, habe ich diesen Fehlerbericht in Debian gefunden, der ihn erklärt.
Dan
4
Ich erhalte nach dieser Änderung einen verbotenen Fehler.
Darshana
1
@Darshana Die Standardkonfiguration in apache2.4 erlaubt Apache nicht, auf etwas außerhalb zuzugreifen /var/www/html. Wenn Sie Ihre Site an einer anderen Stelle als in diesem Verzeichnis (oder seinen Unterverzeichnissen) ablegen, wird ein 403-Fehler ausgegeben. Sie benötigen eine hinzufügen <Directory /path/to/your/site>Richtlinie zu VHost configs mit einer requireRichtlinie darin.
Dan
Das hat bei mir nicht funktioniert.
user124384
Gleiche hier .. Es gibt mir jetzt Fehler 403 verboten! Wie soll ich es lösen (In einfacher, nooberer Weise BITTE)
abhishah901
27

Anstatt /etc/apache2/sites-available/000-default.confauf die alte Version zurückzukehren, möchte ich die Standardpaketdateien unverändert lassen.

Ein Grund dafür ist, dass es beim nächsten Upgrade nicht mehr funktioniert, wodurch die 000-default.confDatei möglicherweise zurückgesetzt wird.
Außerdem werden solche Änderungen nicht nur gemacht, um uns zu ärgern, die Änderung wurde aus einem guten Grund gemacht, wie dieser Fehlerbericht in Debian erklärt .

Unsere Webserver setzten den Standard-Dokumentenstamm auf / var / www, wohingegen lokale Administratoren /var/www/example.com verwenden. Dies hat Auswirkungen auf die Sicherheit, wenn Besucher auf das Standarddokumentstammverzeichnis zugreifen und dabei das Verzeichnis / assumpt / document von example.com umgehen. Dies ist problematisch, wenn sich sensible Daten außerhalb des vermeintlichen Dokumentenstamms befinden (z. B. eine hypothetische Konfigurationsdatei /var/www/example-com-db.conf).

Eine bessere Lösung wäre, die Site-Dateien von /var/wwwnach zu verschieben /var/www/html/.

# 1. move all files excluding the `html` directory
sudo mv /var/www/[!html]* /var/www/html
# 2. Move the hidden files as well which are skipped in previous command
sudo mv /var/www/.[!.]?* /var/www/html/

Eine andere mögliche Lösung besteht darin, einen anderen virtuellen Host zu erstellen und den Standardhost mit dem Befehl zu deaktivieren sudo a2dissite 000-default

Dan
quelle