Apache/ru

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

Emerge
Начиная с 8 января 2016, Apache 2.4 отмечен как testing. Чтобы установить Apache 2.4 вы должны сделать следующие изменения в файле package.accept_keywords.

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

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

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

Далее установите через emerge Apache:

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

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

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


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


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

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

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

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

Принимая во внимание то, о чём говорилось в предыдущем разделе, и то, что конфигурационные файлы модулей (файлы в ) почти всегда начинаются с, получаем, что содержимое одного файла в  будет объединено с остальной конфигурацией ТОЛЬКО в том случае, если соответствующий параметр установлен с помощью флага   в переменной 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) для :

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

Substitute  in the example above to the requested number in the output of  as displayed earlier on.

Виртуальные хосты
Для каждого виртуального хоста необходимо иметь каталог, который демон 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.

The following configuration will only work with Apache 2.4.10 and newer. It relies on the  directive and be placed within the main server config or. The location of the UNIX socket is determined by the  directive in the  configuration file, allowing for specifying separate pools per site or function.

Далее следует пример, в котором PHP модуль размещен в конфигурационном файле Apache:

Или, вы можете использовать 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