Как отладить конфигурацию виртуального хоста apache?
еще раз, у меня проблема с моей конфигурацией виртуального хоста apache. (Конфигурация по умолчанию используется вместо моей конкретной).
проблема заключается не в неправильной конфигурации, а в том, как ее решить.
есть ли у кого-нибудь хорошие советы, Чтобы быстро решить эту проблему?
некоторые дополнительные сведения.
файл conf по умолчанию:
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>
и конфигурация виртуального хоста, которая не применяется, это один:
<VirtualHost *:*>
ProxyPreserveHost On
ProxyPass / http://ip.ip.ip.ip:8088/
ProxyPassReverse / http://ip.ip.ip.ip:8088/
ServerName wiki.mydomain.com
</VirtualHost>
7 ответов
проверить синтаксис
чтобы проверить файлы конфигурации на наличие синтаксических ошибок:
# Fedora, RHEL, CentOS, OSX
httpd -t
# Debian, Ubuntu
apache2ctl -t
# MacOS
apachectl -t
список виртуальных хостов
чтобы перечислить все виртуальные хосты и их местоположения:
# Fedora, RHEL, CentOS, OSX
httpd -S
# Debian, Ubuntu
apache2ctl -S
# MacOS
apachectl -S
вот команда, которая, я думаю, может помочь:
apachectl -t -D DUMP_VHOSTS
вы получите список всех vhosts, вы узнаете, какой из них является стандартным, и вы убедитесь, что ваш синтаксис правильный (такой же, как apachectl configtest, предложенный yojimbo87).
вы также будете знать, где объявлен каждый vhost. Это может быть удобно, если ваши файлы конфигурации беспорядок. ;)
Если вы пытаетесь отладить конфигурацию виртуального хоста, вы можете найти переключатель командной строки Apache-S полезным. То есть, введите следующую команду:
httpd -S
эта команда выведет описание того, как Apache проанализировал файл конфигурации. Тщательное изучение IP-адресов и имен серверов может помочь выявить ошибки конфигурации. (См. документы для файл httpd
У меня был новый файл конфигурации VirtualHost, который не отображался при использовании . После долгого чесания головы я понял, что в моем файле нет суффикса ".conf". Как только я переименовал файл с этим суффиксом, мой Vhost начал показывать и работать!
недавно у меня были некоторые проблемы с VirtualHost. Я использовал a2ensite
для перемещения включить хост, но перед запуском перезапуска (который убьет сервер при сбое) я запустил
apache2ctl -S
что дает вам некоторую информацию о том, что происходит с вашими виртуальными хостами. Это не идеально, но помогает.
Я нашел свою ошибку, я не добавить имя файла журнала :
ErrorLog /var / log / apache2
И этот путь:
Каталог " / usr / share/doc/"
Не содержит источников веб-сайта.
после того, как я изменил эти два, все сработало. Интересно, что apache не выдавал никаких ошибок, просто не открывал мой сайт молча на моем Mac OS Sierra.