Apache2 — настройка для работы с несколькими сайтами в Debian

В большинстве случаев, если вы имеете собственный веб-сервер с «белым» ip-адресом, то после установки Apache2  в Debian 8, сайт «заливается» в директорию /var/www/html — которая прописана в файле /etc/apache2/sites-available/000-default.conf

Однако, если мы хотим разместить несколько сайтов? Допустим, что у нас есть несколько приобретенных доменных имен. Например:

  • school.ru
  • moodle.school.ru
  • школа.рф
  • support.org

и один «белый» ip-адрес. Что нужно делать?

В Apache2 такая возможность, конечно-же, предусмотрена. Но тут нужно понимать, как работает механизм обработки запросов к серверу. Представить это можно так:

apache2-dns

а) В соответствии со схемой, нам нужно настроить на DNS-записи на DNS-сервере.

б) Настроить Веб-сервер для работы с несколькими виртуальными хостами.

Допустим, что с первым пунктом мы разобрались, приступаем к следующему этапу:

1. Устанавливаем веб-сервер, если он еще не установлен:

apt-get install apache2

2. Для того, чтобы обезопасить работу на сервере, в директориях, которые будут созданы для размещения сайтов передадим права на директории пользователю (у меня это webuser, под которым будем работать с файлами сайта). Для этого установим модуль apache2-mpm-itk:

apt-get install apache2-mpm-itk

3. Создаем директорию для нашего сайта в /var/www/ и передаем права на нее нашему пользователю webuser :

mkdir /var/www/school.ru
chown webuser:webuser /var/www/school.ru

4. Создаем файл конфигурации виртуального хоста для school.ru:

touch /etc/apache2/sites-available/school.ru.conf

И прописываем в нем:

<VirtualHost *:80>

ServerName school.ru
ServerAdmin mail@school.ru
ServerAlias www.school.ru
DocumentRoot /var/www/school.ru
CustomLog ${APACHE_LOG_DIR}/school.ru.access.log combined
ErrorLog ${APACHE_LOG_DIR}/school.ru.error.log
AssignUserID webuser webuser

<Directory /var/www/school.ru>
Options -Includes -Indexes -ExecCGI
</Directory>

</VirtualHost>

Сохраняем изменения.

5. «Включаем» сайт. Это можно сделать путем создания символьной ссылки на конфигурационный файл виртуального хоста school.ru.conf в директорию /etc/apache2/sites-enabled, либо специальной утилитой apache2:

a2ensite school.ru
«Выключить» сайт можно командой:

a2dissite school.ru

6. Перезапускаем apache2:

service apache2 reload

7. Для того, чтобы проверить работу виртуального хоста school.ru создадим в директории /var/www/school.ru файл index.html c содержимым:

<body><h1>Hello!</h1></body>

touch /var/www/school.ru/index.html

8. Запускаем браузер и переходим по адресу http://school.ru

Заказать сайт

Источники: 

  • http://httpd.apache.org/
  • http://interface31.ru/tech_it/2015/06/nastraivaem-veb-server-na-baze-apache-v-debian-ubuntu-server.html
  • https://habrahabr.ru/post/226971/
Интересная статья? Поделитесь ей с друзьями!

Добавить комментарий

Ваш e-mail не будет опубликован. Обязательные поля помечены *

Подтвердите, что Вы не бот — выберите человечка с поднятой рукой:

This blog is kept spam free by WP-SpamFree.