Witryna nie istnieje błąd dla a2ensite

275

Mam cmsplus.devpod /etc/apache2/sites-availableponiższym kodem,

<VirtualHost *:80>
    ServerAdmin [email protected]
    ServerName www.cmsplus.dev
    ServerAlias cmsplus.dev

    DocumentRoot /var/www/cmsplus.dev/public

    LogLevel warn
    ErrorLog /var/www/cmsplus.dev/log/error.log
    CustomLog /var/www/cmsplus.dev/log/access.log combined
</VirtualHost>

Teraz kiedy używam sudo /usr/sbin/a2ensite cmsplus.dev, pojawia się błąd,

ERROR: Site cmsplus.dev does not exist!

Mój serwer internetowy Apache/2.4.6 (Ubuntu)

Jak rozwiązać ten problem?

devo
źródło

Odpowiedzi:

577

Rozwiązano problem, dodając .confrozszerzenie do plików konfiguracji witryny.

Apache a2ensitepowoduje:

Błąd! Witryna nie istnieje

Problem; Jeśli błąd wystąpił podczas próby włączenia witryny przy użyciu:

sudo a2ensite example.com

ale zwraca:

Błąd: example.com nie istnieje

a2ensite jest po prostu skryptem Perla, który działa tylko z końcówkami nazw plików .conf

Dlatego muszę zmienić nazwę mojego pliku ustawień na example.comna, example.com.confco można osiągnąć w następujący sposób:

mv /etc/apache2/sites-available/example.com /etc/apache2/sites-available/example.com.conf

Sukces

devo
źródło
25
Dziwne! To działało dobrze bez rozszerzenia w Ubuntu 12.04 i 12.10.
FloatingRock
Dla mnie to samo. Jak mówi Guilherme, apache2.conf zmienił się między wersjami Ubuntu lub Apache.
Nicolas Zozol,
7
Alternatywnie uważam, że możesz po prostu edytować plik apache.conf. Odpowiedni wiersz to „IncludeOptional-enabled / enabled. * Conf” Usuń plik .conf na końcu, a wrócisz do tego, co działało w 12.04. Myślę, że to może być zmiana, którą Debian wprowadził do Ubuntu, ale nie jestem pewien.
Josiah
2
Dlaczego ta odpowiedź jest trzecia? To jest właściwy sposób na zrobienie tego.
nish
Zrezygnowałem już po zmianie prawie wszystkiego ... Będę odtąd pamiętał o dodaniu rozszerzenia .conf ...
wtf8_decode
91

Prawdopodobnie zaktualizowałeś instalację Ubuntu, a jedna z aktualizacji obejmowała aktualizację Apache do wersji 2.4.x

W Apache 2.4.x pliki konfiguracyjne vhost, znajdujące się w katalogu / etc / apache2 / sites-available, muszą mieć rozszerzenie .conf.

Za pomocą terminalu (komenda mv) zmień nazwę wszystkich istniejących plików konfiguracyjnych i dodaj do nich rozszerzenie .conf.

mv /etc/apache2/sites-available/cmsplus.dev /etc/apache2/sites-available/cmsplus.dev.conf

Jeśli pojawi się błąd „Odmowa zezwolenia”, dodaj „sudo” przed poleceniami terminalu.

Nie musisz wprowadzać żadnych innych zmian w plikach konfiguracyjnych.

Włącz vhost (y):

a2ensite cmsplus.dev.conf

A następnie ponownie załaduj Apache:

service apache2 reload

Twoje strony powinny być już gotowe.


AKTUALIZACJA: Jak wspomniano tutaj , zainstalowana dystrybucja Linuksa zmieniła konfigurację na Uwzględnij tylko * .conf. Dlatego nie ma to nic wspólnego z Apache 2.2 lub 2.4

Consuela
źródło
28

Jest jeszcze jeden dobry sposób, po prostu edytuj plik apache2.confna końcu linii

Uwzględnij dodatkowe strony włączone / *. Conf

po prostu usuń .confna końcu, w ten sposób

Uwzględnij opcjonalne włączanie witryn / *

i zrestartuj serwer.

(Próbowałem tego tylko w Ubuntu 13.10, kiedy go zaktualizowałem.)

Guilherme
źródło
1
Hmm ... Próbowałem tego na Ubuntu 14.04 i to nie działało. Dodanie .confdo plików konfiguracyjnych zrobiło to jednak.
Clifton Labrum,
dziwne, miałem ten błąd, kiedy zaktualizowałem moje Ubuntu 12.04 do 13.10 (ponieważ przypadkowo podmieniłem pliki konfiguracyjne Apache). W aktualizacji 14.04 przypomniałem sobie, aby nie zastępować i miałem problemy.
Guilherme,
To naprawdę nie jest dobry sposób. Pliki z włączonymi witrynami są dowiązaniami symbolicznymi do odpowiednich plików w witrynach dostępnych i należy je po prostu usunąć, aby wyłączyć witrynę - w rzeczywistości to, co a2dissite powoduje, że a2ensite odpowiednio włącza witrynę.
Dokbua
8

Właśnie miałem ten sam problem. Powiedziałbym, że nie ma to nic wspólnego z apache.conf.

a2ensite musiało się zmienić - linia 532 to linia, która wymusza przyrostek .conf:

else {
    $dir    = 'sites';
    $sffx   = '.conf';
    $reload = 'reload';
}

Jeśli zmienisz na:

