- Настройка виртуальных хостов APACHE
- Создание структуры каталогов Apache
- Настройка прав Apache
- Создание демо-страниц для виртуальных хостов Apache
- Success! The example.com virtual host is working!
- Все о WEB программировании
- WEB программирование от А до Я
- Заказать сайт:
- Социальные сети:
- Партнеры:
- Настройка virtualhost на apache2
- Настройка virtualhost на apache2
Настройка виртуальных хостов APACHE
Информация взята из https://www.8host.com/blog/nastrojka-virtualnyx-xostov-apache-v-ubuntu-16-04/
Apache является одним из самых популярных веб-серверов в мире.
Компоненты и функции Apache разделены на отдельные элементы, которые можно индивидуально устанавливать и настраивать. Одним из базовых элементов, отвечающим за индивидуальные параметры сайта или домена, является виртуальный хост.
Виртуальные хосты позволяют администратору использовать один сервер для размещения нескольких сайтов (в рамках одного интерфейса или IP-адреса). Каждый домен, настроенный таким образом, будет направлять посетителя на соответствующий сайт.
Количество виртуальных хостов на одном сервере ограничивается исключительно ресурсами этого сервера.
Данное руководство поможет настроить виртуальные хосты на выделенном сервере Linux, Debian, Ubuntu, что позволит обслуживать разный контент в зависимости от запрашиваемого домена.
- Предварительно настроенный сервер.
- Не-root пользователь с расширенными привилегиями.
- Установленный веб-сервер Apache
sudo apt-get update
sudo apt-get install apache2
Примечание: В руководстве используются условные домены example.com и test.com; не забудьте заменить их своим доменным именем.
Создание структуры каталогов Apache
Для начала нужно создать структуру каталогов, в которой будут храниться данные сайта.
Каталог document root (каталог, содержащий контент для Apache) по умолчанию находится в /var/www; в нём нужно создать отдельный каталог для каждого виртуального хоста. В каждом таком каталоге будет размещен каталог public_html, в котором будут находиться нужные файлы. Благодаря этому хостинг становится более гибким.
Необходимые каталоги можно создать при помощи следующих команд:
sudo mkdir -p /var/www/example.com/public_html
sudo mkdir -p /var/www/test.com/public_html
Примечание: Не забудьте указать свои доменные имена в командах.
Настройка прав Apache
Структура каталогов готова, но все они принадлежат пользователю root. Чтобы не-рутовый пользователь мог вносить изменения в файлы веб-каталога, нужно изменить права на эти файлы при помощи следующей команды:
sudo chown -R $USER:$USER /var/www/example.com/public_html
sudo chown -R $USER:$USER /var/www/test.com/public_html
Переменная $USER примет имя текущего пользователя. После этого подкаталоги каталоги public_html, содержащие контент сайтов, будут принадлежать текущему пользователю.
Также нужно изменить привилегии и открыть веб-каталог и всё его содержимое для чтения, в противном случае страницы будут отображаться некорректно.
Теперь все права установлены верно; можно приступать к созданию контента в специальных каталогах.
Создание демо-страниц для виртуальных хостов Apache
Создайте тестовый контент; для пробной настройки хостов простых страниц будет достаточно. Просто создайте страницы index.html для каждого сайта.
Начнём с example.com; откройте файл index.html в текстовом редакторе:
В этом файле создайте простой HTML-документ, который указывает, к какому сайту подключена страница. В данном случае этот файл выглядит так:
Success! The example.com virtual host is working!
Все о WEB программировании
WEB программирование от А до Я
Заказать сайт:
Социальные сети:
Партнеры:
Настройка virtualhost на apache2
Доброго времени суток дорогой читатель блога “WEB программирование от А до Я”. Сегодня мы немного отойдем от web программирования и поговорим об инструментах web разработчика. А точнее мы остановимся на virtualhost для apache2. Многие разработчики делают и поддерживают несколько проектов. Так, например, у меня есть проект на Joomla, другой проект на WordPress, а также есть несколько тестовых проектов на, которых я оттачиваю мастерство. И тут возникает вопрос: “А как на одной машине развернуть несколько хостов?” Дальше я постараюсь наиболее понятно ответить на данный вопрос.
Небольшое замечание на моей рабочей машине стоит операционная система Ubuntu, сервер apache2. Поэтому и настройки virtualhost я буду приводить для этой связки. Но разницы между конфигурацией virtualhost на ubuntu ни чем не будет отличаться от конфигурации virtualhost на Windows или какой либо другой операционной системы. Одно отличие это расположение конфигурационных файлов для virtualhost. А теперь давайте приступим…
Сразу хочу отметить, что apache2 у Вас уже установлен. В Ubuntu apache устанавливается из репозитория. Для Windows существуют пакеты Denver и XAMPP.
Теперь давайте разберемся с понятием virtualhost. Virtualhost — это размещение нескольких хостов на одной машине.
Конфигурационные файлы apache2 в ubuntu находятся в /etc/apache2
Файл apache2.conf — это основной файл конфигурации.
А виртуальные хосты находятся в папке /etc/apache2/sites-available
Для каждого виртуального хоста в данной папке есть свой конфигурационный файл.
Но это актуально для ubuntu. Для других операционных систем настройки virtualhost содержаться в самом файле конфигурации apache2 apache2.conf в разделе .
Любое описание виртуального хоста начинается с и заканчивается . Это обязательно.
Также virtualhost вы можете привязать к определенному ip-адресу и порту. Это делается следующим образом:
или привязать один virtualhost к нескольким ip-адресам:
Давайте приведем пример действующего virtualhost:
И разберем каждую строчку:
- — этот тег обозначает, что дальше будут следовать настройки виртуального хоста. Виртуальный хост будет срабатывать при обращении на любой адрес по порту 80.
- ServerAdmin — директива содержит e-mail адрес администратора данного хоста и будет показываться в сообщениях об ошибке. В нашем случае — это webmaster@localhost
- ServerName — эта директива определяет имя хоста и порт, по которому сервер идентифицирует себя. Это необходимо при создании URL. Так, например, у Вас есть хост first.example.com, а сервер имеет еще название www.example.com и Вы хотите, чтоб веб-сервер определял Ваш хост и по этому имени, тогда в этой директиве должны прописать ServerName www.example.com
- ServerAlias — данная директива устанавливает альтернативные имена хостов.
- DocumentRoot — директива устанавливает каталог, где находятся файлы для обработки apache2. Т.е. в данном каталоге хранятся Ваши файлы сайта.
- в данной директиве мы можем прописать различные правила для каталога. Данная директива обязательна должна закрываться тегом . Так например, мы прописываем правила для каталога home:
Также в пути к каталогу мы можем применять и регулярные выражения.
Теперь давайте рассмотрим какие правила мы можем прописать в данной директиве
- AllowOverride данный параметр может содержать следующие значения: None — тогда файл .htaccess будет полностью игнорироваться, All — тогда в .htaccess допускаются все директории.
- Options — устанавливает особенности сервера для данного каталога. Может принимать следующие значения: None — тогда ни одна из опций не допускается, All — допускаются все опции кроме MultiViews, ExecCGI — разрешает выполнение CGI скриптов, FollowSymLinks -сервер будет следовать за символическими связями, Includes — разрешается Server-Site-Includes (SSI), IncludesNOEXEC — разрешается SSI, но запрещается комманды #exec и #include CGI скриптов, Indexes — если по ссылке в каталоге ничего не найдено, то сервер возвратит содержание каталога, MultiViews — разрешает MultiViews (действие MultiViews заключается в следующем пользователь в адресной строке набирает / и если вдруг не существует, то сервер ищет в файл .*), SymLinksIfOwnerMatch — сервер будет следовать только тем символическим связям, для которых целевой файл или каталог имеют тот же идентификатор пользователя что и связь.
- Order — данной директивой мы устанавливаем порядок проверки, т.е. в начале проверяем на запрет и если все у нас проходит, то разрешаем
- Deny — в данной директиве мы указываем доступ к серверу на основе хоста или ip-адреса. В данной директиве мы перечисляем запрещенные хосты
- allow — в данной директиве мы указываем доступ к серверу, перечисляем разрешенные хосты.
- ErrorLog — в данной директиве мы указываем путь к файлу логов.
- LogLevel — в данной директиве мы указываем уровень сообщений, которые будут записываться в лог-файл. Существуют следующие уровни:
- emerg — чрезвычайные ситуации — система непригодна для использования.
- alert — действий должны быть приняты немедленно.
- crit — критическое условие.
- error — возникновение ошибки.
- warn — предупреждения.
- notice — нормальное состояние.
- info — информация.
- debug — debug сообщения
- CustomLog — директива в которой указываем путь к файлу логов, где регистрируются запросы к серверу.
Фуф, с файлом конфигурации для virtualhost мы разобрались.
Теперь давайте создадим виртуальный хост. Для этого в Ubuntu в папке /etc/apache2/sites-available/ создаем файл с названием нашего хоста например test. И помещаем туда следующий код:
Теперь в папке /var/www/ создаем папку test (тут и будут находиться файлы нашего virtualhost)
Кофигурацию для нашего хоста мы создали. Осталось включить этот виртуальный хост. Для этого вводим команду:
Перезагрузить сам apache:
И все наш virtualhost работает.
Давайте в файле /etc/hosts добавим строку 127.0.0.1 test
Теперь введя в браузере адрес test мы попадаем на virtualhost на нашем локальном сервере.
На этом настройка virtualhost на apache2 завершена. Если у Вас появились вопросы, то пишите в комментариях я обязательно на них отвечу.
И не забывайте следить за обновлениями на моем блоге, подписавшись на RSS-рассылку.
Настройка virtualhost на apache2
Доброго времени суток дорогой читатель блога “WEB программирование от А до Я”. Сегодня мы немного отойдем от web программирования и поговорим об инструментах web разработчика. А точнее мы остановимся на virtualhost для apache2. Многие разработчики делают и поддерживают несколько проектов. Так, например, у меня есть проект на Joomla, другой проект на WordPress, а также есть несколько тестовых проектов на, которых я оттачиваю мастерство. И тут возникает вопрос: “А как на одной машине развернуть несколько хостов?” Дальше я постараюсь наиболее понятно ответить на данный вопрос.
Небольшое замечание на моей рабочей машине стоит операционная система Ubuntu, сервер apache2. Поэтому и настройки virtualhost я буду приводить для этой связки. Но разницы между конфигурацией virtualhost на ubuntu ни чем не будет отличаться от конфигурации virtualhost на Windows или какой либо другой операционной системы. Одно отличие это расположение конфигурационных файлов для virtualhost. А теперь давайте приступим…
Сразу хочу отметить, что apache2 у Вас уже установлен. В Ubuntu apache устанавливается из репозитория. Для Windows существуют пакеты Denver и XAMPP.
Теперь давайте разберемся с понятием virtualhost. Virtualhost — это размещение нескольких хостов на одной машине.
Конфигурационные файлы apache2 в ubuntu находятся в /etc/apache2
Файл apache2.conf — это основной файл конфигурации.
А виртуальные хосты находятся в папке /etc/apache2/sites-available
Для каждого виртуального хоста в данной папке есть свой конфигурационный файл.
Но это актуально для ubuntu. Для других операционных систем настройки virtualhost содержаться в самом файле конфигурации apache2 apache2.conf в разделе .
Любое описание виртуального хоста начинается с и заканчивается . Это обязательно.
Также virtualhost вы можете привязать к определенному ip-адресу и порту. Это делается следующим образом:
или привязать один virtualhost к нескольким ip-адресам:
Давайте приведем пример действующего virtualhost:
И разберем каждую строчку:
- — этот тег обозначает, что дальше будут следовать настройки виртуального хоста. Виртуальный хост будет срабатывать при обращении на любой адрес по порту 80.
- ServerAdmin — директива содержит e-mail адрес администратора данного хоста и будет показываться в сообщениях об ошибке. В нашем случае — это webmaster@localhost
- ServerName — эта директива определяет имя хоста и порт, по которому сервер идентифицирует себя. Это необходимо при создании URL. Так, например, у Вас есть хост first.example.com, а сервер имеет еще название www.example.com и Вы хотите, чтоб веб-сервер определял Ваш хост и по этому имени, тогда в этой директиве должны прописать ServerName www.example.com
- ServerAlias — данная директива устанавливает альтернативные имена хостов.
- DocumentRoot — директива устанавливает каталог, где находятся файлы для обработки apache2. Т.е. в данном каталоге хранятся Ваши файлы сайта.
- в данной директиве мы можем прописать различные правила для каталога. Данная директива обязательна должна закрываться тегом . Так например, мы прописываем правила для каталога home:
Также в пути к каталогу мы можем применять и регулярные выражения.
Теперь давайте рассмотрим какие правила мы можем прописать в данной директиве
- AllowOverride данный параметр может содержать следующие значения: None — тогда файл .htaccess будет полностью игнорироваться, All — тогда в .htaccess допускаются все директории.
- Options — устанавливает особенности сервера для данного каталога. Может принимать следующие значения: None — тогда ни одна из опций не допускается, All — допускаются все опции кроме MultiViews, ExecCGI — разрешает выполнение CGI скриптов, FollowSymLinks -сервер будет следовать за символическими связями, Includes — разрешается Server-Site-Includes (SSI), IncludesNOEXEC — разрешается SSI, но запрещается комманды #exec и #include CGI скриптов, Indexes — если по ссылке в каталоге ничего не найдено, то сервер возвратит содержание каталога, MultiViews — разрешает MultiViews (действие MultiViews заключается в следующем пользователь в адресной строке набирает / и если вдруг не существует, то сервер ищет в файл .*), SymLinksIfOwnerMatch — сервер будет следовать только тем символическим связям, для которых целевой файл или каталог имеют тот же идентификатор пользователя что и связь.
- Order — данной директивой мы устанавливаем порядок проверки, т.е. в начале проверяем на запрет и если все у нас проходит, то разрешаем
- Deny — в данной директиве мы указываем доступ к серверу на основе хоста или ip-адреса. В данной директиве мы перечисляем запрещенные хосты
- allow — в данной директиве мы указываем доступ к серверу, перечисляем разрешенные хосты.
- ErrorLog — в данной директиве мы указываем путь к файлу логов.
- LogLevel — в данной директиве мы указываем уровень сообщений, которые будут записываться в лог-файл. Существуют следующие уровни:
- emerg — чрезвычайные ситуации — система непригодна для использования.
- alert — действий должны быть приняты немедленно.
- crit — критическое условие.
- error — возникновение ошибки.
- warn — предупреждения.
- notice — нормальное состояние.
- info — информация.
- debug — debug сообщения
- CustomLog — директива в которой указываем путь к файлу логов, где регистрируются запросы к серверу.
Фуф, с файлом конфигурации для virtualhost мы разобрались.
Теперь давайте создадим виртуальный хост. Для этого в Ubuntu в папке /etc/apache2/sites-available/ создаем файл с названием нашего хоста например test. И помещаем туда следующий код:
Теперь в папке /var/www/ создаем папку test (тут и будут находиться файлы нашего virtualhost)
Кофигурацию для нашего хоста мы создали. Осталось включить этот виртуальный хост. Для этого вводим команду:
Перезагрузить сам apache:
И все наш virtualhost работает.
Давайте в файле /etc/hosts добавим строку 127.0.0.1 test
Теперь введя в браузере адрес test мы попадаем на virtualhost на нашем локальном сервере.
На этом настройка virtualhost на apache2 завершена. Если у Вас появились вопросы, то пишите в комментариях я обязательно на них отвечу.
И не забывайте следить за обновлениями на моем блоге, подписавшись на RSS-рассылку.