Wirtualny host Apache wskazuje na niewłaściwy DocumentRoot

9

Obsługuję VPS na Digital Ocean z systemem Ubuntu 12.04.3, z wirtualnymi hostami. Udało mi się skonfigurować rzeczy, wykonując ten samouczek tutaj: https://www.digitalocean.com/community/articles/how-to-set-up-apache-virtual-hosts-on-ubuntu-12-04-lts

Jednak po kilku dniach przeszedłem do mojej głównej domeny (noelforte.com), aby sprawdzić, czy wszystko działa bezproblemowo, ale zamiast zobaczyć stronę docelową, którą tymczasowo skonfigurowałem, zamiast tego przywitałem się z katalogiem.

Co dziwne, subdomena, którą skonfigurowałem za pomocą VHostów, była nadal wskazywana na właściwy katalog, jednak moja domena główna powróciła do wskazywania domyślnego katalogu głównego dokumentu /var/www.

Usunięcie plików konfiguracyjnych /etc/apache2/sites-availablei ponowne skonfigurowanie wszystkiego przyniosło takie same wyniki: każda subdomena wskaże właściwą lokalizację, jednak główna TLD pozostaje zablokowana, wskazując /var/www.

Co może powodować taką sytuację i dlaczego początkowo działało poprawnie?

Noel Forte
źródło

Odpowiedzi:

12

Rozwiązałem to! Uruchomienie sudo apache2ctl -Szwróciło:

VirtualHost configuration:
wildcard NameVirtualHosts and _default_ servers:
*:80                   is a NameVirtualHost
         default server noelforte.com (/etc/apache2/sites-enabled/000-default:1)
         port 80 namevhost noelforte.com (/etc/apache2/sites-enabled/000-default:1)
         port 80 namevhost media.noelforte.com (/etc/apache2/sites-enabled/media.noelforte.com:1)

Postanowiłem wyłączyć wszystkie witryny, w tym domyślne, i po prostu aktywować witryny, których potrzebowałem. To rozwiązało mój problem.

Gdyby ktoś mógł wyjaśnić, dlaczego noelforte.comdziała tak, default-000jak pokazano tutaj:

port 80 namevhost noelforte.com (/etc/apache2/sites-enabled/000-default:1)

pomogłoby to rzucić nieco światła na to, co mogło być źle skonfigurowane. Dzięki!

Noel Forte
źródło
Miałem ten sam problem, ponieważ dla mnie nazwa serwera została ustawiona tak samo jak domena w pliku domyślnym 000.
Hard-Boiled Wonderland
1

Utwórz 000-defaultplik w /etc/apache2/sites-availablelub, jeśli już istnieje, edytuj go. W tym miejscu wskaże Twój serwer internetowy, jeśli nie ma zdefiniowanego wirtualnego hosta dla szukanej witryny.

Upewnij się, że plik również istnieje /etc/apache2/sites-enabled. Jeśli nie:ln -s /etc/apache2 sites-available/000-default /etc/apache2/sites-enabled/

Momo
źródło
W defaultmoim /etc/apache2/sites-availablekatalogu jest już plik . Mam również wirtualny host do noelforte.comskonfigurowania i włączenia, jednak nie wskazuje on katalogu głównego dokumentu zdefiniowanego w pliku vhost. Dlaczego?
Noel Forte
0

Musisz edytować /etc/apache2/sites-enabled/yourdomain.conf i dodać „ServerName” do „yourdomain”. Np .:

<VirtualHost *:80>
    ServerName MyDomain
    DocumentRoot /var/www/myDomainFolder
...
</VirtualHost>
sudip
źródło