- Установка модулей Apache
- Зачем нужны модули Apache
- Как работает механизм подключения модулей?
- Включение и отключение модулей
- Установка Apache под Windows
- Проблема установки Apache под Windows
- Первичная установка
- Оптимизация размещения файловых областей
- Настройка на новую файловую структуру
- Запуск сервера и проверка настройки
- Дополнительная настройка
Установка модулей Apache
Веб-серевер Apache является универсальным решением для обслуживания HTTP-запросов и обработки веб-контента. Практически для всех дистрибутивов Linux он поставляется готовым не просто для базового использования, но и позволяет организовать полноценный хостинг как минимум для ведения разработки веб-приложений. Однако, Apache всегда отличался тем, что для наиболее полного раскрытия его возможностей и потенциала он требует довольно щепетильного конфигурирования и оптимизации. Это является одновременно и недостатком и плюсом. Поскольку только таким образом можно добиться от Apache максимальной эффективности для любой специфики задач. По этой же причине (сложность настройки и оптимизации) был разработан высокопроизводительный «из коробки» веб-сервер NGINX. Ещё одним плюсом Apache является поддержка подключаемых модулей. Что делает его легко масштабируемым и позволяет адаптировать под различные задачи. Самих же модулей Apache существует огромное количество. А свободная архитектура и подробная документация позволяют разрабатывать свои собственные модули.
Зачем нужны модули Apache
Разработчики Apache вряд ли могут предусмотреть все потребности, возникающие в процессе развития веб-технологий. В такой ситуации рационально осуществлять поддержку расширения функционала с помощью отдельных подключаемых программных компонентов — модулей. Каждый модуль добавляет к базовому или текущему функционалу веб-сервера новые возможности. Таким образом, модули Apache позволяют легко оснащать его необходимыми возможностями. В то же время, если отпадает необходимость в использовании какого-либо модуля — его легко отключить. Экономя на потребляемых ресурсах.
Такой подход удобен также и тем, что модули можно (и легко) разрабатывать отдельно. Без затрагивания основного кода ядра Apache.
Как работает механизм подключения модулей?
Модули Apache представляют собой программное обеспечение (ПО) в виде динамически подключаемых библиотек — файлов с расширением *.so. Хранятся эти модули (т. е. библиотеки *.so) обычно там же, где и все библиотеки систем Linux – в каталоге /usr/lib. В котором конкретно для модулей Apache предусмотрен подкаталог apache/modules.
Установка же модуля подразумевает подключение файла библиотеки (модуль *.so) к конфигурации Apache. Чтобы он мог использовать функции, реализованные и содержащиеся в файле модуля. Подключение происходит при помощи специальных инструкций в виде директив конфигурации. Эти инструкции содержатся в конфигурационных файлах *.load и *.conf. Которые подключают модуль и определяют конфигурацию его работы соответственно.
Чтобы Apache «знал», что нужно подключить модуль, его конфигурационные файлы (модуля) должны быть в специальном каталоге /etc/apache2/mods-available . А для того, чтобы Apache «знал», как именно подключить модуль. В специальном каталоге /etc/apache2/mods-enabled должны существовать символические ссылки на соответствующие конфигурационные файлы из каталога /etc/apache2/mods-available . Наличие такой ссылки и позволяет Apache подключать дополнительные функции библиотек «из вне». При условии, что они совместимы и корректно задана конфигурация подключения.
Подобная схема подключения по принципу раздельного хранения файлов библиотек модулей, их конфигурационных файлов и связывания их символическими ссылками позволяет легко ориентироваться в конфигурации и управлять ей. Фактически подключение модулей осуществляется на уровне файловой системы (ФС). Которая представляет собой унифицированный интерфейс для этого.
Включение и отключение модулей
Подавляющее большинство модулей Apache поставляются в стандартных репозиториях практически любого дистрибутива Linux. Для их установки и подключения нужно просто воспользоваться системой управления пакетами (СУП) дистрибутива. Например, в Ubuntu для установки модуля FastCGI следует выполнить следующую команду:
Сами модули нетрудно отыскать в репозиториях по ключевым словам, например для СУП APT в Ubuntu это выглядит так:
В данном выводе пакет libapache2-mod-fcgid, как следует из его описания, и является искомым вариантом. После установки модуля нужно перезапустить Apache.
Но когда использование СУП или менеджера пакетов для установки не представляется возможным, например, когда разрабатывается собственный модуль, то необходимо выполнить вручную порядок действий, соответствующий механизму подключения, описанному в предыдущей главе:
- скопировать файл библиотеки модуля в /usr/lib/apache/modules;
- создать конфигурационный файл module_name.load в каталоге /etc/apache2/mods-available;
- в каталоге /etc/apache2/mods-enabled создать символическую ссылку на файл module_name.load из каталога /etc/apache2/mods-available;
- перезапустить веб-сервер Apache, либо перезагрузить его конфигурацию.
Содержимое файла конфигурации module_name.load (имя задано условно) представляет собой, как уже было отмечено, определение директивы загрузки функций из файла библиотеки модуля (условно name_module.so) по соответствующему пути:
Во время запуска (или перезагрузки конфигурации) Apache «просматривает» каталог /etc/apache2/mods-enabled , и по имеющимся в нём символическим ссылкам читает соответствующие файлы конфигурации из каталога /etc/apache2/mods-available . Содержащаяся в них директива LoadModule указывает Apache загрузить соответствующий модуль в свое адресное пространство.
Очевидно, что для отключения модулей нужно просто удалить соответствующую символическую ссылку в каталоге mods-enabled, а также перезапустить веб-сервер.
В некоторых дистрибутивах для удобства управления модулями и вообще конфигурацией Apache предоставляются утилиты, например из пакета apache2-utils. Этот пакет предоставляет команды, позволяющие быстро подключать и отключать модули: a2enmod и a2dismod соответственно. Например:
Эта команда включит модуль mpm-itk. При этом библиотека модуля и соответствующий конфигурационный файл mpm_itk.load уже должны присутствовать в системе.
В заключение необходимо отметить, что на примере установки дополнительных модулей Apache видно, что этот процесс далеко не самый быстрый и простой. Однако все действия абсолютно логичны, а потому легко усваиваются, избавляя от необходимости что-то запоминать или часто обращаться к справочным руководствам.
Если вы нашли ошибку, пожалуйста, выделите фрагмент текста и нажмите Ctrl+Enter.
Установка Apache под Windows
(о параметрической настройке Apache 2.4.34 можно прочитать в другой статье)
Проблема установки Apache под Windows
Основная проблема установки Web-сервера Apache под Windows заключается в том, что после первичной установки дистрибутива весь пакет (исполняемые программы, конфигурационные файлы, файлы журналов работы сервера и файловая область для размещения Web-страниц) размещается в одном месте. Это мешает нормальной эксплуатации продукта по следующим причинам:
- Разграничение прав доступа. Исполняемые файлы должны оставаться неизменными, конфигурационными файлами управляет администратор Web-сервера, а доступ к файловой области Web-страниц должны иметь разработчики и администраторы сайта. Права доступа к папке «Program Files» настроены в предположении, что в ней хранятся исполняемые модули программных пакетов, модификация которых не требуется.
- Захламление системных папок. Папка «Program Files» операционной системы Windows изначально предназначена для размещения только исполняемых файлов. Она может находиться на отдельном томе, размер которого выбирается системным администратором в предположении о его относительном постоянстве. Уж точно никто не ожидает, что в этой папке будут храниться пользовательские данные, галереи рисунков и файловый архив сайта.
Поэтому установка Apache под Windows должна проводиться в два этапа:
- Первичная установка программного пакета в выбранную папку.
- Оптимизация размещения файловых областей web-сервера и соответствующее изменение его конфигурации.
При модификации конфигурационных файлов Apache нужно постоянно помнить, что в качестве разделителя путей к файлам и папкам должен использоваться символ «прямой слеш», как в операционных системах Unix и Linux, а не «обратный слеш», как в Windows.
Первичная установка
Для установки потребуется как минимум операционная система Windows XP SP3 (для этой устаревшей версии понадобится Web-сервер, сборка которого выполнена компилятором VC9 или VC10). Современные сборки Apache операционную систему Windows 2000 не поддерживают.
Дистрибутивный пакет Apache для Windows можно загрузить с сайта одного из двух «официальных» поставщиков: Apache Lounge (только версия 2.4, с документацией) или Apache Haus (версии 2.4 и 2.2, без документации). Он представляет собой ZIP-архив, который, по замыслу поставщиков дистрибутива, нужно распаковать в корень диска C:.
Поскольку мы всё равно будем проводить оптимизацию размещения файловой структуры Web-сервера, первичную установку нужно выполнить в ту папку, которая предназначена для размещения исполняемых модулей web-сервера (exe-, lib-, so- файлов и прочих, которые не подвержены изменениям). Это может быть системная папка «Program Files» или другая по выбору системного администратора.
После первичной установки нужно вынести из «базовой» папки в другое место на диске папки с файлами, которые «идеологически» относятся не к web-серверу, а к web-сайту. Для определённости будем предполагать, после распаковки дистрибутива все его компоненты находятся в папке «C:\Program Files\Apache24», а web-сайт будет размещаться в папке «D:\www».
Оптимизация размещения файловых областей
Сразу после установки структура папок программного пакета Apache выглядит следующим образом:
bin — исполняемые файлы Web-сервера.
cgi-bin — CGI-сценарии Web-сайта.
conf — конфигурационные файлы Web-сервера.
error — страницы ошибок протокола HTTP.
htdocs — файловая область Web-сайта (проще говоря, здесь размещается Web-сайт).
icons — пиктограммы Web-сервера
include — подключаемые файлы заголовков (h-файлы), небоходимы при сборке Web-сервера компилятором VC.
lib — библиотечные файлы Web-сервера.
logs — журналы работы Web-сервера.
manuals — документация в формате HTML.
modules — дополнительные программные модули Web-сервера (so-файлы).
Из перечисленных выше папок четырём (cgi-bin, conf, htdocs и logs) не место в базовой папке Web-сервера. Из нужно скопировать в рабочую папку Web-сайта: «D:\www». Исходные папки можно было бы удалить, однако они могут понадобится для восстановления начальной ситуации, если в ходе настройки Web-сервера что-то пойдёт не так. С другой стороны, если их оставить на прежнем месте, то из-за неполной настройки Web-сервера может случиться так, что использоваться будут именно эти папки, а не те, которые мы хотим. Поэтому после копирования их лучше просто переименовать в cgi-bin.0, conf.0, htdocs.0 и logs.0 соответственно.
Настройка на новую файловую структуру
Теперь можно отразить фактическую файловую структуру Web-сервера в параметрах конфигурационного файла «D:\www\conf\httpd.conf»:
- ServerRoot «C:/Program Files/Apache24» # путь к базовой папке Web-сервера
- PidFile «D:/www/logs/httpd.pid» # идентификатор процесса Web-сервера
- DocumentRoot «D:/www/htdocs» # здесь размещается Web-сайт
- # свойства папки с Web-сайтом
… - ErrorLog «D:/www/logs/error.log» # журнал ошибок Web-сервера
- CustomLog «D:/www/logs/access.log» common # журнал работы Web-сервера
- ScriptAlias /cgi-bin/ «D:/www/cgi-bin/» # папка серверных CGI-сценариев
- # свойства папки серверных сценариев
… - TypesConfig D:/www/conf/mime.types # описания MIME-типов
- Include «D:/www/conf/extra/httpd-manual.conf» # настройка для сопроводительной документации
Обратите внимание, что в п. 2 нужно добавить в конфигурационный файл строку с параметром PidFile, т. к. в эталонном конфигурационном файле этот параметр отсутствует. Остальные параметры в конфигурационном файле уже присутстсвуют — нужно отыскать строки, содержащие их, и заменить исходные пути к папкам на новые.
Пунктом 10 предполагается, что для включения доступа к HTML-документации по ссылке «http://localhost:8080/manual» нужно раскомментировать соответствующую строку с параметром Include и указать новый путь к подключаемому конфигурационному файлу. Однако поскольку местоположение документации тоже изменилось, то потребуется дополнительно внести изменение в файл «D:\www\conf\extra\httpd-manual.conf» по аналогии с п. 3 и 8:
- AliasMatch ^/manual(?:/(?:da|de|en|es|fr|ja|ko|pt-br|ru|tr|zh-cn))?(/.*)?$ «C:/Program Files/Apache24/manual$1«
- …
Запуск сервера и проверка настройки
Поскольку мы изменили файловую структуру Web-сервера, запускать исполняемый модуль сервера нужно командой (её можно записать в bat- или cmd-файл): «C:\Program Files\Apache24\bin\httpd.exe» -w -f «D:\www\conf\httpd.conf» -d «C:\Program Files\Apache24\.»
Запущенный в режиме пользовательского приложения Apache (т. е. запущенный с помощью только что приведенной командной строки) может быть остановлен комбинацией клавиш [Ctrl]+[C]. Если же при этом возникли какие-нибудь трудности, то можно использовать такую команду: taskkill /f /IM httpd.exe
Чтобы установить Apache в качестве службы, надо выполнить команду: «C:\Program Files\Apache24\bin\httpd.exe» -k install -f «D:\www\conf\httpd.conf» -d «C:\Program Files\Apache24\.»
Запуск и останов службы Web-сервера Apache производится командами: «C:\Program Files\Apache24\bin\httpd.exe» -k start и «C:\Program Files\Apache24\bin\httpd.exe» -k stop соответственно.
Удалить Apache из списка служб Windows можно с помощью команды: «C:\Program Files\Apache24\bin\httpd.exe» -k uninstall
Проверка правильности установки и первоначальной настройки Web-сервера выполняется вводом в Web-браузере URL: «http://localhost:80/». Если всё было выполнено правильно, должна открыться страничка с текстом «It works!»
Если устанавливалась сопроводительная документация в HTML-формате, то она должна быть доступна по ссылке «http://localhost:80/manual/»
Apache ведёт протокол доступа к сайту в файле «D:\www\conf\access.log». Сведения о проблемах в работе сервера записываются в файл «D:\www\conf\error.log». Его анализ может быть особенно полезен при настройке выполнения CGI-сценариев.
Дополнительная настройка
В дополнение к перечисленным выше настройкам нужно проверить значение параметра Listen, которым задаются настройки сетевого интерфейса (ip-адрес и номер TCP-порта), на котором сервер будет принимать клиентские подключения. Если Apache используется индивидуальным Web-разработчиком, то можно рекомендовать такую конфигурацию:
Listen 127.0.0.1:8080 # параметры сетевого интерфейса
Номер TCP-порта не должен конфликтовать с другим программным обеспечением, установленным на компьютере. Так, стандартный порт HTTP 80 часто бывает занят клиентом Skype. Для совместного использования сервера в сети нужно указать правильный IP-адрес или сетевое имя компьютера, на котором устанавливается Web-сервер.
Web-сервер Apache чаще всего используется совместно с интерпретаторами таких языков серверных сценариев, как PHP и Perl. Для того, чтобы на Web-сайте могли использоваться сценарии PHP (предполагаем, что PHP установлен в папку C:\PHP5), нужно добавить в конфигурационный файл «D:\www\conf\httpd.conf» следующие строки:
- LoadModule php5_module «C:/PHP5/php5apache2_2.dll»
- AddType application/x-httpd-php .php
- PHPIniDir «C:/PHP5»
Нужно отметить, что в папке PHP5 должен существовать конфигурационный файл php.ini, созданный на основе файла php.ini-development (если сервер используется для разработки Web-сайтов) или php.ini-production (это настоящий Web-сервер). Чтобы модули PHP могли найти все необходимые им динамические библиотеки, путь к папке C:\PHP5 должен быть прописан в переменной PATH среды окружения Windows.
Серверные CGI-сценарии на языке Perl уже должны выполняться при соблюдении двух условий:
- Интерпретатор языка Perl установлен на этом компьютере.
- В первой строке файлов сценариев правильно указан путь к интерпретатору Perl, например: #!C:/PERL/bin/perl.exe -w
Для проверки можно ввести в браузере URL: http://localhost:8080/cgi-bin/printenv.pl, предварительно подправив первую строку сценария printenv.pl в соответствии с п. 2.
Остальные нюансы настройки Web-сервера Apache под Windows выходят за рамки этой статьи.
Публичное использование материалов сайта допускается только при условии прямой гиперссылки на этот интернет-ресурс.