Настройка Virtualhost в Apache 2
Долго думал у чём написать сегодня, и всё же решил осветить такую проблему, как настройка VirtualHost в Apache 2. Лично меня, по началу конфигурация сервера apache 2 немного ввела в ступор. Дело в том, что, вспоминая конфигурационные файлы виртуальных хостов в старом apache, а именно virtual.conf, в apache 2 я и близко такое не нашёл:). Но как говорится: глаза боятся, а руки делают.
Открыл по привычке файл httpd.conf в /etc/apache2, я с удивлением обнаружил, что он пуст. Оглядевшись вокруг, я заметил файл apache2.conf, в нём и были привычные параметры конфигурации апач.
Среди параметров конфигурации я не нашёл привычного подключения файла virtual.conf, но нашёл включении целой директории /etc/apache2/sites-enable/. Не много полазив по папкам всё стало ясно. Дело в том, что, а apache 2 для подключения новых виртуальных хостов используются символический ссылки на файлы которые находятся в директории sites-available. А в этой директории лежат отдельные файлы, для настройки под каждый виртуальный хост. Далее я привожу пример такого файла с подобными пояснениями.
‹VirtualHost *:80› // звёдочка означает что сайт будет доступен с любого интерфейса.
ServerAdmin webmaster@localhost // email адрес администратора сайта
ServerName adm-blog.ru // имя нашего виртуального хоста
ServerAlias www.adm-blog.ru //алиас – используется для того, чтобы сайты был доступен и с www и без
DocumentRoot /home/adm-blog.ru/www/ // директория в которой лежит наш сайт
‹Directory /home/adm-blog.ru/www/› // задаём параметры для директории.
Options None
AllowOverride All // директива говорит апач, читать ли файлы .htaccess
Order allow,deny // устанавливает порядок работы директив Deny и Allow
allow from all // разрешает доступ для всех
‹/Directory›
ErrorLog /home/adm-blog.ru/error.log // путь к файлу лога ошибок
LogLevel warn // уровень ведения лога. В данном случае стоит уровень «предупреждение»
CustomLog /home/adm-blog.ru/access.log combined // путь в файлу логу доступа
‹/VirtualHost›
А теперь давайте с Вами всё обобщим и соберём всё воедино. Для того, чтобы добавить виртуальный домен в apache 2 надо, создать файл, например, с именем adm-blog_ru содержанием как показано выше, и сохранить его в каталоге sites-available. Затем добавить символическую ссылку на него в каталог sites-enable:
ln /etc/apache2/sites-enable/adm-blog_ru /etc/apache2/ sites-enable/
Ну а после просто перезагрузить сервер apache командой:
/etc/init.d/apache2 restart
Как видите, всё гениальное как всегда просто.
Кстати, многие модули Apache могу быть крайне полезны. Например, модуль mod_status, может быть полезен в мониторинге нагрузки на сервер.