вторник, 30 августа 2011 г.

[Из песочницы] Автоматические хосты для веб-разработки (FreeBSD)






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



Как вариант, можно скриптами обновлять конфиги apache и файл hosts.



Другое решение, настройка собственного DNS сервера с зоной верхнего уровня.

Это мы и сейчас и проделаем.



Итак, создадим зону ".dev" (используя демон named и apache под FreeBSD)



Правим файл /etc/namedb/named.conf:


options {
directory "/etc/namedb";
pid-file "/var/run/named/pid";
dump-file "/var/dump/named_dump.db";
statistics-file "/var/stats/named.stats";

// внешний DNS
// укажите ваш текущий DNS
// или сервер компании <s>зла</s> добра:
forwarders { 8.8.8.8; };
};

// наша зона
zone "dev" { type master; file "master/dev"; };




Создаем файл новой зоны /var/named/etc/namedb/master/dev:


$TTL 3600 ; 1 hour
dev. IN SOA ns1.dev. admin.www.dev (
2009112601 ; Serial
10800 ; Refresh
3600 ; Retry
604800 ; Expire
86400 ; Minimum TTL
)


; DNS Servers
IN NS ns1.dev


IN A 127.0.0.1

; Machine Names
ns1 IN A 127.0.0.1
* IN A 127.0.0.1




После перезапуска namedb и указав 127.0.0.1 в качестве вашего DNS (/etc/resolv.conf), любой-адрес.dev будет вести на 127.0.0.1.

Пробуем?


% dig любой-адрес.dev

;; ANSWER SECTION:
\208\187\209\142\208\177\208\190\208\185-\208\176\208\180\209\128\208\181\209\129.dev. 3600 IN A 127.0.0.1


% ping waka.dev ~
PING waka.dev (127.0.0.1): 56 data bytes
64 bytes from 127.0.0.1: icmp_seq=0 ttl=64 time=0.024 ms
^C




Теперь нужно научить apache. В httpd.conf пишим в конец файла:

UseCanonicalName Off
VirtualDocumentRoot /www/%-1/%-2




После перезапуска apache, набираем в адресе браузера http://habrahabr.dev/ — apache выдаст /www/dev/habrahabr/index.html

Заранее создаем этот файл (иначе полуим ошибку 404) и разрешаем доступ на /www/dev/ (иначе получим ошибку 403) в httpd.conf:


<Directory "/www/dev/">
Options Indexes Includes FollowSymLinks
AllowOverride All
Allow from all
</Directory>




Другие компьютеры



Дополнительно, можно сделать доступной эту схему в виртуальных машинах и в локальной сети. Для этого нужно в файле /etc/namedb/master/dev поменять 127.0.0.1 на IP вашего компьютера и указать его в качестве DNS на нужных компьютерах.



Веб студия



В фирме, где вы работаете, можно для каждого сотрудника настроить свой домен 1 или 2 уровня используя один DNS сервер.



Ой!




  1. Apache неправильно передает DOCUMENT_ROOT в cgi или в mod_php.

    Вместо вычисленного VirtualDocumentRoot он передает DocumentRoot указанный в httpd.conf.

    Имейте это ввиду при использовании этой переменной.


  2. Современные браузеры совмещают адресную строку и строку поиска. Если вас перекидывает на результаты поиска после ввода домена, домен вводите со слэшом (/) на конце, напрмер, waka.dev/







Ссылки


Apache: Динамически конфигурируемый массовый виртуальный хостинг









Источник: Хабрахабр - Веб-разработка
Оригинальная страница: [Из песочницы] Автоматические хосты для веб-разработки (FreeBSD)

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

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