Как создать виртуальный хост на вэб-серевере Apache.

12.02.2017

Создавать виртуальные хосты совсем не сложно, нужно лишь подредактировать файлы настроек. Покажу как это делается с нуля, т.е. на только что установленном сервере.

Для начала придумаем доменное имя нового сайта. Пусть это будет "site.cms". Теперь определимся с месторасположением файлов для нового хоста. Я решил держать все хосты на втором диске D: Поэтому сначала создал общую папку "_hosts" для хостов, ней создал папку "site.cms" для новоиспеченного хоста, а в ней ещё две папки, "logs" для логов сервера и "public_html" для html документов сайта.

D:\_hosts D:\_hosts\site.cms D:\_hosts\site.cms\logs D:\_hosts\site.cms\public_html

Теперь нужно в файле конфигурации httpd.conf раскомментировать строчку

# Virtual hosts Include conf/extra/httpd-vhosts.conf

Это нужно чтобы в основной конфигурационный файл был включен дополнительный конфигурационный файл с настройками виртуальных хостов. Теперь создаем ярлык блокнота в который добавляем путь этого файла

C:\Program Files\Apache24\conf\extra\httpd-vhosts.conf

И не забываем поставить галку "запускать с правами администратора". Открываем его. В нем уже будут описаны виртуальные хосты в качестве примера. Можете удалить все, или просто закомментировать их. После чего нужно написать собственную конструкцию своего нового хоста.

<VirtualHost 192.168.144.21:80> ServerName site.cms ServerAlias www.site.cms DocumentRoot "D:/_hosts/site.cms/public_html" <Directory "D:/_hosts/site.cms/public_html"> Options All AllowOverride All Allow from All </Directory> AccessFileName .htaccess ErrorLog "D:/_hosts/site.cms/logs/error.log" CustomLog "D:/_hosts/site.cms/logs/access.log" common </VirtualHost>

Как видите ничего сложного. Сначала описывается IP адрес и порт на котором будет жить сайт. Здесь поясню про IP адрес. У меня ноутбук с веб сервером подключен к интернету через wifi роутер. Роутер я настроил (DHCP сервер) так чтобы он выдавал фиксированный IP адрес для wifi подключения ноутбука. Этот адрес я и вписал в конфигурацию. Теперь site.cms можно будет видеть по локальной сети после небольших усилий. Нужно будет в брандмаузере создать правило разрешающее входящее подключение для apache. А на другом компьютере в файле "C:\Windows\System32\drivers\etc\hosts" или планшете с андроид в файле "/etc/host" прописать это доменное имя. Кстати, на компьютере с веб вервером apache в файле host так же нужно прописать эти доменные имена.

192.168.144.21 site.cms 192.168.144.21 www.site.cms

Далее, видим описаны доменное имя хоста и его псевдоним. Псевдоним не обязательно, тогда www.site.cms не будет. Затем директрории для html документов и логов с различными опциями.

В папке public_html создаем пустой файл .htaccess и примитивный index.html с какой нибудь строчкой вроде "это сайт site.cms". Всё готово. Чтобы изменения вступили в силу нужно перезапустить службу apache. После чего браузер по адресу "http://site.cms/index.html" покажет вам ваш файл.

Дальнейшее добавление новых сайтов станет ещё проще примерно по такой такой схеме.

  • Прописать новое доменое имя в hosts
  • Создать папки logs и public_html для нового хоста
  • В httpd-vhost.conf скопировать блок виртуального хоста и внести соответствующие изменения
  • Перезапустить службу apache