Apache 2.x на Unix системах
 
  Раздел описывает установку PHP c веб-сервером Apache 2.x на Unix-системах.
 
 ВниманиеРазработчики PHP не рекомендуют
использовать многопоточный MPM-модуль в производственной среде, в которой работает Apache 2.
Лучше предпочесть prefork-версию модуля MPM, которая в Apache 2.0 и 2.2 идёт по умолчанию. Подробнее о причинах
рассказывает ответ раздела FAQ
о работе Apache2 с многопоточным MPM-модулем
 
 
  Наиболее авторитетный источник информации по Apache 2.x —
  » документация к Apache.
  Документация даёт подробную информацию о настройках при установке.
 
 
  Последняя версия веб-сервера Apache HTTP Server доступна для загрузки
  » на странице загрузки Apache,
  а совместимая версия PHP — на странице Download на этом сайте.
  Это краткое руководство описывает только базовую установку Apache 2.x и PHP.
  Дополнительную информацию даёт
  » документация к Apache.
  В инструкции ниже опустили номера версий — замените 'NN' на
  номер, который соответствует версии Apache.
 
 
  Сайт веб-сервера предлагает для загрузки две версии Apache 2.x — 2.4 и 2.2.
  Лучше предпочесть последнюю версию — 2.4, если нет причин для установки
  версии 2.2.
  Инструкции этого раздела будут работать как для версии 2.4, так и для версии 2.2.
  Обратите внимание, что поддержку Apache httpd 2.2 официально прекратили,
  поэтому разработку этой версии остановили и больше не выпускают исправлений.
 
 
  - 
   
    Скачайте Apache HTTP Server по приведённой ссылке
    и распакуйте его:
    
- 
   
    Аналогичным способом скачайте и распакуйте исходные коды PHP:
    
- 
   
    Скомпилируйте и установите Apache. Подробнее об установке
    рассказывает документация к Apache.
    
- 
   
    Теперь Apache 2.x.NN доступен по адресу /usr/local/apache2,
    установщик настроил веб-сервер на поддержку загружаемых модулей и работу через
    стандартный мультипроцессный MPM-модуль, который отвечает на запросы по модели prefork:
    обрабатывает запросы в отдельном потоке однопоточных процессов.
    Правильно ли прошла установка, проверяют через стандартную
    процедуру запуска Apache — командой наподобие вот такой:
     Затем остановите сервер, чтобы сконфигурировать и установить PHP:
- 
   
    Теперь сконфигурируем и соберём PHP. На этом этапе PHP настраивают
    через опции конфигурации, чтобы указать, например, какие модули требуется включить.
    Запустите команду ./configure --help, чтобы получить список доступных параметров
    конфигурации. В примере мы выполним простую настройку
    с поддержкой веб-сервера Apache и БД MySQL.
    
    При сборке Apache из исходного кода по приведённой на этой странице инструкции
    путь к команде apxs будет соответствовать пути в следующем примере,
    но если Apache установили другим способом, потребуется изменить пример и указать путь к apxs,
    который соответствует установке. Обратите внимание, что отдельные дистрибутивы
    переименовывают apxs в apxs2.
    
    Если потребуется изменить параметры конфигурации после установки,
    то потребуется повторно выполнить шаги configure, make
    и make install.
    Просто перезапустите Apache, чтобы изменения вступили в силу и новый модуль начал работать.
    Перекомпиляция Apache для этого не требуется.
    
    Обратите внимание: если не указали иное, команда make install
    установит также пакетный менеджер » PEAR,
    инструменты PHP наподобие phpize,
    установит CLI-интерфейс для работы с PHP в командной оболочке и другие компоненты.
    
- 
   
    Настройте файл php.ini.
    
    Установка параметров PHP доступна через редактирование файла .ini.
    Укажите параметр--with-config-file-path=/some/pathв шаге 5,
    если предпочитаете хранить файл php.ini в другом месте.
 
    Если вместо этого вы выберете файл php.ini-production,
    прочитайте список изменений внутри, поскольку они влияют на поведение PHP.
    
- 
   
    Отредактируйте файл httpd.conf,
    чтобы Apache загружал модуль PHP.
    Путь к PHP-модулю указывают справа от инструкции LoadModule.
    Команда make install, возможно, уже добавила эту инструкцию автоматически,
    ну лучше проверить.
 
- 
   
    Скажите веб-серверу Apache, чтобы он разбирал файлы с конкретными расширениями как PHP-код.
    Например, пусть Apache разбирает как PHP-код файлы с расширением .php.
    Вместо установки только Apache-директивыAddTypeизбегают исполнения опасных загрузок и файлов
    наподобие exploit.php.jpg.
    Аналогично следующему примеру указывают одно или больше произвольных расширений,
    которые веб-сервер будет разбирать как файлы с PHP-кодом.
    Для демонстрации добавим расширение.php.
 
    Или, когда требуется разрешить запуск PHP-кода из файлов
    с расширениями .php,.php2,.php3,.php4,.php5,.php6и.phtml, но не другими,
    настройка выглядит вот так:
 
    А чтобы фильтр исходного PHP-кода обрабатывал файлы с расширением .phpsи показывал как исходный код с подсветкой синтаксиса,
    настройку записывают вот так:
 
    Модуль mod_rewriteумеет показывать произвольные файлы
    с расширением.phpкак исходный код с подсветкой синтаксиса
    без переименования или копирования в файл с расширением.phps:
 
    Фильтр исходного PHP-кода отключают
    в производственной среде, поскольку он раскрывает конфиденциальную
    или другую чувствительную информацию, которую встроили в исходный код.
    
- 
   
    Сервер Apache запускают стандартной процедурой наподобие:
    ИЛИ 
  Выполнение действий, которые описала эта страница, запускает веб-сервер Apache2
  с поддержкой PHP в виде SAPI-модуля.
  Конечно, для PHP и Apache доступно гораздо больше параметров конфигурации.
  Дополнительную информацию даёт команда ./configure --help
  при запуске в соответствующем дереве исходного кода.
 
 
  Сборка веб-сервера Apache будет работать в многопоточном режиме,
  если при сборке Apache вместо стандартного мультипроцессного MPM-модуля prefork
  выбрать мультипроцессный MPM-модуль, который отвечает на запросы
  по модели worker: обрабатывает отдельный запрос в отдельном потоке
  многопоточного процесса. Чтобы сделать это, к аргументу, который передали команде ./configure
  на шаге 3, добавляют следующую опцию:
 
 
 
  Веб-сервер собирают для работы по такой модели, только если осознают
  последствия решения и отчётливо понимают смысл действий. Документация Apache
  » к MPM-модулям
  рассматривает работу модулей MPM подробнее.
 
 Замечание: 
  
   В разделе FAQ в ответе на вопрос
   о параметре MultiViews в настройках Apache
   обсуждается согласование контента множественного представления при работе веб-сервера с PHP-файлами.
  
 
 Замечание: 
  
   Только в системах с поддержкой потоков получится собрать многопоточную версию Apache.
   Тогда требуется и PHP-сборка с поддержкой потокобезопасного ZTS-режима (англ. Zend Thread Safety).
   В этой конфигурации не каждое расширение будет доступно.
   Разработчики PHP рекомендуют настраивать сборку Apache
   на работу с MPM-модулем prefork по умолчанию.