Apache настройка виртуальных хостов
Если Вам понравился данный материал, поделитесь им с вашими друзьями в соц сетях
Основная цель материалов данного раздела заключается в развертывании локального веб-сервера Apache для дальнейшей разработки динамичных сайтов, т.е. сайтов, использующих в своей работе скрипты языков программирования, подключения к базам данных, и других функциональных возможностях, предоставляемыми внешними модулями.
В предыдущих материалах были описаны установка и запуск локального веб-сервер Apache на ОС Microsoft Windows 7, подключение к веб-серверу модуля языка программирования PHP, СУБД (система управления базами данных) MySQL и веб-приложения phpMyAdmin представляющее собой веб-интерфейс для администрирования СУБД MySQL.
Что такое виртуальные хосты?
Термин виртуальный хост относится к практике размещения более чем одного веб-сайта на одном веб-сервере.
Веб-сервер Apache имеет встроенный механизм виртуальных хостов. Используя данный механизм мы имеем возможность располагать на одном веб-сервере несколько веб-сайтов, указывать для каждого из них собственные настройки ядра и модулей, ограничить доступ ко всему сайту или отдельным файлам.
Имея механизм виртуальных хостов, на мой взгляд, да и как показывает практика разработки веб-сайтов, было бы не правильно его не использовать.
механизм виртуальных хостов
Доменное имя (название сайта)
В глобальной сети интернет располагается огромное количество сайтов. Все они имеют свои имена, эти имена называются — доменом.
Доменное имя (название сайта) — определенная буквенная последовательность, обозначающая имя сайта или используемая в именах электронных почтовых ящиков. Промежуточными символами в доменом имени могут быть буквы латинского алфавита, цифры или дефис.
Рассмотрим структуру доменного имени. Например у доменного имени demo.resource-gsv.ru есть три части разделенные точками:
- ru — доменное имя 1 уровня;
- resource-gsv.ru — доменное имя 2 уровня (домен второго уровня в зоне ru);
- demo.resource-gsv.ru — доменное имя 3 уровня (домен третьего уровня в зоне resource-gsv.ru).
Создание директории для нового сайта
После того как Вы настроите свой веб-сервер для разработки сайтов должным образом, можно приступить к их созданию. Все Ваши текущие и будущие сайты должны распологаться на веб-сервере в директории «C:\Apache24\htdocs». За данную настройку отвечает директива DocumentRoot в конфигурационном файле «C:\Apache24\conf\httpd.conf».
значение директивы «DocumentRoot» назначает корневую директорию управления сайтами
(Хотя расположение сайтов в указаной выше директории не совсем обязательно, но на текущий момент мы не будем усложнять конструкцию веб-сервера).
Давайте вспомнил как мы установили веб-приложение phpMyAdmin в материале Установка phpMyAdmin. Мы скопировали директорию со всеми файлами веб-приложения в корневую директорию управления сайтами «C:\Apache24\htdocs» и переименовали ее в «phpmyadmin». Для обращения к phpMyAdmin мы открыли в браузере страницу http://localhost/phpmyadmin или страницу http://localhost/phpmyadmin/index.php.
Теперь создадим новый сайт.
Для этого, в «C:\Apache24\htdocs» создадим новую директорию, к примеру «site», и в созданной директории «site» создадим файл «index.php» со следующим содержимым:
содержимое файла «index.php» сайта «site»
Открываем наш новый сайт в браузере по адресу http://localhost/site и видим строку «Is test».
Таким образом на своем локальном веб-сервере Вы имеете возможность создавать неограниченное количество сайтов и работать с ними.
Настройка виртуального хоста для сайта
Имея механизм виртуальных хостов, было бы не правильно не использовать их!
При создании и настройки виртуального хоста для веб-сайта я предлагаю использовать:
- доменное имя 2 уровня (к примеру «site»)
- в доменной зоне 1 уровня (к примеру «site.loc»). В нашем случае, в случае разработкой веб-сайтов на локальном веб-сервере, более предпочтительнее использовать следующие доменные имена 1 уровня: «home», «local» или «loc»
Если Вам стало непонятно изложенное мною выше, то думаю на практике Вы все поймете.
Перейдем к практике создания виртуального хоста.
Откройте корневую директорию управления сайтами «C:\Apache24\htdocs». Создайте в ней директорию «site.loc» или измените имя ранее созданой директории «site». Расположите в новой директории индексный файл «index.php» если он отсутствует.
Теперь наш веб-сайт можно открыть в браузере по адресу http://localhost/site.loc. Но использую механизм виртуальных хостов мы сможем открывать веб-сайт использую в браузере доменное имя http://site.loc. Для этого необходимо произвести изменения в конфигурационных файлах веб-сервера Apache.
Первым делом необходимо сообщить веб-серверу Apache что бы он подключил конфигурационный файл отвечающий за виртуальные хосты. Для этого открываем главный конфигурационный файл «C:\Apache24\conf\httpd.conf» и раскомментируем следующюю строку:
раскомментировав строку «Include conf/extra/httpd-vhosts.conf» мы сообщаем веб-серверу, что он должен использовать конфигурационный файл виртуальных хостов, файл «C:\Apache24\conf\extra\httpd-vhosts.conf»
Так же обязательно раскомментируйте строку с подключением модуля «mod_log_config.so», в том случае если она закомментирована.
Теперь открываем конфигурационный файл c настройкой виртуальных хостов «C:\Apache24\conf\extra\httpd-vhosts.conf». В данном файле уже прописаны примеры создания отдельных хостов. Мы можем смело взять их за основу при создании своего нового виртуального хоста.
Обращаю Ваше внимание на то, что первым делом нам необходимо создать виртуальный хост для корневой директории управления сайтами «C:\Apache24\htdocs», который будет повторять конфигурацию главного хоста «localhost». Данная настройка должна быть выше всех в будущем созданных виртуальных хостов.
виртуальный хост для корневой директории управления сайтами «localhost»
ServerAdmin — Email адрес администратора
DocumentRoot — корневая директория
ServerName — имя, которое используется сервером для идентификации себя, к примеру при обращении в адресной строке браузера
ErrorLog — расположение файла журнала ошибок
CustomLog — расположение файла журнала обращений
Теперь создаем виртуальных хост для веб-сайта «site.loc». Для этого ниже добавляем следующие строки:
виртуальных хост для веб-сайта «site.loc»
Убедитесь, что все введенные Вами пути существуют и указаны корректно. так как после любых изменений в конфигурационных файлах Apache необходимо выполнить перезагрузку веб-сервер, выполните ее.
Осталось выполнить еще одно действие. Дело в том, что если мы попытаемся открыть наш сайт по адресу http://site.loc, то браузер попытается найти данное доменое имя в глобальной сети интернет, но нам надо открыть его локально, используя наш локальный веб-сервер. Для изменения данного поведения нам необходимо отредактировать файл «C:\Windows\System32\drivers\etc\hosts», добавив в него строку:
hosts
hosts — текстовый файл, содержащий базу данных доменных имен и используемый при их трансляции в сетевые адреса узлов. Запрос к этому файлу имеет приоритет перед обращением к DNS-серверам. В отличие от DNS, содержимое файла контролируется администратором компьютера.
Источник
3. Настройки сервера
Конфигурирование серверов
Итак, вы стали обладателем доменного имени и оплатили хостинг. Для удобства дальнейших объяснений положим, что вы являетесь владельцем домена name.com. Теперь вы можете набрать в адресной строке любого браузера login.alexhost.ru или name.com, чтобы открыть свой сайт. Доступ по адресу login.alexhost.ru появляется практически мгновенно после активизации вашего аккаунта. Доступ по адресу name.com может появиться через несколько дней или даже неделю (причины см. выше). Однако, в любом случае вы можете использовать ftp://login.alexhost.ru, http://login.alexhost.ru для работы над своим сайтом до тех пор, пока не заработает name.com.
Настройки веб-сервера и управление DNS
Теперь рассмотрим два самых важных на первых порах раздела Панели управления: «Управление DNS» и «Настройки веб-сервера».
Почему мы объединили в один раздел оба эти пункта Панели управления? Потому что они тесно связаны между собой.
Итак, в зависимости от плана хостинга, который вы купили («Эконом», «Бизнес» или «Профи») вы можете совершенно бесплатно держать на одном аккаунте от 6 до 30 виртуальных серверов. Предположим, что вы купили хостинг и доменное имя name.com. То есть на вашем аккаунте создан и функционирует сервер name.com. Кроме него вы можете добавить в свой аккаунт еще несколько серверов, например, name1.com, name2.com (домены второго уровня) и/или subname1.name.com, subname2.name.com (домены третьего уровня). Таким образом, оплачивая хостинг одного домена, вы имеете возможность совершенно бесплатно в рамках своего хостинг-плана производить хостинг серверов с другими доменными именами!
Управление DNS
Теперь разберемся конкретно с DNS разделом панели управления. DNS — это система сопоставления IP адреса вашего сервера символьному имени. Так как IP адрес сайта в интернете достаточно сложен для запоминания (например, 217.73.192.50) была разработана система доменным имен, которые гораздо легче запомнить (например, rambler.ru). Кроме того, IP адрес может меняться (то есть вы можете сменить хостинг-провайдера), однако, если вы приобрели доменное имя, то независимо от того, где у вас происходит хостинг, посетители всегда найдут ваш сайт именно по этому имени.
В разделе Управление DNS вы можете вносить записи о том, какие доменные имена сопоставляются вашему IP адресу. Следует заметить, что IP адрес у вас будет всегда один и тот же, однако, вы можете сопоставить ему сразу несколько доменных имен (кстати, именно поэтому, ваши сервера называются виртуальными, так как физически они находятся на одном и том же компьютере с одним и тем же IP адресом).
Изначально у вас созданы записи ftp, www, mail и свободное поле. Что это значит? Это значит, что у вас созданы сервера ftp.name.com, www.name.com, name.com. То есть полное доменное имя конструируется следующим образом: «запись в таблице DNS»+»name.com». Если у вас есть пустая запись в таблице DNS, то получится просто name.com, если у вас записано www, то получится www.name.com.
Если вы создаете доменное имя третьего уровня subname1.name.com для своего имени второго уровня name.com, то вы просто делаете запись subname1 в таблице DNS. Если вы хотите перенести любое другое доменное к себе в аккаунт, то вы должны выбрать пункт Панели управления «Перенос домена».
Настройки веб-сервера
Кроме того, что вам необходимо сопоставить IP адресу вашего сервера доменное имя, вам необходимо указать где конкретно будут находится документы вашего сайта (в каком каталоге), где будут размещены скрипты вашего сервера, каким образом будет происходит обработка ошибок. В панели настройки веб-сервера напротив каждого поля подробно описано его назначение. Однако, для наглядности, приведем пример настройки виртуального домена третьего уровня.
Пример создания виртуального домена третьего уровня
Мы хотим создать виртуальный хост третьего уровня. Объяснение на примере: subname.name.com. Сделаем так, чтоб он откликался по именам subname.name.com и www.subname.name.com
- Заходим по адресу www.alexhost.ru. Вводим логин и пароль, чтоб попасть в настройки.
- Жмем «Настройки DNS», выбираем свой домен (если их несколько) и жмем Alias.
Создаем две записи:
subname A IP-address
www.subname A IP-address
IP-address укажите тот же, который у вас уже прописан для ftp, www и т.д. - Жмем «Обратно», потом «Настройки Веб-сервера». Жмем «Создать новый». Прописываем:
DirectoryRoot — subname
ScriptAlias — subname/cgi-bin
ServerAdmin — mail@name.com (вместо mail можете прописать свой адрес)
ServerName — subname.name.com
ServerAlias — www.subname.name.com
Включить ErrorLog — галка
Включить AccessLog — галка
Индексные файлы — index.php index.shtml index.html index.php3 index.htm index.shtm
Жмем «Записать», жмем «Обратно», Жмем «Выход из аккаунта». - Выкладываем сайт по адресу ftp.name.com/subname
- Теперь необходимо подождать до 30 минут , чтобы обновились данные по DNS (вы ведь добавили новую запись, о которой должен узнать весь мир!), чтобы ваш сервер стал виден в интернете.
Рекомендуем ознакомиться с материалами по темам:
- Выбор хостинга
Покупка домена и оплата хостинга.
Вы заказали покупку домена и хостинг.
Вы заказали только хостинг, а домен покупаете в другом месте. - Общие рекомендации
Начало большого пути или общие рекомендации - Настройки сервера
Конфигурирование серверов
Настройки веб-сервера и управление DNS
Управление DNS
Настройки веб-сервера
Пример создания виртуального домена третьего уровня - Файл .htaccess
Файл конфигурации веб-сервера .htaccess и раздел «Управление папками»
Управление папками
Файл конфигурации веб-сервера .htaccess - Настройка МХ записей
- Паролирование директорий
- Перенос домена
Перенос нового домена
Перенос домена и смена хостинг-провайдера
Источник
Настройка VDS на Ubuntu 14.04. Часть 6. Установка и настройка APACHE
Мы продолжаем рассказывать о пошаговой настройке VDS с операционной системой Ubuntu 14.04.
Предыдущая статья нашего цикла была посвящена веб-серверу Nginx, а сегодня мы поговорим об Apache.
Наряду с Nginx, Apache является одним из самых распространенных веб-серверов в мире и демонстрирует свою надежность уже не один десяток лет. Впрочем, подробнее о нем мы уже рассказывали в одной из предыдущих статей.
Для начинающих администраторов Apache может стать даже более подходящим выбором, чем его альтернативы — являясь гибким и мощным инструментом, Apache при этом достаточно прост в настройке и использовании.
Установка Apache
Для того чтобы установить веб-сервер Apache, мы будем использовать менеджер пакетов Ubuntu apt:
После завершения установки введите в адресной строке браузера IP-адрес Вашего сервера. Если установка прошла успешно, Вы увидите стандартное приветственное окно Apache:
На этом же этапе можно установить дополнительные необходимые модули.
Например, если Вам в дальнейшем потребуются инструменты для анализа работы сервера, рекомендуем установить модуль utils — он содержит полезные утилиты для тестирования и администрирования сервера.
Если Вам будет необходимо разделять права между пользователями, рекомендуем также установить модуль mpm-itk. При этом нужно будет настроить дополнительные параметры виртуальных хостов — информацию об этом Вы можете найти в открытых источниках сети.
В рамках данной инструкции мы не будем касаться установки и настройки данного модуля.
Для работы сервера с различными языками программирования (а также для расширения функционала сервера) можно установить библиотеки.
Если Ваш сайт использует PHP, необходимая библиотека устанавливается следующим образом:
При использовании python полезно расширение libapache2-mod-wsgi;
при использовании Rails and Rack — libapache2-mod-passenger.
Установка происходит аналогичным образом — просто замените наименование библиотеки в команде.
Теперь перейдем к непосредственной настройке Apache.
Настройка виртуальных хостов
Важной особенностью Apache является возможность создания виртуальных хостов, настраиваемых независимо друг от друга, что позволяет размещать на VDS-сервере сразу несколько сайтов. За конфигурацию каждого сайта будет отвечать конкретный виртуальный хост.
Даже если на начальном этапе Вы планируете размещать только один сайт на сервере, мы рекомендуем в любом случае использовать виртуальные хосты. Это обеспечит Вам удобство администрирования и обслуживания Вашего проекта, а в дальнейшем и легкость расширения при необходимости.
По умолчанию Apache содержит стандартный файл конфигурации 000-default.conf, который хранится в директории /etc/apache2/sites-available.
Файлы наших виртуальных хостов будут храниться здесь же, и мы сформируем их на основе 000-default.conf.
Однако сначала мы отключим стандартный файл конфигурации командой:
Теперь скопируем его содержимое в файл, который будет содержать настройки Вашего сайта.
В наших примерах в качестве имени сайта мы будем использовать site1, Вам необходимо заменить это значение на имя Вашего сайта.
Вы можете давать конфигурационным файлам любые названия, но мы рекомендуем обозначать их так, чтобы в дальнейшем Вы легко могли определить, к какому сайту относится конкретный файл.
Далее нам нужно отредактировать конфигурационный файл. Откроем его командой:
Приведем содержимое файла к следующему виду:
Поясним приведенные выше параметры.
Блок включает в себя набор директив, задающих настройки для конкретного виртуального хоста.
Имя этого хоста Вы указали в параметре ServerName — полное доменное имя Вашего сайта.
Далее следует директива DocumentRoot — она задает путь до директории, в которой хранятся файлы сайта site1 (все необходимые директории мы создадим позже).
Следующий параметр — блок . Он задает настройки, которые будут применены для конкретной папки.
В данном случае:
- AllowOverride All — разрешение допускать настройки, заданные в .htaccess;
- Require all granted — доступ к каталогу разрешен всем.
В параметре ErrorLog мы указали расположение файла с логами ошибок.
В CustomLog — расположение файла с логами доступа.
Этого набора директив достаточно для функционирования виртуального хоста, хотя список не является исчерпывающим. Дополнительно могут указываться, например, ServerAdmin (e-mail администратора сервера), ServerAlias (альтернативное имя сайта), AssignUserID (пользователь; настройка этого параметра необходима при использовании mpm-itk) и др. Со списком всех возможных директив и их описанием можно ознакомиться на сайте Apache (информация на английском языке).
После указания всех необходимых параметров закройте файл, сохранив изменения.
Далее мы создадим все необходимые папки, которые мы прописали в конфигурационном файле, и установим права на них:
На этом этапе настройка виртуального хоста завершена, но желательно, конечно, проверить корректность его работы.
Для этого рекомендуем Вам создать index-файл в директории public_html:
Внесите в него любой самый простой html-код для проверки и сохраните документ.
Например:
Далее включите сайт следующей командой:
И выполните перезагрузку Apache:
Теперь необходимо ввести в браузере адрес сайта, виртуальный хост для которого Вы настраивали. Если все работает, как нужно, на экране будет отражено содержимое созданного Вами индексного файла.
Надеемся, все получилось 🙂
Модули Apache
Apache имеет множество разнообразных модулей, с помощью которых можно расширять его функциональность.
Список доступных модулей можно просмотреть в директории /etc/apache2/mods-available
Список уже включенных модулей — в директории /etc/apache2/mods-enabled
Перейти в директорию можно командой cd, например:
Чтобы просмотреть содержимое текущего каталога, наберите:
Для включения и выключения нужных Вам модулей используйте команды a2enmod и a2dismod.
Например, Вы можете включить CGI-скрипты следующей командой:
С информацией о каждом модуле можно ознакомиться на сайте Apache.
Команды для управления сервером Apache
Для запуска веб-сервера используйте команду:
Если Вам требуется сделать «мягкую» перезагрузку, то есть перезапуск без завершения всех процессов, вводите:
Для остановки веб-сервера существует следующая команда:
Мы надеемся, что информация в этой статье оказалась для Вас полезной и помогла справиться с установкой и настройкой веб-сервера Apache.
Если у Вас возникли вопросы, спрашивайте в комментариях, мы будем рады Вам помочь.
Источник