суббота, 25 июля 2015 г.

Настройка виртуальных хостов в Apache2 (в linux)

Основные настройки сервера можно найти в /etc/apache2 (debian):
  • apache2.conf – общие настройки, их можно и не трогать;
  • sites-available/*.conf – доступные настройки для сайтов;
  • sites-enabled/*.conf – настройки активных сайтов;

Виртуальные хосты

Чтобы добавить сайт, нужно настроить виртуальный хост для него (нужен домен). То есть по запросу сайта по адресу example.com будут задействованы одни настройки, а если на этом же сервере, но запрос сайта будет по адресу test.com, то будут задействованы другие настройки. Таким образом, разегистрировав несколько доменов или используя несколько поддоменов, можно разместить на одном сервере несколько сайтов, независимых друг от друга.
Для включения нужно создать файл в sites-available/ с расширением (обязательно) .conf, можно скопировать файл по умолчанию, находящийся в той же папке, чтобы не писать с нуля.
Примерное содержание файла:
<VirtualHost *:80>
 ServerName example.ru
 ServerAlias www.example.ru

 ServerAdmin admin@example.ru
 DocumentRoot /var/www/example.ru/
 
 <Directory /var/www/example.ru>
  AllowOverride All
  Order allow,deny
  allow from all
 </Directory>

 ErrorLog ${APACHE_LOG_DIR}/error.log
 CustomLog ${APACHE_LOG_DIR}/access.log combined

</VirtualHost>

  • *:80 указывает, что с любых адресов будут обрабатываться запросы на порт 80.
  • ServerName – адрес виртуального хоста, т.е. все запросы на сервер по доменному  имени example.ru будут обрабатываться именно с этими настройками.
  • ServerAlias – просто дополнительное имя.
  • ServerAdmin – почта администратора сервера (не знаю зачем, и как действует).
  • DocumentRoot – расположение данных сайта.
  • Directory… – настройки каталога, каталог может быть любым, в том числе и вложенным в основной, и даже корень /.
    • AllowOverride All – позволить перезаписывать настройки для каталога из файлов .htaccess. Остальные настройки не знаю, оставил, как было по умолчанию.
  • ErrorLog и CustomLog – логи сервера, также есть настройки для уровня ведения логов.

Включение виртуального хоста

Чтобы включить хост, нужно запустить команду a2ensite <фал настроек (без пути)> от суперпользователя, apache сделает необходимые действия и сайт будет доступен.
Теперьм можно наполнять папку /var/www/example.ru/
После изменения конфигов нужно запускать # service apache2 reload, а после включения/выключения сайтов # service apache2 restart.

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

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