Lighttpd

Lighttpd создаем виртуальные хосты автоматически

Posted in Lighttpd, Server Configuration on December 6th, 2009 by Yaroslav Vorozhko – Be the first to comment

Для создания автоматических вартуальных хостов нам потребуется модуль evhost. Этот модуль идет в стандартной поставке Lighttpd.
В секции modules расскомментируйте соответсвующую строку или добавте новую, если модуля нет в списке.
Первое, что нам надо знать - это то как lighttpd читает и парсит URI с помощью этого модуля.

CODE:
  1. %% => % sign
  2.   %0 => domain name + tld
  3.   %1 => tld
  4.   %2 => domain name without tld
  5.   %3 => subdomain 1 name
  6.   %4 => subdomain 2 name
  7.   %_ => full domain name

Нас интересуют сабдомены первого уровня, которые хранятся в переменной %3.
Создадим для них специальный конфиг:

CODE:
  1. $HTTP["host"] =~ ".*\.example\.org" {
  2.       evhost.path-pattern = "/home/%3/public_html/"
  3.   }

Этим конфигом мы будем перехватытвать все запросы обращенные к example.org и всем его сабдоменам.
Директива evhost.path-pattern устанавливает document root для каждого сабдомена.
Note: не указывайте server.document-root как путь по умолчанию к вашим сабдоменам. Это может быть опасно.

Теперь каждый каталог в /home будет считатся сабдоменом для example.org.
Незабудте также прописать каждый сабдомен в DNS или /etc/hosts.
Перезапускаем Lighttpd и проверяем.
Спасибо!