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