пятница, 7 октября 2011 г.

Мультидоменность в Apache без лишних хлопот на локальном хосте

Итак, попробуем добиться, чтобы процесс создания поддомена сводился лишь к созданию папки для сайта. Возможно ли это? Проверим...




Как устанавливать LAMP я рассказывать не буду, так как вы, скорее всего, можете сделать это с закрытыми глазами (смайл). Перейдем к самому интересному.

Настройка vhost_alias


Включаем модуль vhost_alias. Он то и будет главным действующим лицом.
-----------------------------------------------------------------------------
sudo a2enmod vhost_alias
-----------------------------------------------------------------------------


Включаем, если нужно, mod_rewrite.
-----------------------------------------------------------------------------
sudo a2enmod rewrite
-----------------------------------------------------------------------------




Открываем файл httpd.conf и приступаем к непосредственной настройке.
#Подставляем имя сервера из заголовка запроса пользователя
    UseCanonicalName Off
    # Формируем логи так, чтобы в них указывалось имя виртуального хоста
    LogFormat "%V %h %l %u %t \"%r\" %s %b" vcommon
    CustomLog /home/%username%/web/access_log vcommon

    # Нужно для работы mod_rewrite
    <Directory /home/%username%/web>
        Options FollowSymLinks
        AllowOverride All
    </Directory>

    # Собственно правило, по которому будет искаться нужный нам сайт
    VirtualDocumentRoot /home/%username%/web/%-2 




%-2 означает, что по хост будет выбран по предпоследней части доменного имени. Другими словами, создав директорию /home/%username%/web/habrahabr, мы сможем обратиться к ней как habrahabr.ru (или habrahabr.com, или даже habrahabr.xxx).
Можно также задать свои параметры выбора имени хоста:

%0 Полное имя
%1 Первая часть имени
%2 Вторая часть имени
%3 Третья часть имени
%-1 Последняя часть
%-2 Предпоследняя часть
%2+ Вторая и все последующие части
%-2+ Предпоследняя и все последующие части


Рестартуем Apache.
-----------------------------------------------------------------------------
sudo service apache2 restart
-----------------------------------------------------------------------------

Наш сервер уже работает. Убедиться в этом мы можем, создав папку с нужным именем, например test и поместив туда index.php с каким-нибудь содержимым, например "".
Ах да, нужно ведь еще прописать наш домен в файлике /etc/hosts.
-----------------------------------------------------------------------------
127.0.0.1 test.loc
-----------------------------------------------------------------------------

Все, теперь можно открывать в браузере страничку.
Стоп, мы так не договаривались! Создание сайта должно сводиться к созданию директории под него. Ну что ж, давайте сделаем…


Ссылки по теме:
httpd.apache.org/docs/2.0/ru/vhosts/mass.html
www.softtime.ru/info/apache.php?id_article=103

Комментариев нет:

Отправить комментарий