Apache/ru

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

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

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

И включите USE-флаг threads для Apache:

Далее, установите 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
Установите :

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

Control this module by editing and  files. The file contains the recommended configuration https://github.com/SpiderLabs/ModSecurity/wiki/Reference-Manual#A_Recommended_Base_Configuration. Copy the basic configuration to the and tweak the settings according to your needs. Unpack the file to a suitable location, e.g., tweak it, and include the unpacked file in. Finally, restart Apache. Look for the errors in the Apache log files of your sites and act accordingly.

Включение поддержки 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 включительно.

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

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

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

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 article: Installing Apache on Gentoo
 * Slicehost article: Apache configuration files on Gentoo
 * Slicehost article: Configuring the Apache MPM on Gentoo
 * Slicehost article: Apache configuration on Gentoo
 * Slicehost article: Apache Virtual Hosts on Gentoo
 * Slicehost article: Enabling and using apache's mod_status on Gentoo
 * apache.org documentation
 * Apache2 mod_pagespeed