Необходимо включить в /usr/local/etc/apache24/httpd.conf поддержку виртуальных хостов, для чего нужно снять комментарий для строки
bsd$ grep httpd-vhosts.conf /usr/local/etc/apache24/httpd.conf
Include etc/apache24/extra/httpd-vhosts.conf
Описание сайта создается в файле /usr/local/etc/apache24/extra/httpd-vhosts.conf
<VirtualHost *:80>
DocumentRoot "/usr/local/www/howto"
ServerName bsd10
...
</VirtualHost>
<VirtualHost *:80>
DocumentRoot "/usr/local/www/wp-news"
ServerName wp-news.domain
...
</VirtualHost>
Если обращаться к сайту по IP-адресу, а не по имени виртуального хоста, то будет открываться тот сайт сервера, описание которого идет первым. Возможность организовать несколько сайтов на одном IP-адресе существует благодаря тому, что в протоколе HTTP/1.1 клиент в запросе вместе с адресом хоста передает также его имя
Таким образом, для одного IP-адреса на сервере DNS должно быть определено несколько имен. В случае отсутствия DNS-сервера обязанность распознавания имен возложена на файл hosts
c:\windows\system32\drivers\etc\hosts | |
... | |
bsd10 | 192.168.56.1 |
wp-news.domain | 192.168.56.1 |
Для доступа к содержимому сайта необходимо прописать разрешения в самом файле /usr/local/etc/apache24/httpd.conf
Но целесообразнее прописать разрешения для каждого сайта в отдельном файле /usr/local/etc/apache24/Includes/howto.conf и указать в httpd.conf подключение этих файлов конфигураций
bsd$ grep Includes/ /usr/local/etc/apache24/httpd.conf
Include etc/apache24/Includes/*.conf
<Directory "/usr/local/www/howto">
Require all granted
</Directory>
Проверить конфигурацию виртуальных хостов перед запуском:
tc@box:~$ apachectl -S
VirtualHost configuration:
default server lma (/usr/local/apache2/conf/extra/httpd-vhosts.conf:29)
port 80 namevhost lma (/usr/local/apache2/conf/extra/httpd-vhosts.conf:29)
port 80 namevhost bsd235 (/usr/local/apache2/conf/extra/httpd-vhosts.conf:36)
Syntax OK
bsd$ less /usr/local/etc/apache24/httpd.conf
bsd$ less /usr/local/etc/apache24/extra/httpd-vhosts.conf
FreeBSD 10.0-RELEASE: Mon Sep 17 11:54:00 YAKT 2018