Добавление виртуальных хостов в Apache. Создание виртуальных хостов Apache Настройка виртуальных хостов apache2

Во время разработки, одним хостом не обойдешься. На одном можно разрабатывать, на другом тестировать, а на третьем еще один проект.

Плюс ко всему, в Apache2 по умолчанию файлы сайта хранятся в /var/www, у меня же они будут находиться в моей домашней папке, /home/goodigy/sites .

Apache2 может определять хосты по ip-адресам, по доменным именам и по портам.

Мы будем использовать второй вариант, то есть определение хостов по доменным именам.

В Apache2, установленном в Ubuntu 16.04 и Ubuntu 14.04, для этого уже почти все готово.

В папке /etc/apache2/ sites-available будут храниться все конфигурационные файлы виртуального хоста.
Затем мы его просто будем включать и выключать по надобности.
Один файл там уже есть, на основе его мы и сделаем свой.

Скопируем под именем example (наш хост будет называться example, и в браузере станет доступен по ссылке http://example)

Sudo cp /etc/apache2/sites-available/000-default.conf /etc/apache2/sites-available/example.conf

В предыдущих версиях apache2 (до версии 2.4), не использовались расширения файлов.conf. В новых версиях (с версии 2.4) это приведет к ошибке.

Теперь надо отредактировать, вновь созданный, файл

Sudo nano /etc/apache2/sites-available/example.conf

Файл приводим к следующему виду:

ServerName example DocumentRoot /home/goodigy/sites/example AllowOverride All Require all granted ErrorLog /home/goodigy/sites/example/error.log CustomLog /home/goodigy/sites/example/access.log combined

Разъяснение настроек:

  • ServerName example - указание доменного имени по которому будет определяться хост.
  • DocumentRoot /home/goodigy/sites/example - привязывает папку к хосту.

  • Options Indexes FollowSymlinks
    AllowOverride All
    Require all granted
    - это настройки папки,
  • Options Indexes FollowSymlinks - если нет индексного файла (index.html, index.php), показывать список файлов, удобно на локальном сервере.
  • AllowOverride All - разрешает переопределять настройки в.htaccess.
  • Require all granted - доступ разрешен всем.
  • ErrorLog - указывает расположение файла с логом ошибок, я их храню в папке с сайтом.
  • CustomLog - указывает расположение файла с логом доступа, я их храню в папке с сайтом.

Сохраняем.
Создаем папки, указанные в конфигурационном файле

Mkdir /home/goodigy/sites mkdir /home/goodigy/sites/example

Включаем сайт

Sudo a2ensite example.conf

И отключаем тот, который по умолчанию

Sudo a2dissite 000-default.conf

Перезапускаем Apache2

Sudo nano /etc/hosts

Выглядит он, примерно, так

127.0.0.1 localhost 127.0.1.1 googidy-comp # The following lines are desirable for IPv6 capable hosts::1 ip6-localhost ip6-loopback fe00::0 ip6-localnet ff00::0 ip6-mcastprefix ff02::1 ip6-allnodes ff02::2 ip6-allrouters

Туда надо добавить указание на наш домен example

127.0.0.1 localhost 127.0.1.1 igy-nout 127.0.0.1 example # The following lines are desirable for IPv6 capable hosts::1 ip6-localhost ip6-loopback fe00::0 ip6-localnet ff00::0 ip6-mcastprefix ff02::1 ip6-allnodes ff02::2 ip6-allrouters

Сохраняем.
Все, теперь по адресу http://example доступен наш новый хост. В браузере должна отобразиться папка с файлами, так как там отсутствует индексный файл.

В этой статье написано, как создавать несколько виртуальных хостов на локальной машине. Данное действие необходимо уметь делать веб-мастерам, когда они разрабатывают несколько сайтов.

Вначале небольшое объяснение.

Что такое виртуальный хост? Это такая настройка локального веб-сервера, при которой веб-сервер начинает откликаться на заданное имя, а не только на IP 127.0.0.1 или псевдоним localhost . То есть, при настройке виртуального хоста на имя site.ru , в браузере по этому URL начнет отвечать локальный веб-сервер.

Веб-сервер можно настроить на несколько имен сайтов. Тогда веб-сервер начнет выдавать страницы, соответсвующие каталогу, в котором находятся данные для указанного имени. Например, есть два виртуальных хоста - site.ru и money.com . Для site.ru настроен рабочий каталог /var/www/site.ru , а для money.com настроен рабочий каталог /var/www/money.com . Если теперь в браузере обратиться к site.ru , то веб-сервер будет выдавать страницы из каталога /var/www/site.ru , а если обратиться к money.com , то веб-сервер будет генерировать страницы из каталога /var/www/money.com . Как сделать такую настройку и написано в данной статье.

В Debian 5.x.x , сервер Apache-2 сразу после установки готов работать с виртуальными хостами. Но настроен только на один (default) хост, который доступен как localhost . Чтобы добавить еще один виртуальный хост, надо сделать следущее:

1. В каталог /etc/apache2/sites-available нужно добавить пустой файл с произвольным именем. Для удобства, лучше давать имя файла, содержащее имя виртуального хоста. Например, если планируется добавить виртуальный хост с именем studio.ru , надо задатьдать имя файла studio.ru.conf .

2. В этот файл надо вписать (примерно) следующее:

ServerName studio.ru
ServerAlias www.studio.ru

DocumentRoot "/var/www/studio"


allow from all
Options +Indexes

  • ServerName, ServerAlias - это URL, набираемый в браузере, на который должен откликаться данный виртуальный хост;
  • DocumentRoot - это корневая директория данного виртуального хоста;
  • Секция Directory - настройка прав доступа к указанной директории. В данном случае настраиваются права доступа к корневой директории виртуального хоста.

Нужно обратить внимание на параметр секции VirtualHost. Здесь он написан как "*:80 ". Но обязательно нужно заглянуть в файл /etc/apache2/sites-available/default и посмотреть, какой параметр написан там в такой же секции VirtualHost. Если написано "* ", то в нашем файле надо так же написать "* ".

Другоми словами, нужно заглянуть в файл /etc/apache2/ports.conf . Там нужно найти директиву:

NameVirtualHost *:80

Какое значение стоит в этой директиве (здесь - "*:80 "), такое значение и нужно прописать в качестве параметра секции VirtualHost во всех файлах директории /etc/apache2/sites-available , иначе хосты видны не будут.

Частая ошибка - когда в /etc/apache2/ports.conf прописано "*.80", а в файле хоста в секции VirtualHost прописано "*". Несмотря на то, что маска "*" покрывает маску "*.80", сервер Apache не понимает такой записи. При такой настройке, сервер Apache не найдет нужного хоста!

3. Надо перейти в каталог /etc/apache2/sites-enabled и создать там символическую ссылку на созданный нами файл:

# cd /etc/apache2/sites-enabled
# ln -s /etc/apache2/sites-available/studio.ru.conf studio.ru.conf

4. Необходимо перезапустить Apache командами:

# /etc/init.d/apache2 stop
Stopping web server: apache2 ... waiting .

# /etc/init.d/apache2 start
Starting web server: apache2.

в момент перезапуска надо смотреть, не появляются ли в консоли сообщения об ошибках или предупреждения. В нормально сконфигурированном Апаче никаких сообщений о ошибках (и даже предупреждений!) выдаваться не должно.

5. Завершающее действие - нужно открыть файл /etc/hosts и прописать там новую строку следующего содержания:

127.0.0.1 studio.ru

это позволит браузеру обращаться локально к Апачу, а не искать данный сайт в интернете.

Все, конфигурирование закончено. Никаких перезагрузок не требуется.

Можно в браузере набрать URL http://studio.ru/index.html , и должен открыться файл /var/www/studio/index.html (если он есть). Таким образом, сразу видно, что виртуальный хост создался, и отображается в браузере. Подобным образом добавляются и другие виртуальные хосты.

После настройки файла httpd- vhosts. conf проверим правильность его конфигурации. В каталоге D:\ server\ Apache\ bin\ создайте файл httpd- S. cmd с содержимым:
“D:\server\Apache\bin\httpd.exe” –S
pause

После запуска этого файла вы увидите окно с отчетом о проверке, Syntax OK в конце говорит о том, что все настройки в порядке.

Теперь нужно прописать созданные хосты в файл C:\ Windows\ system32\ drivers\ etc\ hosts . Для этого открываем его текстовым редактором и вносим следующие записи:

127.0.0.1 www.host1.ru host1.ru #Чтобы не набирать www перед именем сайта, создаем зеркало
127.0.0.1 www.host2 host2 #Можно и без.ru создавать хосты
127.0.0.1 host3 #Самый распространенный вариант для локалки
127.0.0.1 localhost # Обычно уже указано, проследите чтобы случайно не удалили и не закомментировали.

Сохраните файл и перезапустите Apache. Попробуйте разместить в каталогах созданных вами виртуальных хостов какие-нибудь тестовые файлы (например index.html) и из браузера открыть хосты по адресам, указанным в директории ServerName каждого хоста.

Если вам приходится часто создавать виртуальные хосты и не очень хочется каждый раз редактировать все эти файлы и перезапускать Apache вручную, создайте в папке сервера (D:\ server\ ) файл createVH.cmd с таким содержимым:

@cls
@rem Получаем текущую папку. Если у вас структура папок сервера как у меня, но он установлен, например на другом диске, укажите здесь вместо %~dp0 путь с нему (например, D:\server\) косая черта в конце обязательна.
@set server_path=%~dp0
:dir_exist
@set /P new_dir="Enter new VHost name:"
@set /P ip_add="Enter your IP address:"
@ if exist %server_path%%new_dir% echo "VHost %new_dir% already exist. Please re-enter Vhost name."
@ if exist %server_path%%new_dir% goto dir_exist
@md %server_path%%new_dir%

@rem Здесь указывается путь до конфиг файла виртуальных хостов, если у вас другой, поменяйте
@set outputfile=%server_path%Apache\conf\extra\httpd-vhosts.conf
@echo. >> %outputfile%
@echo ^ >> %outputfile%
@echo ServerName %new_dir% >> %outputfile%
@echo DocumentRoot "%server_path%%new_dir%" >> %outputfile%
@echo ErrorLog "%server_path%logs\%new_dir%.error.log" >> %outputfile%
@echo CustomLog "%server_path%logs\%new_dir%.access.log" common >> %outputfile%
@echo ^ >> %outputfile%
@if %ip_add%==* set ip_host=127.0.0.1
@if not %ip_add%==* set ip_host=%ip_add%
@set hostfile=%windir%\system32\drivers\etc\hosts
@echo. >> %hostfile%
@echo %ip_host% %new_dir% >> %hostfile%
@set htmlfile=%server_path%%new_dir%\index.html
@echo ^ >> %htmlfile%
@echo ^ >> %htmlfile%
@echo ^%new_dir%^ >> %htmlfile%
@echo ^
>> %htmlfile%
@echo ^ >> %htmlfile%
@echo %new_dir% >> %htmlfile%
@echo ^
>> %htmlfile%
@echo ^
>> %htmlfile%
@rem Здесь путь до самого сервера, если у вас другой, поменяйте
@start %server_path%Apache\bin\httpd.exe -k restart

Теперь для создания хоста просто запустите этот файл, впишите в ответ имя нового хоста и IP, который будет указываться в секции VirtualHost файла httpd-vhosts.conf. По окончанию работы программа сама закроется. Вам останется только проверить созданный хост, набрав в адресной строке браузера имя, которое вы вписали в программу. Если все успешно прошло, то вы увидите страницу с именем нового хоста.

Обратите внимание, программа рассчитана на то, что структура каталогов сервера соответствует той, которую я указывал в первой статье. Если у вас установлен сервер по другим путям, поправьте файл в соответствии с ними.

Теги: apache, настройка сервера, начинающим

Для пояснения процесса создания сайта внутри домашнего компьютера.

Наверно, стоит напомнить читателям - как устроен Интернет. Сайты на жестких дисках у провайдера или на домашнем компьютере - это папки для размещения материала сайта и внутренних программ. Все сайты (как папки) Интернета, аналогично и внутри компьютера, связаны средствами связи, но для того, чтобы эти папки стали сайтами нужно, (1) чтобы в сети работала программа сервер (даже внутри компа она должна создать среду Интернета) и (2) у пользователя на компьютере должна быть включена программа браузер , которая позволяет "видеть" сайты - потому что браузер, если знает адрес сайта в сети или домашнем компьютере, умеет заходить внутрь его папки, брать текст и картинки и "рисовать" их на экране монитора у посетителя сайта.

Программа сервер - это вроде операционной системы для всего Интернета , а браузер - это аналог программы Word, но только браузер умеет читать не документы, а сайты - как документы, написанные на языках HTML , PHP , PERL ...

Статья написана для пояснения статей в рубрике и имеет постоянную ссылку: http://сайт/page/nastrojka-virtualnyh-hostov

Создание виртуальных хостов

1.1. Мы уже знаем, что нет никакой разницы между сайтом designfornet на компьютере дома или сайтом сайт на сервере у хостера. Однако, если для перехода к сайту сайт достаточно вставить его имя в строку адреса браузера, как мы сразу попадаем на первую страницу моего сайта:

http://сайт/

А вот по ссылке http://designfornet/ этого не произойдет, хотя сам сайт существует. Причина в том, что любой браузер будет искать его в большом интернете. Для перехода на сайт designfornet потребуется более сложная ссылка вида

И это при условии запуска веб сервера XAMPP (ведь сервер для http://сайт/ где-то работает круглосуточно).

1.2. В тексте этой ссылки http://localhost/designfornet/www/ для браузера указан путь, какой ему надо преодолеть до папки www нашего сайта, где лежит страница index.html , из которой он вычитывает и рисует нам на экране приветствие «».

1.3. Я вижу противоречие в написаниях ссылок:

и

1.4. Весь секрет состоит в существовании специальных серверов DNS , в которых прописывают место расположения (IP ) каждого сайта в сети, что позволяет для нас - людей – указывать только короткую ссылку с понятными для человека словами , тогда как в действительности ссылка для самой программы браузера остается в виде ряд чисел. Для людей же составляются ЧПУ – человеко-понятные урлы. В тексте человеко-понятной ссылки http://сайт/ весь длинный путь от моего компьютера до сервера хостера и через его папки к папке сайта был спрятан, а указана лишь эта конечная папка сайт на физическом сервере, адрес которого был подсказан браузеру на DNS сервере.

1.5. Если мы хотим сделать интернет внутри компьютера копией Большого, то нам надо прописать наш домашний сайт designfornet в особом файле, который является аналогом сервера DNS и научиться сокращать вид ссылки до общепринятого вида:

http:// site .zona /

1.6. Тут настало время вспомнить, что основной программой в нашем компьютере является операционная система (у меня Windows 7). В ней уже предусмотрена возможность создания внутреннего сайта по имени localhost .

Для того чтобы в этом убедиться надо найти файл hosts (без расширения) по адресу:

1.7. Файл hosts - системный, поэтому при его открытии надо быть осторожным и лучше сразу для перестраховки сразу сохраним его копию в какой-нибудь папке.

Иногда система делает файл hosts невидимым. В этом случае вы должны иметь права администратора, чтобы в свойствах родительской папки etc убрать значение «скрытый» для всех внутренних файлов. Чтобы не искать каждый раз файл hosts заново создайте его ярлык на рабочем столе.

1.8. Если мы откроем файл hosts в текстовом редакторе (лучше в Notepad++ , но сегодня можно и в Блокноте ), то внизу увидим строки:

… # localhost name resolution is handled within DNS itself. #127.0.0.1 localhost #::1 localhost 127.0.0.1 localhost 127.0.0.1 www.localhost

Предложение «localhost name resolution is handled within DNS itself» переводится следующим образом: «резолюция имени localhost обработана в пределах самого DNS.»

1.9. Выражение из четырех групп чисел - 127.0.0.1 – это IP адрес для всех сайтов внутри компьютера, первым из которых заранее прописан сайт localhost .

Такая запись позволяет браузеру находить сайт localhos t по его адресу (IP =127.0.0.1 ) – то есть внутри компьютера.

Так как ниже есть строка:

127.0.0.1 www.localhost

то по аналогии мы предполагаем, что браузер будет искать www.localhost так же внутри компьютера. Для браузера сайты с именами localhost и www.localhost – это два разных сайта.

Нам еще предстоит сделать их зеркалами одного сайт, чтобы по обеим ссылкам браузер находил один сайт.

1.10. Наша задача повторить для своего сайта с именем designfornet всё, что сделано для сайта localhost , поэтому прописываем его в файле hosts , чтобы заставит браузеры так же искать его не в Большом Интернете, а внутри компьютера среди сайтов с IP =127.0.0.1 .

1.11. Для этого копируем отсюда следующие строки:

127.0.0.1 designfornet 127.0.0.1 www.designfornet

И подставляем их в окне текстового редактора в текст файла hosts под самые нижние строчки, чтобы получилось нечто подобное:

… # localhost name resolution is handled within DNS itself. #127.0.0.1 localhost #::1 localhost 127.0.0.1 localhost 127.0.0.1 www.localhost 127.0.0.1 designfornet 127.0.0.1 www.designfornet

1.12. Сохраняем изменения в файле hosts через редактор (там есть значок «Сохранить», как в Word), но сам файл hosts пока не закрываем, как и сам редактора.

Apache виртуальный хост

2.1. Следующим этапом настройки виртуальных хостов станет наладка взаимодействия сайта с модулем Apache , составляющим ядро вебсервера XAMPP.

Вначале надо внести поправки в главный конфигурационный файл сервера apache httpd conf , который находится по адресу C:\xampp\apache\conf .

2.2. Возьмем файл httpd.conf для редактирования в текстовый редактор и найдем в нем две строки:

#LoadModule vhost_alias_module modules/mod_vhost_alias.so
#Include «conf/extra/httpd-vhosts.conf» (намного ниже - и может быть уже без #)

Знаки # не позволяют выполняться этим инструкциям, поэтому раскомментируем их – т.е. уберем все решетки # перед этими фразами.

Вторая строка включает (запускает) файл httpd-vhosts.conf , который отвечает за виртуальные хосты .

В файле httpd.conf эти две строчки должны быть без решеток, поэтому их просто убираем:

LoadModule vhost_alias_module modules/mod_vhost_alias.so Include «conf/extra/httpd-vhosts.conf»

Сохраняем изменения в файле httpd.conf .

2.3. Теперь перейдем к файлу httpd-vhosts.conf по адресу C:\xampp\apache\conf\extra

Возьмем файл httpd-vhosts.conf в текстовом редакторе. Понятно, что здесь находятся записи о виртуальных хостах.

Теперь нам надо дописать (вставить снизу) под имеющиеся строки скрипт, который мы скопируем из нижнего параграфа

NameVirtualHost *:80 DocumentRoot "C:\xampp\htdocs" ServerName localhost

Обратите внимание, что в некоторых версиях в коде могут использоваться одинарные английские кавычки (’), типа «DocumentRoot "C:\xampp\htdocs"», тогда вам самим придется исправлять наш скрипт под ваш httpd-vhosts.conf.

2.4. Для любознательных я расшифрую строки скрипта. Там речь идет типа этого:

Будет создан виртуальный сервер на порту 80, документы администратора root сервера будут располагаться в папке htdocs, создается почтовый ящик с именем webmaster@localhost;

2.5. Сохраняем изменения в файле httpd-vhosts.conf . Закрываем файлы httpd-vhosts.conf и httpd.conf .

Сервер Apache воспримет новые установки, только если мы его перезагрузим. Откроем Контрольную панель XAMPP и кнопкой Stop остановим работу Apache . Через некоторое время запустим его снова кнопкой Start .

2.6. Следующий шаг – проверяем, будут ли теперь работать короткие ссылки designfornet и www.designfornet в браузер. Копируем ссылки по очереди отсюда и вставляем в строку адреса браузера Mozilla Firefox.

Можно проверить и другие браузеры, однако Google Chrome может игнорировать локальные хосты.

Если мы сделали все аккуратно, то по любой ссылке http://designfornet/ или http://www.designfornet/ будет открываться один и тот же сайт designfornet на странице с приветствием «Это домашний сайт designfornet. Ура! ».

2.7. Сделаем небольшие выводы из нашего урока по созданию виртуальных хостов.

В системе Windows имеется специальный файл hosts в котором можно записать в виде исключения домашние сайты, тогда браузеры не будет искать их в Большом Интернете. Такой файл выполняет роль DNS сервера, который знает картографию сайтов в Интернете.

В программе сервера Apache в главном конфигурационном файле httpd.conf требуется активировать возможность определения синонимов (псевдонимов) сайта (без и с www ) в тексте ссылок, тогда по разным ссылкам:

http://designfornet/

http://www.designfornet/

будет открываться одна и та же страница.

Страницы designfornet и www.designfornet называются зеркалами.

Как создать виртуальный хост

3.1. Для закрепления урока попробуем быстро создать виртуальные хосты для сайта с произвольным именем. Придумаем сайту имя, по-русски означающее «мой_сайт-2_на_локальном_компе » - my_site-2.local , отвечающее всем требованиями: из букв латинского языка с разрешенными знаками и даже с несуществующей зоной local.

3.2. Создадим для этого сайта папку в папке htdocs (C:\xampp ) внутри севера XAMPP и дадим ей имя my_site-2.local . Следом уже внутри папки my_site-2.local создаем две подпапки: logs с пустым текстовым документом error_log.txt и вторую подпапку - www с файлом index.html . В файл index.html запишем новое приветствие: «Это сайт my_site-2.local ».

3.3. Настроим Windows , чтобы она заставляла браузер искать сайт внутрь компьютера, если ссылка будет иметь вид my_site-2.local (или www.my_site-2.local ).

Для этого открываем системный файл hosts (C:\Windows\System32\drivers\etc ) и подписываем имя нашего сайта и его зеркало (псевдоним с www ) под самые нижние строки, как мы это делали для сайта designfornet :

127.0.0.1 designfornet 127.0.0.1 www.designfornet 127.0.0.1 my_site-2.local 127.0.0.1 www.my_site-2.local

3.4. Сохраняем изменения в файле hosts и переходим в папку XAMPP. Главный конфигурационный файл httpd.conf нам уже не нужен, поэтому открываем только файл httpd-vhosts.conf по адресу C:\xampp\apache\conf\extra . Копируем из окна редактора кусок скрипта, касающийся сайта designfornet и вставляем его в какой-нибудь документ – или Блокнот или даже Word :

ServerAdmin webmaster@localhost DocumentRoot "C:\xampp\htdocs\designfornet\www" ServerName designfornet ServerAlias www.designfornet ErrorLog "C:\xampp\htdocs\designfornet\logs\error_log" CustomLog "C:\xampp\htdocs\designfornet\logs\access.log" combined AllowOverride All Order allow,deny Allow from all

3.5. Понятно, что это нам надо для того, чтобы заменить слово designfornet на имя нового сайта my_site-2.local . После смены имен мы должны получить следующий скрипт:

ServerAdmin webmaster@localhost DocumentRoot "C:\xampp\htdocs\my_site-2.local\www" ServerName my_site-2.local ServerAlias www.my_site-2.local ErrorLog "C:\xampp\htdocs\my_site-2.local\logs\error_log" CustomLog "C:\xampp\htdocs\my_site-2.local\logs\access.log" combined AllowOverride All Order allow,deny Allow from all

Следите, чтобы не образовались ненужные пробелы в тексте и отступы от косой черты.

3.6. Вернем (подставим) этот текст снизу в файл httpd.conf и сохраним изменения в текстовом редакторе. В результате получим для сайта my_site-2.local секцию в файле httpd.conf , аналогичную секции, посвященной сайту designfornet .

3.7. Останавливаем через Контрольную панель XAMPP модуль Apache и запускаем снова кнопкой «Start », чтобы наши изменения вступили в силу.

3.8. Вставляем поочередно ссылки my_site-2.local и www.my_site-2.local в браузер. Если все было сделано без ошибок, то ссылки http://my_site-2.local и http://www.my_site-2.local будут вести на одну и туже страницу с приветствием «Это сайт my_site-2.local ».

Я надеюсь, что теперь ни у кого не будет трудностей с созданием сайта на вебсервере XAMPP и настройках виртуальных хостов.

Вы можете еще потренироваться в создании сайтов, например, с именем site3.home .

Я думаю что можно сделать даже небольшое обобщение по принципам устройства интернета .

Главной программой интернета является программа браузер, которую мы заставляем искать сайт, если укажем его в строке адреса. Сама она не знает, где лежит запрашиваемый сайт, поэтому вначале спрашивает у системы windows (в файле hosts ) – нет ли внутренних сайтов, как наши. Если сайта нет в списке, то браузер обращается на DNS сервер в Интернете, которые знают картографию сайтов в сети. Получив от DNS серверa адрес сайта браузер переходит на тот физический сервер, где лежит папка сайта и активирует серверные программы. Они выдают ему одну и туже страницу, даже при наличии в ссылке псевдонимов (без и с www).

Настройка виртуальных хостов – это лишь создание коротких и понятных для людей ссылок.

Введение: Есть настроенный Веб-сервер на Ubuntu 14.04 TLS (связка Apache + MySQL + php + phpmyadmin). Доступ к нему осуществляется с компьютера под управлением Windows 7, следующим образом:

Из браузера – по IP.

В консоль – через putty.

По ssh – через winCSP.

Компьютеры в одной локальной сети. Теперь я расскажу о том как осуществить настройку виртуальных хостов в Apache.

При первоначальной настройке виртуальный хост это IP адрес самого Веб-сервера. Требуется создать новый виртуальный хост на Веб-сервере с возможностью доступа к нему с различных машин.

Шаг 1: создание каталогов

Создаем корневые каталоги для локального хоста newhost:

sudo mkdir -p /var/www/newhost/public_html

В папке public_html будут храниться файлы хоста newhost.

Шаг 2: назначение прав

Для того, что бы пользователь it мог изменять файлы в папке public_html выполним команду:

sudo chown -R it /var/www/newhost/public_html

Для корректного отображения страниц сайта назначим пользователю it (у меня он уже создан) права доступа на общую веб-директорию:

sudo chmod it -R 755 /var/www

Шаг 3: создание файлов нового виртуального хоста

Файл виртуального хоста определяет его конфигурацию, и дает понять серверу Apache, как обрабатывать виртуальный хост.

Стандартный файл виртуального хоста в Apache – 000-default.conf./ Скопируем его для нового виртуального хоста:

sudo cp /etc/apache2/sites-available/000-default.conf /etc/apache2/sites-available/newhost.conf

После чего откроем его для редактирования:

sudo nano /etc/apache2/sites-available/newhost.conf

Для удобства удалим комментарии – весь текст в строке начинающейся со знака #.

Файл примет следующий вид:

ServerAdmin webmaster@localhost

DocumentRoot /var/www/html

Приведем его к виду:

ServerAdmin admin@newhost

ServerName newhost

ServerAlias www.newhost

DocumentRoot /var/www/newhost/public_html

ErrorLog ${APACHE_LOG_DIR}/error.log

CustomLog ${APACHE_LOG_DIR}/access.log combined

Сохраним и закроем файл. Для редактора nano это команды Ctrl+O (сохранить) Ctrl+X (закрыть).

Шаг 4: включение виртуального хоста

Для включения виртуального хоста выполним команду

sudo a2ensite newhost.conf

После чего перезапустим Apache

sudo service apache2 reload

Шаг 5: создание индексного файла и проверка работы хоста

Создадим файл index.html со следующим содержимым:

Добро пожаловать на хост newhost!

Успех! Хост newhost работает!

Шаг 6: настройка файла локального хоста

Открываем файл hosts

sudo nano /etc/hosts

Файл будет иметь примерно следующий вид

127.0.0.1 localhost

127.0.1.1 webserver

Добавляем строку

127.0.1.2 newhost

Сохраняем файл.

Проверяем работоспособность хоста

curl http://newhost

Данная команда должна вывести нам html код страницы. Хост успешно создан и работает. Для доступа к хосту через браузер компьютеров под управлением Windows 7 необходимо в файле C:\Windows\System32\drivers\etc добавить