Базовая настройка веб-сервера Apache онлайн урок.


В этом уроке мы рассмотрим базовую настройку веб сервера Apache, а именно - как добавить или настроить виртуальный хост.


Случай Ubuntu, Debian


Конфигурация Apache для этих операционных систем хранится в папке /etc/apache2. Главный конфигурационный файл называется apache2.conf - в нем возможна настройка практически любого характера. Нас же интересует папка sites-available. В ней хранятся файлы с конфигурацией виртуальных хостов (отдельных сайтов). Изначально, в этом каталоге будут находиться два файла - default.confdefault-ssl.conf. Файл default-ssl.conf хранит конфигурацию для виртуальных хостов, которые используют защищенное соединение (HTTPS протокол). Мы же будет работать с конфигурацией default.conf.


Как правило в этом файлу уже есть конфигурация виртуального хоста, файлы которого размещены в папке/var/www/html. В самом конфигурационном файле содержится некоторое количество комментариев как краткая инструкция по использованиюэтого файла. Если убрать комментарии, то мы увидим следующую конфигурацию:


<VirtualHost *:80>
#ServerName www.example.com

ServerAdmin webmaster@localhost
DocumentRoot /var/www/html

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

Открывающий тег VirtualHost со значением 80 означает, что этот виртуальный хост будет использован на порте 80. Как правило этот порт всегда используется веб сервером. Далее мы видим закомментированную строку ServerName. В данном случае она не обязательна, поскольку это единственный виртуальный хост. Но вообще говоря эта директива должна содержать по сути строку с доменом. ServerAdmin - это директива, которая содержит адрес электронной почты системного администратора. Эта опция не влияет на работу хоста по сути. DocumentRoot - это самая важна директива в этой конфигурации. Она указывает из какой папки веб сервер должен будет брать файлы по запросу клиента. Тут указан дефолтный путь, который мы привели выше. Последние две директивы определяют путь к хранилищу логов.


Для примера, добавим в эту конфигурацию еще один виртуальный хост, который будет по сути локальным хостом для разработки приложения. Хост назовем myproject.dev, а файлы для него разместим в домашней папке пользователя mike:


<VirtualHost *:80>
ServerName myproject.dev
DocumentRoot /home/mike/myproject

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

Этот тег VirtualHost мы просто добавляем в тот же файл default.conf после дефолтного хоста. Далее необходимо перезагрузить сервер командой service apache2 restart, которую скорее всего необходимо будет выполнить от лица супер-пользователя: sudo service apache2 restart. После этого необходимо также внести в файл /etc/hosts строчку


127.0.0.1 myproject.dev

Это необходимо для того, чтобы браузер не пытался отправить запрос на DNS сервер для определения IP-адреса хоста, а работал в рамках локальной сети. Теперь мы можем обратиться к нашему новому проекту, перейдя по ссылке http://myproject.dev.


Windows + XAMPP


Если Вы используете XAMPP, то по сути необходимо выполнить те же шаги. Для начала найдем папку apache/conf/extra в базовой папке XAMPP. Там находится файл httpd-vhosts.conf. В него добавим точно такой же тег VirtualHost из примера выше. После этого необходимо перегрузить Apache используя клиентский интерфейс XAMPP. Далее найдем файл hosts. На ОС Windows он расположен по адресу C:/Windows/System32/drivers/etc/hosts (при условии что Windows расположена именно на С:). В него вносим те же изменения что и для случая с Linux. Готово! Таких хостов Вы можете добавлять сколько угодно.


В реальных условиях, когда необходимо настроить веб сервер на удаленной машине для работы сайта, редактировать файл hosts нету необходимости. Эту работу за Вас делает DNS сервер.