Dlaczego zamiast mojej strony index.html otrzymuję domyślną stronę Apache2 Ubuntu?


8

Mam komputer z systemem Ubuntu 14.10, który służy do testowania lokalnych witryn, nie działa w Internecie. Na nim skonfigurowałem siedem stron internetowych. Jednak gdy uzyskuję dostęp do dwóch z siedmiu, Apache2 Ubuntu Default Pagezamiast własnej strony indeksu pojawia się .

O ile wiem, ustawiłem wszystkie siedem przy użyciu dokładnie tego samego procesu, więc nie wiem, czego brakuje. Ponadto w moim katalogu dzienników Apache mam dwa pliki dziennika errori accessdla każdej z dwóch źle funkcjonujących stron, ale wszystkie są puste. Po ponownym uruchomieniu apache2usługi nie ma błędów. Wiele razy śledziłem swoje kroki i nie widzę żadnej różnicy między działającymi witrynami a niedziałającymi witrynami.

Jakie mam opcje diagnozowania tego problemu? Czy mogę w jakiś sposób wymusić więcej pełnych dzienników błędów? Czy jest gdzieś inny dziennik, do którego mogę się odwoływać?

Oto przykład .confpliku dla jednej z nieprawidłowo działających witryn:

<VirtualHost *:80>
   ServerName www.local_example.com
   ServerAlias local_example.com
   ServerAdmin address@example.com

   DocumentRoot /var/www/Websites/example.com
   <Directory /var/www/Websites/example.com/>
       Options Indexes FollowSymLinks MultiViews
       # pcw AllowOverride None
       AllowOverride All
       Order allow,deny
       allow from all
       # This directive allows us to have apache2's default start page
       # in /apache2-default/, but still have / go to the right place
       # Commented out for Ubuntu
       #RedirectMatch ^/$ /apache2-default/
   </Directory>

   ErrorLog /home/example/Apache_Logs/local_example.com_error.log

   # Possible values include: debug, info, notice, warn, error, crit,
   # alert, emerg.
   LogLevel warn

   CustomLog /home/example/Apache_Logs/local_example.com_access.log combined
   ServerSignature On

</VirtualHost>

2
Jak stworzyłeś wirtualne hosty? Czy stworzyłeś je przez dodanie plików /etc/apache2/sites-available? Jeśli tak, to czy umożliwiłeś im to sudo a2ensite <your_site_name>? Czy w domyślnym pliku dziennika błędów apache znajduje się coś? I czy w plikach hosta wirtualnego skonfigurowano opcję ServerAlias ​​lub ServerName? Jeśli wyłączysz domyślną witrynę sudo a2dissite 000-default(możesz ją ponownie włączyć za pomocą sudo a2ensite 000-default), czy to działa? Może być tak, że zapomniałeś zrestartować Apache?
Dan

@ Dan, dziękuję za odpowiedź. Stworzyłem strony, dodając je do sites-available. Domyślny dziennik błędów nie ma w nim nic. Zdefiniowałem ServerAliasw pliku hosts. Wyłączyłem 000-defaultwitrynę, ale nic to nie zmieniło. Zrestartowałem i ponownie załadowałem apache wiele razy.
PYTAJĄCY

Gdy wyłączyłeś domyślną witrynę i ponownie uruchomiłeś apache, nadal wyświetlała domyślną stronę index.html, czy też pokazywała jedną z innego wirtualnego hosta? Czy możesz opublikować zawartość jednego z niewłaściwie zachowujących się plików vhost? To może znacznie ułatwić nam pomoc.
Dan

@ Dan, dziękuję za odpowiedź. Kiedy dokonałem zmiany, którą zasugerowałeś, jak wspomniałem, nic się nie zmieniło, co oznacza, że ​​wyświetlała dokładnie tę samą domyślną stronę indeksu. Dodałem .confplik do mojego pytania.
PYTAJĄCY

Odpowiedzi:


8

Spróbuj wykonać następujące czynności

Włącz pełne dzienniki

sudo nano /etc/apache2/apache2.conf

Znajdź zmienną LogLevel i zaktualizuj ją z domyślnego ostrzegania do informacji lub debugowania. debugowanie wygeneruje największą ilość danych wyjściowych.

# LogLevel: Control the number of messages logged to the error_log.
# Possible values include: debug, info, notice, warn, error, crit,
# alert, emerg.
# 
LogLevel debug

Uruchom ponownie Apache

sudo service apache2 restart

Apache zawiera ładne, małe narzędzie do sprawdzania składni

apache2ctl -t

Sprawdzanie definicji hosta wirtualnego

apache2ctl -S

Dziękuję za tę sugestię. Ustawiam poziom dziennika na debugowanie i nadal nie otrzymuję absolutnie żadnych wpisów w plikach błędów. Dzienniki dostępu pokazują się teraz przy każdym otwarciu stron, ale nic więcej.
PYTAJĄCY

6

Dla mnie jedna z sugestii @Dan rozwiązała ten problem.

sudo a2dissite 000-default.conf
service apache2 reload

Najwyraźniej domyślna konfiguracja witryny zastępowała moją konfigurację vhost.


Na innym serwerze zachowywał się inaczej i zamiast index.html odczytano index.php. Bardzo podstępna sytuacja
Margus Pala

2

po instalacji index.html ma wyższy priorytet, dlatego wciąż widzisz domyślną stronę Ubuntu, sprawdź ten folder var / www / html / zmień nazwę lub usuń tę stronę tak prostą


1

Okazuje się, że problemem były uprawnienia.

Kiedy przechowujesz stronę internetową w katalogu poza /var/wwwi połączonym przez dowiązanie symboliczne, wówczas katalog źródłowy i jego katalog nadrzędny muszą mieć uprawnienia 755.

Z jakiegoś nieznanego powodu dwie źle działające witryny miały różne uprawnienia, a uruchomienie chmod -R 755katalogu katalogu witryny i katalogu macierzystego rozwiązało problem.


Nie należy uruchamiać chmod -R 755katalogu, ponieważ wszystkie znajdujące się tam pliki zostaną oznaczone jako „pliki wykonywalne” ...
Alexis Wilke

@AlexisWilke, jakie jest lepsze polecenie do ustawiania odpowiednich uprawnień?
PYTAJĄCY

Nie jest łatwo zmienić uprawnienia wszystkich katalogów, a nie standard ... Możesz jednak użyć find. Coś takiego: find top-dir-name -type d -exec chmod 755 {} \;.
Alexis Wilke
Korzystając z naszej strony potwierdzasz, że przeczytałeś(-aś) i rozumiesz nasze zasady używania plików cookie i zasady ochrony prywatności.
Licensed under cc by-sa 3.0 with attribution required.