среда, 18 мая 2011 г.

Как развернуть многосайтовый Apache2 на локальной машине с Debian

Для веб-разработки, особенно если ты фрилансер, бывает необходимо вести одновременно несколько веб-сайтов, и держать, соответственно, их девелопмент-версии на локальной машине. Настроить локальный Апач в Debian 6.0 довольно просто, надо только догадаться, как. :)


Общий план

Настраивать многосайтовость будем на основе name-based virtual hosts, в документации к Apache2 это находится здесь: Name-based Virtual Host Support. План работы такой:

  1. Создаём каталог для веб-сайта
  2. Создаём новый файл конфигурации для этого веб-сайта
  3. Прописываем сайт в файле /etc/hosts

Создание виртуального хоста

В Apache2 все виртуальные хосты расписаны отдельными конфигами в каталоге

/etc/apache2/sites-available/
Этот каталог неудобен тем, что доступ в него есть только у рута, а нам может понадобиться несколько раз править конфиг в процессе разработки. Поэтому создаём новый текстовый файл в домашнем каталоге и вписываем в него буквально следующее (этого будет достаточно):
<VirtualHost *:80>
       ServerName <имя сервера>
       DocumentRoot <абсолютный путь к каталогу>
       <Directory />
               Options FollowSymLinks
               AllowOverride All
       </Directory>
  </VirtualHost>

Имя сервера будет тем именем, которое мы будем в итоге набирать в адресной строке браузера, чтобы добраться до локального сайта, например, «mysite.localhost».

После того, как конфиг создан, делаем на него симлинк с каким-нибудь именем в каталоге

/etc/apache2/sites-enabled/

Создание локального доменного имени

Для того, чтобы name-based virtual hosts работали, надо, чтобы Апач получал запрос к конкретному доменному имени, пусть даже запросы на разные доменные имена идут на один и тот же IP-адрес.

Пишем в /etc/hosts следующую строчку:

127.0.0.1 <имя сервера>
Где «имя сервера» — это в точности ServerName нашего веб-сайта, для которого мы писали конфиг на предыдущем этапе.

Всё, перезапускаем Апач.