Ubuntu: настройка VirtualHost в Apache

Автор: | 02/25/2013
 

apache_logoФайлы сервера Apache хранятся в каталоге /etc/apache2, который включает в себя такие директории:

# ls -dl */
drwxr-xr-x 2 root root 4096 Фев 25 08:46 conf.d/
drwxr-xr-x 2 root root 4096 Фев 25 08:37 mods-available/
drwxr-xr-x 2 root root 4096 Фев 25 08:37 mods-enabled/
drwxr-xr-x 2 root root 4096 Фев 25 11:54 sites-available/
drwxr-xr-x 2 root root 4096 Фев 25 11:55 sites-enabled/

В этом же каталоге находится основной конфигурационный файл сервера — apache2.conf.

Настройки сайтов, которые обслуживает сервер, находятся в каталоге /etc/apache2/sites-available. А активные сайты — в каталоге /etc/apache2/sites-enabled, файлы в котором являются просто ссылками на каталог /etc/apache2/sites-available:

# pwd
/etc/apache2/sites-enabled

# ls -la
итого 8
drwxr-xr-x 2 root root 4096 Фев 25 11:55 .
drwxr-xr-x 7 root root 4096 Фев 25 08:37 ..
lrwxrwxrwx 1 root root   26 Фев 25 08:37 000-default -> ../sites-available/default
lrwxrwxrwx 1 root root   34 Фев 25 11:55 rtfm.co.ua.conf -> ../sites-available/rtfm.co.ua.conf

Для добавления нового VirtualHost — в каталоге /etc/apache2/sites-available создаём файл с именем sitename.conf, например — rtfm.co.ua.conf.

В него добавляем обычные параметры, как и на любой другой платформе:

# cat rtfm.co.ua.conf
<virtualhost *:80>
ServerName rtfm.co.ua
ServerAlias www.rtfm.co.ua
DocumentRoot /var/www/rtfm.co.ua
ErrorLog     /var/log/apache/rtfm.co.ua-error.log
CustomLog  /var/log/apache/rtfm.co.ua-access.log combined
</virtualhost>

Теперь выполним команду:

# a2ensite /etc/apache2/sites-available/rtfm.co.ua.conf

Которая создаст символическую ссылку в каталоге /etc/apache2/sites-enabled.

Если при выполнении a2ensite вы получаете ошибку вида:

# a2ensite /etc/apache2/sites-available/rtfm.co.ua.conf
ERROR: No site found matching /etc/apache2/sites-available/rtfm.co.ua.conf!

Или такую:

# a2ensite rtfm.co.ua.conf
ERROR: Site rtfm.co.ua does not exist!

Укажите путь к файлу конфигурации без указания полного пути:

# pwd
/etc/apache2/sites-available

# a2ensite rtfm.co.ua.conf
Enabling site rtfm.co.ua.conf.
Run ‘/etc/init.d/apache2 reload’ to activate new configuration!

Перезапускаем Apache:

# service apache2 restart

Сайт готов к работе.

Подробнее о конфигурировании VirtualHost-ов можно почитать в статье  Apache: примеры создания VirtualHost.