Подготовка директорий для виртуальных хостов.
Apache способен одновременно обслуживать столько сайтов, сколько необходимо, лишь бы ресурсов сервера было достаточно. Эту возможность используют:
- shared-хостинги (самая доступная разновидность хостингов);
- владельцы нескольких сайтов, размещающие их на одном виртуальном или физическом сервере;
- разработчики, работающие локально с несколькими проектами.
Для начала создадим в коревой директории сервера папку для нашего нового сайта:
В качестве примера я выбрал site.com. Вы можете заменить его на доменное имя своего сайта или любое другое имя, если доступ извне не требуется. Директория public_html не обязательна, контент сайта можно хранить и уровнем выше, но такая структура позволяет размещать в папке проекта данные, которые не должны быть доступны пользователям — логи, например.
Для удобства передадим права на корневую директорию своему пользователю:
Далее помещаем файлы сайта в ранее созданную папку public_html.
Настраиваем виртуальные хосты.
Теперь нужно создать конфигурационный файл для нашего хоста. Он имеет тот же синтаксис, что и apache2.conf и .htaccess, о которых я рассказывал в прошлой статье. Один такой файл уже находится в директории /etc/apache2/sites-available с названием 000-default.conf. Просто скопируем его сюда же, назначив ему в качестве названия имя нашего хоста и прибавим .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:
После этого по адресу 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 после имени файла определяет формат лога, но я не буду останавливаться на этом вопросе.
Поскольку мы еще не успели создать директорию, в которой планируем хранить логи, сделаем это сейчас:
Пришло время перезапустить сервер и проверить содержимое папки с логами:
Вот что получилось в моем случае:
А вот содержимое apache_custom.log после того, как я открыл в браузере site.com:
Эта запись говорит о том, кто, когда, откуда и каким образом получал доступ к сайту. Кстати, для отслеживания статистики посещений совсем не обязательно читать сырые логи. Существуют разнообразные системы, обрабатывающие эти записи и представляющие статистику в удобной и наглядной форме.
P.S.
Так как просмотров статей из данной серии было очень мало, больше материала про LAMP в ближайшее время не предвидится.