Начиная с apache2-2.2.4-alt14 для конфигурирования apache2 используется доработанная Debian`овская схема. Основные отличия от оригинала (ссылки с его описанием не нашёл): 1. Конфигурационные файлы conf/{mods,sites}-{available,enabled} -- передраны из Debian без существенных изменений. По их образу и подобию созданы conf/{ports,extra}-{available,enabled}. Содержимое: а) conf/mods-available/<имя модуля>.load -- файлы обеспечивающие загрузку модулей и содержащие описание их зависимостей. Примерной формат: # Depends: <имя требуемого модуля> LoadModule ... б) conf/mods-available/<имя модуля>.conf -- конфигурация для модуля <имя модуля> (если она нужна). в) conf/sites-available/*.conf -- конфигурации для сайтов (виртуалхостов). г) conf/ports-available/*.conf -- конфигурирования слушаемых портов. д) conf/extra-available/*.conf -- конфигурирования компонент общих для всех сайтов. За прототип взято содержимое conf/extra в апстримного apache-2.2.4 (не всё: часть переехала в другие каталоги). е) conf/{mods,sites,ports,extra}-enabled/*.{conf,load} -- симлинки на соответствующие conf/{mods,sites,ports,extra}-available/*.{conf,load}, используемые в httpd2.conf. 2. Утилиты /usr/sbin/a2{en,dis}{mod,site}, управляющие созданием/удалением симинков conf/*-enabled/* на соответствующие conf/*-available/* передраны из Debian без существенных изменений. /usr/sbin/a2{en,dis}{port,extra} -- добавлены, и имеют аналогичные функционал и назначение. 3. Добавлена система автоматизированного управления включением/выключением компонент. Состоит из утилиты /usr/sbin/a2chkconfig и конфигов conf/{mods,sites,port,extra}-start.d/*.conf для неё. а) /usr/sbin/a2chkconfig -- покомпонентно обрабатывает conf/*-start.d/*.conf (файлы обрабатываются в порядке их имён, обработанные позже имеют приоритет) и вызывает соответствующие a2{en,dis}{mod,site} для компонент упомянутых в конфигах. б) conf/{mods,sites,port,extra}-start.d/*.conf -- файлы конфигурации для a2chkconfig. Формат: <имя компонента>={yes,no} А1 Как этим пользоваться А1.1 Автоматическое управление А1.1.1 Модули Файлы обеспечивающие загрузку модулей и содержащие описание их зависимостей и конфигурационные файлы к ним помещаются в /etc/httpd2/conf/mods-available/ Ссылки на модули, которые автоматически загружаются помещаются в /etc/httpd2/conf/mods-enabled/ Файлы автоконфигурирования модулей помещаются в /etc/httpd2/conf/mods-start.d/ Создавать ссылки дело утомительное, по этому существует довольно удобная утилита a2chkconfig, которая позволяет автоматизировать процесс загрузки модулей, необходимых для приложения. Для этого в /etc/httpd2/conf/mods-start.d/ помещаете файл с произвольным названием и расширением .conf, любые другие файлы расширения будут игнорированы. Формат файла простой <имя модуля>=yes # разрешение загрузки модуля (добавляет ссылку на модуль в /etc/httpd2/conf/mods-enabled/) <имя модуля>=no # запрещение загрузки модуля (удаляет ссылку на модуль в /etc/httpd2/conf/mods-enabled/) Для применения изменений запускаете # a2chkconfig А1.1.2 Сайты Конфигурационные файлы помещаются в /etc/httpd2/conf/site-available/ Ссылки на сайты, которые разрешены помещаются в /etc/httpd2/conf/site-enabled/ Файлы автоконфигурирования сайтов помещаются в /etc/httpd2/conf/mods-start.d/ Формат файлов автоконфигурирования сайтов <имя сайта>=yes # разрешение загрузки сайта (добавляет ссылку на сайт в /etc/httpd2/conf/mods-enabled/) <имя сайта>=no # запрещение загрузки сайта (удаляет ссылку на сайт в /etc/httpd2/conf/mods-enabled/) Для применения изменений запускаете # a2chkconfig А1.1.3 Прочее Дополнительные средства и порты конфигурируются способом, аналогичным сайтам. А1.1.4 Пример Пример конфигурирования на примере приложения lightsquid-admin. Этому приложению нужно: запуск cgi (модуль cgi), выполнение perl-приложений (модуль perl), изменений опций доступа к директории приложения (модуль dir), базовая утентификация (модуль auth_basic), доступ к простому файлу паролей (модуль authn_file), разрешение аутентификации определённым логинам (модуль authz_user). Создание файла загрузки необходимых модулей. cat << EOF > /etc/httpd2/conf/mods-start.d/110-lightsquid.conf perl=yes cgi=yes dir=yes auth_basic=yes authn_file=yes authz_user=yes EOF Создание файла конфигурации директория cat << EOF > /etc/httpd2/conf/site-available/lightsquid.conf ScriptAlias "/cgi-bin/" "/var/www/apache2/html/lightsquid/" Options FollowSymLinks +ExecCGI AddHandler cgi-script .cgi AllowOverride AuthConfig DirectoryIndex index.cgi EOF Создание файла разрешения доступа к директории (сайту) cat << EOF > /etc/httpd2/conf/sites-start.d/110-lightsquid.conf lightsquid=yes EOF Создание файла разрешения доступа по стандартному порту протокола http cat << EOF > /etc/httpd2/conf/ports-start.d/110-lightsquid.conf http=yes EOF Проверить настройку очень полезно утилитой a2chkconfig_list # a2chkconfig_list ports http yes extra DirectoryIndex_default yes extra httpd-addon.d yes extra httpd-autoindex yes extra httpd-default yes extra httpd-languages yes extra httpd-mpm yes extra httpd-multilang-errordoc yes extra log_config_default yes sites default yes sites lightsquid yes sites ports_all yes sites vhosts no mods alias yes mods auth_basic yes mods authn_file yes mods authz_host yes mods authz_user yes mods autoindex yes mods cgi yes mods dir yes mods include yes mods log_config yes mods logio yes mods mime yes mods negotiation yes mods perl yes В выводе видно, что наш сайт разрешён (sites lightsquid yes) и загружеются все необходимые модули. Если вывод отличается от ожидаемого, следует проверить конфигурационные файлы и названия этих файлов (обязательное требование -- расширение .conf) Теперь можно применить созданную конфигурацию при помощи a2chkconfig. # a2chkconfig и перезапустить server # service httpd2 restart Для тех, у кого возникнут трудности с ограничением доступа в каталоги приведу пример конфигурационного файла. Задача ограничить доступ в /var/www/apache2/html/lightsquid/admin/ cat << EOF > /var/www/apache2/html/lightsquid/admin/.htaccess AuthType Basic AuthName "lightsquid administrator mode" AuthUserFile /var/www/apache2/html/lightsquid/admin/.htpasswd Require user admin EOF Файл паролей создаётся командой # htpasswd2 -cb /var/www/html/lightsquid/admin/.htpasswd admin admin А1.2 Ручное управление Ручное управление крайне не рекомендуется. Ручное управление не позволяет проследить влияние настроек друг на друга и пригодно только для целей отладки. НапримерРазрешить загрузку одиночного модуля (dir) # a2enmod dir Возможно отключение при выполнении a2chkconfig, если требование отключить его будет присутствовать в каком либо из /etc/httpd2/conf/mods-start.d/*.conf (a2chkconfig может вызываться при установке/обновлении/удалении связанных с apache2 пакетов).