Apache/ru

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

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

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

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

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

Далее emerge Apache:

Поддержка в других пакетах
Включение  глобальным USE-флагом добавит поддержку Apache в других пакетах. Это приведет к тому что будет установлен автоматически, если пакет, у которого есть зависимость 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) для :

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

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

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

Решение:

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

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

 * 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