Настройка локальной рабочей станции для обслуживания нескольких сайтов с использованием VirtualHost в Apache

Rate this post

Вроде о настройке виртуальных хостов на вашей локальной рабочей станции уже было сказано много, но как не странно, никакого более-менее внятного материал на русском мне обнаружить не удалось. У буржуев ситуация получше. В любом случае это важный вопрос, так как все хостеры используют эту технологию, «вешая» на один IP-адрес по многу сайтов. Например, если проверить мой домен, то станет ясно, что по мимо моего сайта, на том же самом IP-адресе «висит» еще 64 сайта. Это не так уж много, бывает и сотни и тысячи. Реализовать подобный механизм у себя на локальной машине очень просто, а главное это будет удобно использовать. Как это сделать, имея уже готовый Web-сервер на основе Apache, установленный на платформе Debian, написано под катом

Теория

Тут стоит обратить внимание на официальную документацию. На сайте Apache, раздел Name-based Virtual Host Support c описанием директив и всевозможных комбинаций. Так же, обратите внимание на документацию Drupal’a, там есть очень полезная статья HowTo: Configure your local workstation to serve multiple sites using Drupal’s multisite configurations and Apache’s VirtualHost. Все они на английском.

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

Давайте рассмотрим такую ситуацию, когда вы тестируете разные сайты, у себя на компьютере. Вы можете иметь виртуальные хосты, на вашем localhost (127.0.1.1). Правильно сконфигурировав файлы /etc/hosts и конфиг Apache /etc/apache2/sites-available/default вы можете получить сколько угодно сайтов на одном IP-адресе.

Давайте рассмотрим такую ситуацию, вы хотите иметь два разных сайта на одном IP-адресе (127.0.1.1), для примера:

Первый сайт будет работать на Drupal. Второй сайт будет работать на WordPress.

Данная статья пишется с условием того, что у вас уже есть машина, с подготовленным Debian сервером, и на ней установлен и настроен LAMP. Если это не так, то на пару постов вниз по блогу, вы найдете все необходимые инструкции.

Обычно, Apache предлагает хранить сайты в директории /var/www, мне это не мешает на данный момент, если же вам не нравится, поменяйте.

Сайтов будет несколько. Вот пример структуры каталогов для них:

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

Первое что необходимо сделать, это настроить файл /etc/hosts:

sudo nano /etc/hosts

Туда впишите следующие:

127.0.0.1       localhost
127.0.1.1       drupal.local
127.0.1.1       wordpress.local

Где drupal.local будет вашим локальным адресом, по которому будет доступен сайт на Drupal’e. Где wordpress.local будет вашим локальным адресом, по которому будет доступен сайт на WordPress’e.

Теперь приступим к настройке виртуальных хостов в файле /etc/apache2/sites-available/default

sudo nano /etc/apache2/sites-available/default

Там стоит вписать минимальную конфигурацию для каждого виртуального хоста:

<VirtualHost *:80>
ServerName drupal.local
 
#LOGS
ErrorLog "/var/log/apache2/error.log"
CustomLog "/var/log/apache2/access.log" file
 
DocumentRoot /var/www/users/drupal
</VirtualHost>
 
#===========================================================
 
<VirtualHost *:80>
ServerName wordpress.local
 
#LOGS
ErrorLog "/var/log/apache2/error.log"
CustomLog "/var/log/apache2/access.log" file
 
DocumentRoot /var/www/users/wordpress
</VirtualHost>

Теперь сохраните файл, и перезагрузите сервер:

sudo /etc/init.d/apache2 restart

admin

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

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