LAMP в Ubuntu: виртуальные хосты.

В завершающей статье из цикла LAMP я расскажу о виртуальных хостах. Мы свяжем выбранное доменное имя с директорией, в которой хранится отдельный сайт. Кроме того, мы зададим отдельные файлы логов для этого хоста.

Цикл статей о LAMP:
  1. LAMP в Ubuntu: базовая установка и настройка компонентов веб-сервера.

  2. LAMP в Ubuntu: apache2.conf и .htaccess

  3. LAMP в Ubuntu: виртуальные хосты.

Подготовка директорий для виртуальных хостов.

Apache способен одновременно обслуживать столько сайтов, сколько необходимо, лишь бы ресурсов сервера было достаточно. Эту возможность используют:
  • shared-хостинги (самая доступная разновидность хостингов);
  • владельцы нескольких сайтов, размещающие их на одном виртуальном или физическом сервере;
  • разработчики, работающие локально с несколькими проектами.

Для начала создадим в коревой директории сервера папку для нашего нового сайта:
sudo mkdir /var/www/html/site.com/public_html
В качестве примера я выбрал site.com. Вы можете заменить его на доменное имя своего сайта или любое другое имя, если доступ извне не требуется. Директория public_html не обязательна, контент сайта можно хранить и уровнем выше, но такая структура позволяет размещать в папке проекта данные, которые не должны быть доступны пользователям — логи, например.

Для удобства передадим права на корневую директорию своему пользователю:
sudo chown -R имя_пользователя /var/www/html
Далее помещаем файлы сайта в ранее созданную папку public_html.

Настраиваем виртуальные хосты.

Теперь нужно создать конфигурационный файл для нашего хоста. Он имеет тот же синтаксис, что и apache2.conf и .htaccess, о которых я рассказывал в прошлой статье. Один такой файл уже находится в директории /etc/apache2/sites-available с названием 000-default.conf. Просто скопируем его сюда же, назначив ему в качестве названия имя нашего хоста и прибавим .conf в конце:
sudo cp /etc/apache2/sites-available/000-default.conf /etc/apache2/sites-available/site.com.conf

Откроем созданный нами файл:
sudo gedit /etc/apache2/sites-available/site.com.conf
Здесь нам нужно определить имя виртуального хоста и его корневую директорию:
ServerName site.com
DocumentRoot /var/www/html/site.com/public_html

При желании можно указать e-mail администратора (ServerAdmin), дополнительные имена, по которым будет доступен сайт (ServerAlias), а также добавить свои директивы. Полный список и описания есть в документации Apache.

Если у вас нет зарегистрированного доменного имени или оно не привязано к ip сервера, свяжем их на локальном уровне. Для этого откроем файл /etc/hosts и добавим туда следующее:
127.0.0.1 site.com

Теперь, набрав в адресной строке браузера site.com, мы будем перенаправлены на 127.0.0.1, то есть, на свой же компьютер.

Если сайт находится на удаленном сервере, а не на домашнем компьютере, вместо 127.0.0.1 нужно будет вписать ip сервера. Но даже в этом случае файл hosts нужно править на локальной машине, а не на удаленной.

Остались последние штрихи. Нужно включить виртуальный хост и перезапустить apache:
sudo a2ensite site.com.conf
sudo systemctl restart apache2

После этого по адресу site.com будут доступны файлы, лежащие в
/var/www/html/site.com/public_html.
Для создания еще одного виртуального хоста повторите процедуру.

Отдельные логи для виртуальных хостов.

Для удобства мы можем настроить запись логов каждого виртуального хоста в свой отдельный файл. Укажем расположение лога ошибок Apache, установив в конфиге хоста (в нашем случае это /etc/apache2/sites-available/site.com.conf) соответствующую директиву:
ErrorLog /var/www/html/site.com/logs/apache_err.log
Тут же определяем и общий лог хоста:
CustomLog /var/www/html/site.com/logs/apache_custom.log common
Дополнительный параметр common после имени файла определяет формат лога, но я не буду останавливаться на этом вопросе.
Поскольку мы еще не успели создать директорию, в которой планируем хранить логи, сделаем это сейчас:
mkdir /var/www/html/site.com/logs
Пришло время перезапустить сервер и проверить содержимое папки с логами:
ls /var/www/html/site.com/logs
Вот что получилось в моем случае:
А вот содержимое apache_custom.log после того, как я открыл в браузере site.com:
Эта запись говорит о том, кто, когда, откуда и каким образом получал доступ к сайту. Кстати, для отслеживания статистики посещений совсем не обязательно читать сырые логи. Существуют разнообразные системы, обрабатывающие эти записи и представляющие статистику в удобной и наглядной форме.

P.S.
Так как просмотров статей из данной серии было очень мало, больше материала про LAMP в ближайшее время не предвидится. 

Поделиться:

Если у Вас возникли вопросы.

Приглашаю задавать их на сервисе вопросов и ответов: Ask LinuxRussia.com.
Там Ваши вопросы не потеряются и Вы быстрее получите ответ, в отличие от комментариев.

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

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