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 в системе:


 * Конфигурационный файл сценария инициализации Apache2 в Gentoo:


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

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

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

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

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

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

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

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

Включение mod_security
Установите :

Включите модуль  в переменной 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 (смотрите выше секцию Emerge, если нужны инструкции как установить 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

Решение:

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

Смотрите также

 * Lighttpd — быстрый, легковесный веб-сервер.
 * Nginx — небольшой, надёжный и высокопроизводительный HTTP-сервер и обратный прокси.

Ссылки

 * Статья 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