Как поднять на сервере с одним IP несколько сайтов (shared IP hosting на Apache)

После установки Apache при заходе по IP на сервер, где он установлен, мы можем увидеть радостное рапортование о том, что сервер работает:

It works!

Отлично! Теперь можно заняться заливкой сайта на сервер. И, если у вас на сервере планируется только один сайт (домен), то вы можете положить скрипты прямо в /var/www/ (там пока что лежит только index.htm с текстом «<h1>It works!</h1>«). Всё будет работать. Но сайт будет только один.

Если несколько доменов разрешаются в IP этого сервера (с помощью DNS), обращаясь по любому из них, вы увидите свой сайт.

Можно в скрипте, которому передаётся управление при обращении к серверу, узнать имя host’а, к которому обращались, однако, apache может это делать сам и удобнее (для нас), достаточно лишь настроить  его.

В основном конфигурационном файле apache (/etc/apache2/apache2.conf) нужно прописать сайты, которые вы планируете держать в виде виртуальных хостов.

NameVirtualHost Ваш_IP:80

<VirtualHost Ваш_IP:80>
    DocumentRoot Директория_вашего_сайта # я обычно делаю так: /var/www/useunix.ru
    ServerName Ваш_домен
    ServerAlias www.Ваш_домен # чтобы склеить www и no-www версии
</VirtualHost>

И так 3 раза в день после еды для каждого домена (кроме строчки «NameVirtualHost«).

Здесь же можно указать ещё кучу параметров (e-mail админа, правила доступа), но это требуется обычно уже для больших проектов… А, если вам понадобилось это руководство, то, скорее всего, вы только начинаете :)

Также, если у вас несколько IP, которые должны обеспечивать доступ к сайту, то Ваш_IP можете заменить на звёздочку (*). Порт также можно опустить.

Возможно, потребуется поставить «Listen 80» выше NameVirtualHost, однако, когда я стартовал apache, на меня заругались, мол уже слушаем 80 порт…

Ну и не забудьте, что каждый домен должен разрешаться DNS-сервером в IP вашего компьютера.

Мне понравилась эта заметка:
Как поднять на сервере с одним IP несколько сайтов (shared IP hosting на Apache): 2 комментария
  1. Надо заметить что способ описан для apache 1.x, для версии 2.x правильно будет
    sudo a2ensite mynewsite
    маны https://help.ubuntu.com/6.10/ubuntu/serverguide/ru/httpd.html

    • Данный способ работает на обеих версиях (год что ли поставить, чтобы линки спамили аккуратней…). Единственное, если у вас тьма сайтов и вам приятнее копаться в куче файлов, а не строчек, то да, конечно, ensite приятней…

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

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

*

Можно использовать следующие HTML-теги и атрибуты: <a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <cite> <code> <del datetime=""> <em> <i> <q cite=""> <strike> <strong>