diff --git a/install/unix/apache2.xml b/install/unix/apache2.xml index 1a4d79a13..59af27e3b 100644 --- a/install/unix/apache2.xml +++ b/install/unix/apache2.xml @@ -1,355 +1,352 @@ - + Apache 2.x на Unix системах + - Этот раздел описывает установку PHP c Apache 2.x на Unix системах. + Раздел описывает установку PHP c веб-сервером Apache 2.x на Unix-системах. &warn.apache2.compat; - Самым авторитетным источником информации по Apache 2.x является - документация Apache. - Более подробная информация о настройках при установке может быть найдена - там. + Наиболее авторитетный источник информации по Apache 2.x — + документация к Apache. + Документация даёт подробную информацию о настройках при установке. - Самая последняя версия Apache Http Server может быть получена - на странице загрузки Apache, - а адрес соответствующей версии PHP был указан выше. - Это краткое руководство описывает лишь базовую установку Apache 2.x и PHP. - Для получения более детальной информации прочитайте - документацию Apache. - В инструкции ниже опущены номера версий - замените 'NN' на - номер, соответствующий скачанной вами версии Apache. + Последняя версия веб-сервера Apache HTTP Server доступна для загрузки + на странице загрузки Apache, + а совместимая версия PHP — на странице Download на этом сайте. + Это краткое руководство описывает только базовую установку 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 2.x — 2.4 и 2.2. + Лучше предпочесть последнюю версию — 2.4, если нет причин для установки + версии 2.2. + Инструкции этого раздела будут работать как для версии 2.4, так и для версии 2.2. + Обратите внимание, что поддержку Apache httpd 2.2 официально прекратили, + поэтому разработку этой версии остановили, а исправления больше не выпускают. - Скачайте Apache HTTP server как было указано выше и распакуйте его: + Скачайте Apache HTTP Server по приведённой ссылке и распакуйте его: - - - + + + - - Аналогично, скачайте и распакуйте исходные коды PHP: + + Аналогично, скачайте и распакуйте исходные коды PHP: - - + + - - - + + + - - - Скомпилируйте и установите Apache. Более подробную информацию по сборке - Apache смотрите в его документации. - + + + Скомпилируйте и установите Apache. Подробнее об установке + рассказывает документация к Apache. + - - + + - - - + + + - - - Теперь ваш Apache 2.x.NN доступен как /usr/local/apache2, - сконфигурирован с поддержкой подгружаемых модулей и стандартным - мульти-процессным модулем (MPM) prefork. - Чтобы протестировать правильность установки используйте стандартную - процедуру запуска Apache, такую как: + + + Теперь Apache 2.x.NN доступен по адресу /usr/local/apache2, + установщик настроил веб-сервер на поддержку загружаемых модулей и работу через + стандартный мультипроцессный MPM-модуль, который отвечает на запросы по модели prefork: + обрабатывает запросы в отдельном потоке однопоточных процессов. + Правильно ли прошла установка, проверяют через стандартную + процедуру запуска Apache — командой наподобие вот такой: - - + + - + - Затем остановите сервер, чтобы сконфигурировать и установить PHP: + Затем остановите сервер, чтобы сконфигурировать и установить PHP: - - + + - - - + + + - + + + Теперь сконфигурируем и соберём PHP. На этом этапе PHP настраивают + через опции конфигурации, чтобы указать, например, какие модули требуется включить. + Запустите команду ./configure --help, чтобы получить список доступных параметров + конфигурации. В примере мы выполним простую настройку + с поддержкой веб-сервера Apache и БД MySQL. + - - Теперь мы сконфигурируем и соберём PHP. Здесь вы можете настроить установку - PHP с помощью различных опций, указывающих, например, какие модули нужно включить. - Просмотрите вывод команды ./configure --help для получения полного списка параметров - конфигурации. В нашем примере мы сконфигурируем PHP очень просто - - с поддержкой Apache и MySQL. - + + При сборке Apache из исходного кода по приведённой на этой странице инструкции + путь к команде apxs будет соответствовать пути в следующем примере, но если Apache + установили другим способом, потребуется изменить пример и указать к apxs путь, + который соответствует установке. Обратите внимание, что отдельные дистрибутивы + переименовывают apxs в apxs2. + - - Если вы собирали 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. + Если потребуется изменить параметры конфигурации после установки, + то потребуется повторно выполнить шаги configure, make и make install. + Просто перезапустите Apache, чтобы изменения вступили в силу и новый модуль начал работать. + Перекомпиляция Apache для этого не требуется. - Если же вы используете php.ini-production, прочитайте его, чтобы знать какие изменения в - поведении PHP это повлечёт. + Обратите внимание: если не указали иное, команда make install установит также пакетный менеджер PEAR, + инструменты PHP наподобие phpize, установит CLI-интерфейс для работы с PHP в командной оболочке и другие компоненты. + + + + + + Настройте файл php.ini. - + + + + + - - - Отредактируйте ваш httpd.conf, чтобы Apache загружал модуль PHP. Путь в - правой части инструкции LoadModule должен указывать на модуль PHP. Команда make - install может добавить эту инструкцию автоматически, но этого может и не - произойти, поэтому проверьте, чтобы убедиться. - + + Установка параметров PHP доступна через редактирование файла php.ini. + Укажите параметр --with-config-file-path=/some/path в шаге 5, + если предпочитаете хранить файл php.ini в другом месте. + - - - Для PHP 8: - - + + Если вместо этого вы выберете файл php.ini-production, прочитайте список изменений внутри, + поскольку они влияют на поведение PHP. + + + + + + Отредактируйте файл httpd.conf, чтобы Apache загружал модуль PHP. + Путь к PHP-модулю указывают справа от инструкции LoadModule. Команда make + install, возможно, уже добавила эту инструкцию автоматически, + ну лучше проверить. + + + + Для PHP 8: + - - + + - - - Для PHP 7: - - + + Для PHP 7: + - - + + + - + + + Скажите веб-серверу Apache, чтобы он разбирал файлы с конкретными расширениями как PHP-код. Например, + пусть Apache разбирает как PHP-код файлы с расширением .php. Вместо установки только Apache-директивы + AddType избегают исполнения опасных загрузок и файлов наподобие exploit.php.jpg. + Аналогично следующему примеру указывают одно или больше произвольных расширений, + которые веб-сервер будет разбирать как файлы с PHP-кодом. Для демонстрации добавим расширение .php. + - - - - Теперь следует сконфигурировать Apache, чтобы он передавал файлы с - некоторыми расширениями на обработку модулю PHP. В нашем примере сделаем - это для .php файлов. Вместо обычного использования директивы - Apache AddType, мы хотим избежать интерпретации как PHP потенциально опасных загрузок и - файлов наподобие exploit.php.jpg. С помощью данного примера можно - указать для интерпретации PHP любые расширения, просто добавив их - в конец списка. Продемонстрируем это на расширении .php. - - - - - + + SetHandler application/x-httpd-php ]]> - - + + - - Или, если мы хотим добавить расширения .php, .php2, .php3, .php4, .php5, .php6 и - .phtml, это можно записать так: - + + Или, когда требуется разрешить запуск PHP-кода из файлов + с расширениями .php, .php2, .php3, .php4, .php5, .php6 и .phtml, но не другими, + настройка выглядит вот так: + - - + + SetHandler application/x-httpd-php ]]> - - + + - - Чтобы PHP отображал содержимое файлов .phps с подсветкой синтаксиса, нужно - внести соответствующую директиву - + + А чтобы фильтр исходного PHP-кода обрабатывал файлы с расширением .phps + и показывал как исходный код с подсветкой синтаксиса, + настройку записывают вот так: + - - + + SetHandler application/x-httpd-php-source ]]> - - + + - - Можно использовать mod_rewrite для отображения любого .php файла - с подсветкой синтаксиса, без нужды его переименования в .phps: - + + Модуль mod_rewrite умеет показывать произвольные файлы с расширением .php + как исходный код с подсветкой синтаксиса + без переименования или копирования в файл с расширением .phps: + - - + + - - + + - - Данный фильтр, отображающий исходный код, должен быть отключён в - промышленном использовании, так как он может открыть конфиденциальную - или другую важную информацию, включённую в исходный код. - + + Фильтр исходного PHP-кода отключают + в производственной среде, поскольку он раскрывает конфиденциальную + или другую чувствительную информацию, которую встроили в исходный код. + + - + + + Сервер Apache запускают стандартной процедурой наподобие: + - - - Используйте стандартную процедуру запуска Apache, например: - - - - + + - + - ИЛИ + ИЛИ - - + + - + + + - - + + Выполнение действий, которые описала эта страница, запускает веб-сервер Apache2 + с поддержкой PHP в виде SAPI-модуля. + Конечно, для PHP и Apache доступно гораздо больше параметров конфигурации. + Дополнительную информацию даёт команда ./configure --help + при запуске в соответствующем дереве исходного кода. + - - Если вы следовали инструкциям выше, то на данном этапе должны иметь запущенный - веб-сервер Apache2 с поддержкой PHP, как модуля SAPI. - Конечно, для PHP и Apache доступно гораздо больше параметров конфигурации. - Используйте ./configure --help в соответствующей папке с - исходными кодами для получения полного списка параметров конфигурации. - - - Если вы хотите собрать многопоточную версию Apache, - то при сборке вам следует указать модуль MPM worker - вместо стандартного модуля MPM prefork. - Чтобы сделать это, нужно добавить следующий аргумент к ./configure на шаге 3: - - - + + Для сборки веб-сервера Apache, который будет работать в многопоточном режиме, + при сборке Apache вместо стандартного мультипроцессного MPM-модуля prefork + выбирают мультипроцессный MPM-модуль, который отвечает на запросы + по модели worker: обрабатывает отдельный запрос в отдельном потоке + многопоточного процесса. Чтобы сделать это, к аргументу, который передали команде ./configure + на шаге 3, добавляют следующую опцию: + + + + - - - - Не следует бездумно использовать эту настройку, используйте её только если вы - понимаете все последствия этого решения. Документация Apache - по модулям MPM - значительно глубже раскрывает эту тему. - - - - Если вы хотите использовать зависимый контент (content negotiation), - прочитайте - Apache MultiViews - FAQ. - - - - - Для сборки многопоточной версии Apache, ваша система должна - поддерживать потоки. Это так же подразумевает сборку PHP c - поддержкой Zend Thread Safety (ZTS). И, как следствие, не все модули PHP смогут работать. - Рекомендуется установка Apache с модулем MPM по умолчанию - prefork. - - + + + + + Веб-сервер собирают для работы по такой модели, только если осознают + последствия решения и отчётливо понимают смысл действий. Документация Apache + к MPM-модулям + рассматривает работу модулей MPM подробнее. + + + + + В разделе FAQ в ответе на вопрос + о параметре MultiViews в настройках Apache + обсуждается согласование контента множественного представления при работе веб-сервера с PHP-файлами. + + + + + + Только в системах с поддержкой потоков получится собрать многопоточную версию Apache. + Тогда требуется и PHP-сборка с поддержкой потокобезопасного ZTS-режима (англ. Zend Thread Safety). + В этой конфигурации не каждое расширение будет доступно. Разработчики PHP рекомендуют + собрать Apache, который настроили на работу с MPM-модулем prefork по умолчанию. + +