Apache/ru

HTTP-сервер Apache — это веб-сервер. Он является одним из самых популярных веб-серверов в Интернете.]]

Multi-Processing Module
If you want to use the Apache event or worker MPM, enable the Apache threads USE flag:

Если вы хотите использовать event MPM (Multi-Processing Module) для Apache, то добавьте следующую строку в make.conf:

Если вы хотите использовать worker MPM для Apache, то добавьте следующее в make.conf:

If no Multi-Processing Module (MPM) is selected, the default MPM is used. The default MPM depends on platform capabilities (like threads support), read more in the official Apache docs.

Далее, установите Apache с помощью emerge:

Поддержка в других пакетах
Включение глобального USE-флага   добавит поддержку Apache в других пакетах. Это приведёт к тому, что при установке зависимого от него пакета будет установлен автоматически.

После настройки переменной USE потребуется обновить систему, чтобы изменения вступили в силу:

Файлы
Существуют два основных файла, которые настраивают поведение Apache2 в системе:


 * Конфигурационный файл init-скрипта Apache2 в Gentoo:


 * Стандартный файл конфигурации сервера Apache2:

Файл, находящийся в , является конфигурационным файлом для Gentoo init-скрипта. Единственная незакомментированная строка содержит переменную APACHE2_OPTS :

Эта строка определяет параметры, которые будут переданы различным конфигурационным файлам, использующим выражение  для включения или отключения некоторой части настроек. Вернемся к этому чуть позже в этой статье.

Файл является стандартным конфигурационным файлом сервера Apache. На самом деле это файл является лишь точкой входа, так как вся конфигурация разбита на множество файлов в каталоге, которые собираются вместе посредством директивы. Например, директива  в  предназначена для включения всех файлов из, имя которых оканчивается на.

Принимая во внимание то, о чём говорилось в предыдущем разделе, и то, что конфигурационные файлы модулей (файлы в ) почти всегда начинаются с, получаем, что содержимое одного файла в  будет объединено с остальной конфигурацией ТОЛЬКО в том случае, если соответствующий параметр установлен с помощью флага   для переменной APACHE2_OPTS в файле. Конфигурационный файл является исключением из этого правила, так как не начинается с выражения   и, следовательно, всегда включается в конечную конфигурацию.

Настройки по умолчанию
Ниже приведена конфигурация свежей установки сервера Apache, получающаяся объединением различных конфигурационных файлов. Начнём с точки входа.

Первые признаки жизни
Как видно из приведенной выше первоначальной конфигурации, предварительно установленным каталогом для виртуального хоста  является, именем соответствующего сервера — localhost. К тому же в каталог для  устанавливается файл index.html, так что, чтобы проверить все ли правильно установлено, можно зайти браузером на http://localhost/.

На странице должно появиться сообщение «It works!».

Включение mod_security
ModSecurity is a rule-based web application firewall that monitors web service traffic, to block attacks exploiting known vulnerabilities.

Установите :

Включите модуль  в переменной APACHE2_OPTS файла :

Для настройки этого модуля отредактируйте и  файлы, а затем перезапустите Apache.

Включение поддержки PHP
Установите PHP с USE-флагом  и включите соответствующий модуль:

Перед тем как проверить, работает ли модуль PHP, убедитесь, что файл существует и содержит следующее определение:

Если он не существует, то создайте его.

Чтобы проверить, работает ли модуль PHP, создайте тестовую страницу:

Теперь удалите или переименуйте и откройте тестовую страницу:.

Должна отобразиться таблица с настройками PHP.

Выбор версии PHP
Чтобы изменить версию PHP обработчика для Apache, нужно сперва вывести список доступных Server Application Programming Interface (SAPI) для :

Измените на необходимую версию:

В приведенном выше примере замените  на необходимый номер из вывода, который был показан ранее.

Виртуальные хосты
Для каждого виртуального хоста необходимо иметь каталог, который демон Apache сможет открыть и прочитать. Добавьте файл конфигурации виртуального хоста в каталоге, который будет использовать данный   и данное имя сервера виртуального хоста. Не забудьте добавить запись для данного доменного имени в.

Чтобы назначить файлам виртуального хоста пользователя/группу apache, используйте, как показано в следующем примере:

