У меня возникла проблема с Apache, которую я никак не могу решить.
У меня есть два домена, которые указывают на два разных DocumentRoot в файле Virtual Host. Однако я не могу заставить это работать правильно, сайт, который я пытался добавить, вообще не отображался со второго домена, но вместо этого отображался первый сайт (насколько я знаю, это значение по умолчанию, и это означает, что что-то не так с моим вторым виртуальным хостом).
Мне удалось обойти эту проблему, разместив свой новый веб-сайт перед первым виртуальным хостом. Это означало, что новый веб-сайт отображался, но был помещен в frameset
тег apache, и я не мог контролировать заголовок.
Запуск Apache 2.2.22 на Raspbian (Debian Linux)
Вот мой текущий код;
<VirtualHost *:80>
ServerName DIR0.com
ServerAlias www.DIR0.com
DocumentRoot /var/www/DIR0.com/public_html
<Directory />
Options FollowSymLinks
AllowOverride None
</Directory>
<Directory /var/www/DIR0.com/public_html>
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 ${APACHE_LOG_DIR}/errors_DIR0.log
# Possible values include: debug, info, notice, warn, error, crit,
# alert, emerg.
LogLevel warn
CustomLog ${APACHE_LOG_DIR}/access_DIR0.log combined
</VirtualHost>
<VirtualHost *:80>
ServerName DIR1.com
ServerAlias www.DIR1.com
DocumentRoot /var/www/DIR1/public_html
<Directory />
Options FollowSymLinks
AllowOverride None
</Directory>
<Directory /var/www/DIR1.com/public_html>
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 ${APACHE_LOG_DIR}/error_DIR1.log
LogLevel warn
CustomLog ${APACHE_LOG_DIR}/access_DIR1.log combined
</VirtualHost>
решение1
Проверьте, установлены ли у вас
ИмяVirtualHost *:80
в вашем файле конфигурации. Эта директива позволяет использовать ServerName в качестве идентификации VirtualHost. Если это отсутствует, вы используете IP/порт для идентификации VirtualHost, который одинаков для обоих VirtualHost.