else {
    $dir    = 'sites';
    #$sffx   = '.conf';
    $sffx   = '';
    $reload = 'reload';
}

... będzie działać bez żadnego przyrostka.

Oczywiście nie chcesz zmieniać skryptu a2ensite, ale zmiana sufiksu pliku conf jest poprawna.

Prawdopodobnie jest to tylko sposób na wymuszenie poprawki „.conf”.

cslotty
źródło
Zobacz też to pytanie: askubuntu.com/questions/362682/…
cslotty
7

Więc .. najszybszym sposobem jest zmiana nazw nazw konfiguracji stron kończących się na „.conf”

mv /etc/apache2/sites-available/mysite /etc/apache2/sites-available/mysite.conf

a2ensite mysite.conf

inne uwagi do poprzednich komentarzy:

  • Opcja Uwzględnij nie została wprowadzona do czasu apache 2.36 - wprowadzenie powyższej zmiany, a następnie restart w wersji 2.2 spowoduje, że serwer nie działa!

  • również wersja 2.2 a2ensite nie może być zhakowana zgodnie z opisem

ponieważ plik dostępny w witrynie jest tak naprawdę plikiem konfiguracyjnym, i tak należy go tak nazwać.


Zasadniczo nie uruchamiaj ponownie usług (serwery WWW są jednym z rodzajów usług):

  • ludzie nie mogą ich znaleźć, jeśli nie są uruchomieni! Pomyśl, że Linux nie jest MS Windows ..

Serwery mogą działać przez wiele lat - aktualizacja na żywo, ponowne ładowanie konfiguracji itp.

Chmura nie oznacza, że ​​musisz ponownie uruchomić, aby załadować plik konfiguracyjny.

  • Zmieniając konfigurację usługi, użyj „przeładuj”, a nie „uruchom ponownie”.

  • restart zatrzymuje usługę, a następnie uruchamia usługę - jeśli wystąpi jakikolwiek problem w zmianie konfiguracji, usługa nie uruchomi się ponownie.

  • przeładowanie spowoduje błąd, ale usługa nigdy się nie wyłącza, co daje szansę naprawienia błędu konfiguracji, co może być tylko złą składnią.

debian lub ubunto [nazwa usługi dla tego wątku to apache2]

service {service-name} {start} {stop} {reload} ..

pozostałe os pozostały jako rozmiar dla czytelnika.

kochaj mnie
źródło
5

Działa po dodaniu .confdo pliku konfiguracyjnego

16kb
źródło
2

Właśnie zaktualizowałem wersję Ubuntu Server z 12.04 LTS do 14.04 LTS.

Rzeczywiście, jak powiedziano powyżej, rozszerzenie .conf do Apache 2.4.x jest potrzebne do plików vhost stron internetowych, które znajdują się w katalogu stron dostępnych.

Przed przeczytaniem tego pytania nie miałem pojęcia, co się dzieje z serwerem.

Całkiem fajne rozwiązanie.

Podsumowując, wykonałem następujące kroki na terminalu:

1) Uzyskaj dostęp do folderu obsługującego witryny

$ cd /etc/apache2/sites-enabled

2) Ponieważ polecenie a2dissite nie będzie działać z przestarzałymi plikami (bez .conf), usuń stare pliki stron internetowych, które zostały opublikowane

$ sudo rm <my-old-website-without-.conf>

3) Zmień nazwę plików vhostów witryny, zmieniając rozszerzenie, dodając .conf na końcu

$ sudo mv /etc/apache2/sites-available/mywebsite /etc/apache2/sites-available/mywebsite.conf

4) Opublikuj ponownie nowy i poprawny plik vhost

$ sudo a2ensite mywebsite.conf

5) Sprawdź stronę w przeglądarce i baw się dobrze! :)

Alexandre Ribeiro
źródło
1

W moim przypadku z Ubuntu 14.04.3 i Apache 2.4.7 problem polegał na tym, że skopiowałem site1.conf, aby udostępnić site2.conf, a po skopiowaniu coś się stało i nie mogłem a2ensite site2.conf z błędem opisanym w wątku .

Rozwiązaniem było dla mnie zmiana nazwy witryny2.conf na site2, a następnie zmiana nazwy witryny2 na site2.conf. Po tym byłem w stanie a2ensite site2.conf.

SysManSD
źródło
1

Wiem, że tak nie jest, ale może komuś pomóc.

Dokładnie sprawdź, czy plik conf nie został utworzony przez pomyłkę w / etc / apache2 / sites. Otrzymujesz ten sam błąd.

Dave
źródło
-2

Spróbuj w ten sposób ..

NameVirtualHost *:80
<VirtualHost *:80>
    ServerAdmin [email protected]
    ServerName www.cmsplus.dev
    ServerAlias cmsplus.dev

    DocumentRoot /var/www/cmsplus.dev/public

    LogLevel warn
    ErrorLog /var/www/cmsplus.dev/log/error.log
    CustomLog /var/www/cmsplus.dev/log/access.log combined
</VirtualHost>

i dodaj wpis w / etc / hosts

127.0.0.1 www.cmsplus.dev

uruchom ponownie apache ..

Balaji Perumal
źródło
Teraz daje mi domyślną It worksstronę zamiast ustawień.
devo
Czy masz wiele konfiguracji hostów wirtualnych? Czy możesz opublikować całą zawartość pliku?
Balaji Perumal
3
Dzięki, rozwiązałeś ten problem, dodając .confrozszerzenie do tych plików konfiguracyjnych witryny.
devo