Po raz kolejny mam problem z konfiguracją mojego wirtualnego hosta Apache. (Domyślna konfiguracja jest używana zamiast mojej konkretnej).
Problem nie polega na błędnej konfiguracji, ale na tym, jak ją rozwiązać.
Czy ktoś ma dobre rady, jak szybko rozwiązać tego rodzaju problem?
Więcej informacji.
Domyślny plik conf to ten:
NameVirtualHost *
<VirtualHost *>
ServerAdmin webmaster@localhost
DocumentRoot /var/www/
<Directory />
Options FollowSymLinks
AllowOverride None
</Directory>
<Directory /var/www/>
Options Indexes FollowSymLinks MultiViews
AllowOverride None
Order allow,deny
allow from all
</Directory>
ScriptAlias /cgi-bin/ /usr/lib/cgi-bin/
<Directory "/usr/lib/cgi-bin">
AllowOverride None
Options +ExecCGI -MultiViews +SymLinksIfOwnerMatch
Order allow,deny
Allow from all
</Directory>
ErrorLog /var/log/apache2/error.log
# Possible values include: debug, info, notice, warn, error, crit,
# alert, emerg.
LogLevel warn
CustomLog /var/log/apache2/access.log combined
ServerSignature On
Alias /doc/ "/usr/share/doc/"
<Directory "/usr/share/doc/">
Options Indexes MultiViews FollowSymLinks
AllowOverride None
Order deny,allow
Deny from all
Allow from 127.0.0.0/255.0.0.0 ::1/128
</Directory>
</VirtualHost>
A konfiguracja wirtualnego hosta, która nie ma zastosowania, to ta:
<VirtualHost *:*>
ProxyPreserveHost On
ProxyPass / http://ip.ip.ip.ip:8088/
ProxyPassReverse / http://ip.ip.ip.ip:8088/
ServerName wiki.mydomain.com
</VirtualHost>
apache
debugging
virtualhost
GaetanZ
źródło
źródło
-S
jest synonimem,-t -D DUMP_VHOSTS
więc te dwa są takie samec:\\wamp\\bin\\apache\\apache2.4.9\\bin\\httpd.exe -S
Oto polecenie, które moim zdaniem może być pomocne:
Otrzymasz listę wszystkich vhostów, będziesz wiedział, który z nich jest domyślny i upewnisz się, że twoja składnia jest poprawna (tak samo jak apachectl configtest sugerowany przez yojimbo87).
Dowiesz się również, gdzie jest zadeklarowany każdy vhost. Może się przydać, jeśli w plikach konfiguracyjnych panuje bałagan. ;)
źródło
Jeśli próbujesz debugować konfigurację wirtualnego hosta, może okazać się przydatny przełącznik wiersza poleceń Apache -S. Oznacza to, że wpisz następujące polecenie:
To polecenie zrzuci opis sposobu, w jaki Apache przeanalizował plik konfiguracyjny. Dokładne sprawdzenie adresów IP i nazw serwerów może pomóc w wykryciu błędów w konfiguracji. (Zobacz dokumentację programu httpd, aby zapoznać się z innymi opcjami wiersza poleceń).
źródło
apache2ctl -S
APACHE_RUN_USER=www-data APACHE_RUN_GROUP=www-data /usr/sbin/apache2 -S
Najpierw sprawdź pliki konfiguracyjne pod kątem błędów składni,
apachectl configtest
a następnie przejrzyj dzienniki błędów Apache .źródło
Miałem nowy plik konfiguracyjny VirtualHost, który nie był wyświetlany podczas używania
apachectl -S
polecenia. Po długim drapaniu głowy zdałem sobie sprawę, że mój plik nie ma rozszerzenia „.conf”. Kiedy zmieniłem nazwę pliku z tym przyrostkiem, mój Vhost zaczął się wyświetlać i działać!źródło
Niedawno miałem problemy z VirtualHost. Kiedyś
a2ensite
włączałem hosta, ale przed uruchomieniem restartu (co spowodowałoby zabicie serwera w przypadku awarii) uruchomiłemCo daje ci trochę informacji o tym, co się dzieje z twoimi wirtualnymi hostami. Nie jest doskonały, ale pomaga.
źródło
Znalazłem swój błąd, nie dodałem nazwy pliku logu: ErrorLog / var / log / apache2
A ta ścieżka: Katalog "/ usr / share / doc /" Nie zawierał źródeł strony.
Po zmianie tych dwóch wszystko działało. Co ciekawe, apache nie generował żadnych błędów, po prostu nie otwierał po cichu mojej strony na moim Mac OS Sierra.
źródło