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-адресу:

Виртуальный хост на основании IP

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

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

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

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

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

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

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

Включение PHP-FPM через mod_proxy_fcgi в Apache 2.4
With PHP 5.3 and above, PHP supports an additional mode, FastCGI Process Manager, or FPM.

The following method relies on the FilesMatch directive and be placed within the main server config or VirtualHosts. The location of the UNIX socket is determined by the listen directive in the, allowing for specifying separate pools per site/function.

In the following example, it is placed within the PHP module config file.:

Then enable both the PHP and proxy modules:

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

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

Стандартные неполадки
При запуске 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