Apache/ru

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

Поддержка в других пакетах
Существует глобальный USE-флаг apache2, который включает поддержку Apache в других пакетах. Он может автоматически «подтянуть» в качестве зависимости, если такие пакеты есть в системе.

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

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

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

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

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

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

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

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

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

Проверка, есть ли соединение с запущенным на localhost'е сервером Apache:

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

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


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


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

Конфигурационный файл сценария инициализации Gentoo
Единственная действующая строка в этом файле приведена ниже:

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

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

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

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

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

На этой странице вы должны увидеть сообщение "It works !".

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

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

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

Если данного файла нет, то создайте его.

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

Теперь удалите или переименуйте и откройте тестовую страницу: http://localhost/. Вы должны увидеть таблицу, показывающую настройки PHP.

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

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

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

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

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

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

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

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

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

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

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

Включение PHP-FPM через mod_proxy_fcgi в Apache 2.4
PHP, начиная с версии 5.3, поддерживает дополнительный режим — FastCGI Process Manager или FPM.

Конфигурация данного метода основана на директиве FilesMatch и располагается непосредственно в главном конфигурационного файле или в конкретных VirtualHost’ах. Расположение UNIX-сокета определяется директивой listen в файле с возможностью указать различные UNIX-сокеты для различных сайтов или функций.

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

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

Устранение проблем

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

Стандартные неполадки
При запуске apache вы можете получить следующие сообщения об ошибках:

apache2: apr_sockaddr_info_get failed for SomeHostname

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

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

 * 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