Мы продолжаем рассказывать о пошаговой настройке VDS с операционной системой Ubuntu 14.04.
Предыдущая статья нашего цикла была посвящена веб-серверу Nginx, а сегодня мы поговорим об Apache.
Наряду с Nginx, Apache является одним из самых распространенных веб-серверов в мире и демонстрирует свою надежность уже не один десяток лет. Впрочем, подробнее о нем мы уже рассказывали в одной из предыдущих статей.
Для начинающих администраторов Apache может стать даже более подходящим выбором, чем его альтернативы - являясь гибким и мощным инструментом, Apache при этом достаточно прост в настройке и использовании.
Установка Apache
Для того чтобы установить веб-сервер Apache, мы будем использовать менеджер пакетов Ubuntu apt:
$ sudo apt-get update $ sudo apt-get install apache2
После завершения установки введите в адресной строке браузера IP-адрес Вашего сервера. Если установка прошла успешно, Вы увидите стандартное приветственное окно Apache:
На этом же этапе можно установить дополнительные необходимые модули.
Например, если Вам в дальнейшем потребуются инструменты для анализа работы сервера, рекомендуем установить модуль utils - он содержит полезные утилиты для тестирования и администрирования сервера.
$ sudo apt-get install apache2-utils
Если Вам будет необходимо разделять права между пользователями, рекомендуем также установить модуль mpm-itk. При этом нужно будет настроить дополнительные параметры виртуальных хостов - информацию об этом Вы можете найти в открытых источниках сети.
В рамках данной инструкции мы не будем касаться установки и настройки данного модуля.
Для работы сервера с различными языками программирования (а также для расширения функционала сервера) можно установить библиотеки.
Если Ваш сайт использует PHP, необходимая библиотека устанавливается следующим образом:
$ sudo apt-get install libapache2-mod-php5
При использовании python полезно расширение libapache2-mod-wsgi;
при использовании Rails and Rack - libapache2-mod-passenger.
Установка происходит аналогичным образом - просто замените наименование библиотеки в команде.
Теперь перейдем к непосредственной настройке Apache.
Настройка виртуальных хостов
Важной особенностью Apache является возможность создания виртуальных хостов, настраиваемых независимо друг от друга, что позволяет размещать на VDS-сервере сразу несколько сайтов. За конфигурацию каждого сайта будет отвечать конкретный виртуальный хост.
Даже если на начальном этапе Вы планируете размещать только один сайт на сервере, мы рекомендуем в любом случае использовать виртуальные хосты. Это обеспечит Вам удобство администрирования и обслуживания Вашего проекта, а в дальнейшем и легкость расширения при необходимости.
По умолчанию Apache содержит стандартный файл конфигурации 000-default.conf, который хранится в директории /etc/apache2/sites-available.
Файлы наших виртуальных хостов будут храниться здесь же, и мы сформируем их на основе 000-default.conf.
Однако сначала мы отключим стандартный файл конфигурации командой:
$ sudo a2dissite 000-default
Теперь скопируем его содержимое в файл, который будет содержать настройки Вашего сайта.
В наших примерах в качестве имени сайта мы будем использовать site1, Вам необходимо заменить это значение на имя Вашего сайта.
Вы можете давать конфигурационным файлам любые названия, но мы рекомендуем обозначать их так, чтобы в дальнейшем Вы легко могли определить, к какому сайту относится конкретный файл.
$ sudo cp /etc/apache2/sites-available/000-default.conf /etc/apache2/sites-available/site1.conf
Далее нам нужно отредактировать конфигурационный файл. Откроем его командой:
$ sudo nano /etc/apache2/sites-available/site1.conf
Приведем содержимое файла к следующему виду:
<VirtualHost *:80> ServerName site1.com DocumentRoot /var/www/site1/public_html <Directory /var/www/site1/public_html> AllowOverride All Require all granted </Directory> ErrorLog /var/www/site1/error.log CustomLog /var/www/site1/access.log combined </VirtualHost>
Поясним приведенные выше параметры.
Блок <VirtualHost> включает в себя набор директив, задающих настройки для конкретного виртуального хоста.
Имя этого хоста Вы указали в параметре ServerName - полное доменное имя Вашего сайта.
Далее следует директива DocumentRoot - она задает путь до директории, в которой хранятся файлы сайта site1 (все необходимые директории мы создадим позже).
Следующий параметр - блок <Directory>. Он задает настройки, которые будут применены для конкретной папки.
В данном случае:
- AllowOverride All - разрешение допускать настройки, заданные в .htaccess;
- Require all granted - доступ к каталогу разрешен всем.
В параметре ErrorLog мы указали расположение файла с логами ошибок.
В CustomLog - расположение файла с логами доступа.
Этого набора директив достаточно для функционирования виртуального хоста, хотя список не является исчерпывающим. Дополнительно могут указываться, например, ServerAdmin (e-mail администратора сервера), ServerAlias (альтернативное имя сайта), AssignUserID (пользователь; настройка этого параметра необходима при использовании mpm-itk) и др. Со списком всех возможных директив и их описанием можно ознакомиться на сайте Apache (информация на английском языке).
После указания всех необходимых параметров закройте файл, сохранив изменения.
Далее мы создадим все необходимые папки, которые мы прописали в конфигурационном файле, и установим права на них:
$ sudo mkdir /var/www/site1/ $ sudo chown www-data:www-data /var/www/site1/ $ sudo mkdir /var/www/site1/public_html $ sudo chown www-data:www-data /var/www/site1/public_html
На этом этапе настройка виртуального хоста завершена, но желательно, конечно, проверить корректность его работы.
Для этого рекомендуем Вам создать index-файл в директории public_html:
$ nano /var/www/site1/public_html/index.html
Внесите в него любой самый простой html-код для проверки и сохраните документ.
Например:
<html> <head> <title>Удалось!</title> </head> <body> <h1>Виртуальный хост работает!</h1> </body> </html>
Далее включите сайт следующей командой:
$ sudo a2ensite site1
И выполните перезагрузку Apache:
$ sudo service apache2 restart
Теперь необходимо ввести в браузере адрес сайта, виртуальный хост для которого Вы настраивали. Если все работает, как нужно, на экране будет отражено содержимое созданного Вами индексного файла.
Надеемся, все получилось :)
Модули Apache
Apache имеет множество разнообразных модулей, с помощью которых можно расширять его функциональность.
Список доступных модулей можно просмотреть в директории /etc/apache2/mods-available
Список уже включенных модулей - в директории /etc/apache2/mods-enabled
Перейти в директорию можно командой cd, например:
$ cd /etc/apache2/mods-enabled
Чтобы просмотреть содержимое текущего каталога, наберите:
$ ls
Для включения и выключения нужных Вам модулей используйте команды a2enmod и a2dismod.
Например, Вы можете включить CGI-скрипты следующей командой:
$ sudo a2enmod cgi
С информацией о каждом модуле можно ознакомиться на сайте Apache.
Команды для управления сервером Apache
Для запуска веб-сервера используйте команду:
$ sudo service apache2 start
Для перезагрузки:
$ sudo service apache2 restart
Если Вам требуется сделать «мягкую» перезагрузку, то есть перезапуск без завершения всех процессов, вводите:
$ sudo service apache2 reload
Для остановки веб-сервера существует следующая команда:
$ sudo service apache2 stop
Мы надеемся, что информация в этой статье оказалась для Вас полезной и помогла справиться с установкой и настройкой веб-сервера Apache.
Если у Вас возникли вопросы, спрашивайте в комментариях, мы будем рады Вам помочь.
Комментарии