Sisyphus repositório
Última atualização: 1 outubro 2023 | SRPMs: 18631 | Visitas: 37043054
en ru br
ALT Linux repositórios
S:2.4.57-alt2
D:2.2.9-alt11
5.0: 2.2.24-alt2.M50.1
4.1: 2.2.8-alt1
4.0: 2.2.6-alt4
+updates:2.2.6-alt2
3.0: 2.0.55-alt1
+backports:2.0.59-alt0.M30.1

Outros repositórios
Upstream:2.2.8

Group :: Sistema/Servidores
RPM: apache2

 Main   Changelog   Spec   Patches   Sources   Download   Gear   Bugs e FR  Repocop 

     Начиная с 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/"
<Directory "/var/www/apache2/html/lightsquid/">
Options FollowSymLinks +ExecCGI
AddHandler cgi-script .cgi
AllowOverride AuthConfig
DirectoryIndex index.cgi
</Directory>

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 пакетов).
 
projeto & código: Vladimir Lettiev aka crux © 2004-2005, Andrew Avramenko aka liks © 2007-2008
mantenedor atual: Michael Shigorin
mantenedor da tradução: Fernando Martini aka fmartini © 2009