Ниже приведены два примера определения виртуальных хостов, один для domainname1.com, а второй для domainname2.com. Обратите внимание, что директивы  и   различаются, хотя сам хост  один и тот же:

Также рекомендуется дать определение виртуального хоста на основании IP-адреса. Это позволит администратору оставить сообщение пользователям, которые пытаются зайти на сайт по IP-адресу:

После добавления новых хостов сервер нужно (мягко) перезапустить, чтобы новые сайты стали активны.

Включение PHP через fcgid
Установите и. Пакет PHP требует включения USE-флага :

Отредактируйте файл :

Создайте необходимый каталог:

Сделайте символическую ссылку для PHP-wrapper:

Включите модуль :

В конце перезапустите Apache и проверьте сайт, который мы создали раньше. Значение  должно быть CGI/FastCGI

Включение PHP-FPM через mod_proxy_fcgi в Apache 2.4
Следующие условия должны быть выполнены, чтобы включить PHP-FPM через mod_proxy_fcgi:
 * >= PHP 5.3
 * >= Apache 2.4

Кроме того, есть несколько ограничений доступной функциональности в Apache 2.4:
 * >= Apache 2.4.9, если вы хотите взаимодействовать с PHP-FPM через UNIX сокет
 * >= Apache 2.4.10, если вы хотите использовать SetHandler вместо ProxyPassMatch.

Следующая конфигурация будет работать только с Apache 2.4.10 и выше. Это основано на директиве  и располагается непосредственно в главном конфигурационного файле или в конкретных. Расположение UNIX-сокета определяется в файле директивой   с возможностью указать различные UNIX-сокеты для различных сайтов или функций.

В следующем примере  размещена в конфигурационном файле модуля PHP:

Или вы можете использовать ProxyPassMatch — единственный вариант, если версия Apache между 2.4.0 и 2.4.8 включительно.

По умолчанию директива  не настроена для использования сокета. Сперва создайте каталог для файла сокета:

Затем обновите файл следующим образом:

Затем подключите модули  и  :

Web frameworks and Apache
Some of the web frameworks that can work with Apache are covered on the wiki:


 * Rails
 * Django

HTTPS with TLS certificates from Let’s Encrypt
It is important that any public-facing web server provide "secure" HTTPS access. Often, sites providing HTTPS will be configured to redirect HTTP requests to the HTTPS equivalent URL.

Let’s Encrypt is a not-for-profit certificate authority that issues free TLS certificats. is a utility available in the Gentoo repository for easily requesting and installing TLS certificates, and automatically setting up HTTPS access for Apache.

See the Let’s Encrypt article for information about using. The EFF also have specific instructions on using on Gentoo to configure Apache.

OpenRC
Запуск сервера Apache:

Добавление Apache в уровень запуска по умолчанию:

Перезапуск службы Apache:

Перезагрузка конфигурационных файлов Apache:

systemd
Запуск сервера Apache:

Добавление Apache в уровень запуска по умолчанию:

Перезапуск службы Apache:

Ссылки
Сервер Apache бывает трудно настроить правильно. Ниже приведены некоторые ссылки, которые могут быть полезны при возникновении проблем:


 * Руководство по устранению проблем

Тестирование
Проверка IP-интерфейсов и портов, на которых Apache2 работает и слушает их:

Проверка соединения с запущенным на localhost сервером Apache:

Тестовое соединение можно разорвать нажатием + и.

apr_sockaddr_info_get failed for 
Ошибка:

apache2: apr_sockaddr_info_get failed for System_Hostname

Решение:

Когда такое происходит, добавьте имя хоста в файл :

Внешние ресурсы

 * Статья Slicehost: Установка Apache в Gentoo
 * Статья Slicehost: Конфигурационые файлы Apache в Gentoo
 * Статья Slicehost: Настройка Apache MPM в Gentoo
 * Статья Slicehost: Настройка Apache в Gentoo
 * Статья Slicehost: Виртуальные хосты Apache в Gentoo
 * Статья Slicehost: Включение и использование модуля Apache mod_status в Gentoo
 * Документация apache.org
 * Apache2 mod_pagespeed