Я безуспешно пытался настроить Ubuntu Desktop 32bit в Virtualbox как виртуальный хост на основе имени. IP-адрес виртуального хоста - 192.168.0.105.
Корнями документа являются /var/www/example1.com/public_html/index.html
и /var/www/example2.com/public_html/index.html
Файлы конфигурации: /etc/apache2/sites-available/example1.com.conf
и /etc/apache2/sites-available/example2.com.conf
Содержимое example1.com.conf
<VirtualHost *:80>
ServerAdmin webmaster@example1.com
ServerName example1.com
ServerAlias www.example1.com
DocumentRoot /var/www/example1.com/public_html
ErrorLog ${APACHE_LOG_DIR}/error.log
CustomLog ${APACHE_LOG_DIR}/access.log combined
</VirtualHost>
Содержание example2.com.conf
<VirtualHost *:80>
ServerAdmin webmaster@example2.com
ServerName example2.com
ServerAlias www.example2.com
DocumentRoot /var/www/example2.com/public_html
ErrorLog ${APACHE_LOG_DIR}/error.log
CustomLog ${APACHE_LOG_DIR}/access.log combined
</VirtualHost>
Содержание /etc/hosts
192.168.0.105 example1.com
192.168.0.105 example2.com
Я отключил файлы конфигурации по умолчанию, использующие a2dissite
и включающие example1.com.conf
и example2.com.conf
, использующие a2ensite
, а затем перезагруженные apache2.
Всякий раз, когда я набираю example2.com или example1.com, браузер не выводит меня на настроенный веб-сайт, но когда я набираю IP-адрес сервера, он работает, но направляется только на example1.com. Любая помощь в этом отношении будет глубоко уважаться и высоко ценится.
Ваша конфигурация выглядит хорошей. Я предполагаю, что Вы не вышли a2ensite
:
Каталог /etc/apache2/sites-available
просто содержит (набор) доступные сайты. Чтобы на самом деле включить им, необходимо работать
a2ensite example1.com.conf
a2ensite example2.com.conf
systemctl reload apache2
Первые две команды делают не что иное как создающий символьные ссылки в /etc/apache2/sites-enabled
каталог, которые указывают на соответствующие файлы в sites-available
каталог:
root@myhost:/etc/apache2# ll sites-enabled/
...
lrwxrwxrwx 1 root root 35 Mär 9 19:06 000-default.conf -> ../sites-available/000-default.conf
lrwxrwxrwx 1 root root 35 Mär 18 16:48 example1.com.conf -> ../sites-available/example1.com.conf
lrwxrwxrwx 1 root root 35 Mär 18 16:48 example2.com.conf -> ../sites-available/example2.com.conf
Apache читает файлы в /etc/apache2/sites-enabled
и игнорирует /etc/apache2/sites-available
. Общее представление:
sites-available
a2ensite $config_file
или a2dissite $config_file
.Обратите внимание, что автозавершение обычно работает, т.е. a2ensite ex
TABTAB перечисляет доступные конфигурации, запускающиеся с ex
.
После a2ensite
или a2dissite
необходимо сделать апача, знающего об этом путем издания systemctl reload apache2
. Команды скажут Вам что-то тому эффекту.