Gdzie umieścić moją lokalną stronę internetową, zaczynając od wersji apache2 2.4.7?

50

Niedawno zainstalowałem Ubuntu 14.04, potem zainstalowałem lamp-serveri umieściłem swoje strony w /var/wwwkatalogu, ale kiedy otworzyłem localhost w przeglądarce, nic nie było. Myślę, że tak się stało, ponieważ Zend zaktualizował Apache.

Niezależnie od przyczyny, chcę wiedzieć, gdzie przechowywać moje pliki php, aby uzyskać dostęp do nich z mojej przeglądarki.

akabhirav
źródło
Chociaż nie jest to odpowiedź na pytanie OP następującą odpowiedź może pomóc niektórym gości, którzy potykają na to pytanie, starając się naprawić związany problem: askubuntu.com/a/525120/1183
Augustin

Odpowiedzi:

76

Wersja apache2, która została opublikowana podczas tworzenia wersji Ubuntu 14.04, to 2.4.7 i począwszy od tej wersji wydaje się, że ze względów bezpieczeństwa nowy katalog główny serwera to:

/var/www/html

Odtąd w tym miejscu musisz umieścić pliki swojej (lokalnej) strony internetowej. Nie powinieneś ponownie mieć tego problemu z przyszłymi aktualizacjami.


W każdym razie, jeśli chcesz zmienić ten katalog na inny, musisz zmodyfikować (jako root) następujący wiersz z /etc/apache2/sites-available/000-default.confpliku ( sudo nano /etc/apache2/sites-available/000-default.conf):

DocumentRoot /var/www/html

do

DocumentRoot /path/to/another/directory

Następnie, aby nowe zmiany zaczęły obowiązywać, musisz zrestartować serwer Apache za pomocą następującego polecenia:

sudo service apache2 restart
Radu Rădeanu
źródło
10
Co ciekawe, próbowałem znaleźć uzasadnienie tego posunięcia. Jeśli ktoś jest zainteresowany, znalazłem ten raport o błędach w Debianie, który go wyjaśnia.
Dan
4
Po tej zmianie otrzymuję zabroniony błąd.
Darshana,
1
@Darshana Domyślna konfiguracja w apache2.4 nie pozwala apache'owi na dostęp do czegokolwiek na zewnątrz /var/www/html. Umieszczenie witryny w dowolnym miejscu innym niż ten katalog (lub jego podkatalogi) spowoduje błąd 403. Musisz dodać <Directory /path/to/your/site>dyrektywę do konfiguracji VHost z zawartą w niej requiredyrektywą .
Dan
To mi nie zadziałało.
user124384,
To samo tutaj .. Teraz daje mi błąd 403 zabronione! Jak mam to rozwiązać (PROSZĘ, w prostszy sposób, PROSZĘ)
abhishah901
27

Zamiast modyfikować z /etc/apache2/sites-available/000-default.confpowrotem do starej wersji, wolę zachować niezmodyfikowane domyślne pliki pakietów.

Powodem tego jest to, że nie zepsuje się podczas następnej aktualizacji, co może zresetować 000-default.confplik.
Poza tym, takie modyfikacje nie są po prostu denerwujące, modyfikacja została wykonana z dobrego powodu, jak wyjaśnia ten raport o błędach w Debianie .

Nasze serwery [sic] ustawiają domyślny katalog główny na / var / www, podczas gdy administratorzy lokalni używają /var/www/example.com. Ma to wpływ na bezpieczeństwo, jeśli odwiedzający uzyskają dostęp do domyślnego katalogu głównego dokumentu, pomijając katalog / domniemany / dokument katalogu przykład.com. Jest to problematyczne, jeśli wrażliwe dane znajdują się poza domniemanym katalogiem głównym dokumentu (np. Rozważ hipotetyczny plik konfiguracyjny /var/www/example-com-db.conf).

Lepszym rozwiązaniem byłoby przeniesienie plików witryn /var/wwwdo /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/

Innym możliwym rozwiązaniem jest utworzenie innego hosta wirtualnego i wyłączenie domyślnego za pomocą polecenia sudo a2dissite 000-default

Dan
źródło