Update to En apache2.xml + infostyle

This commit is contained in:
Mikhail Alferov
2024-09-09 01:27:32 +03:00
committed by GitHub
parent 1b9faafd1c
commit a17d42ae8c

View File

@ -1,44 +1,44 @@
<?xml version="1.0" encoding="utf-8"?>
<!-- EN-Revision: a89c6d71c7b65e3de84f26230fbf72c9b8948adf Maintainer: shein Status: ready -->
<!-- EN-Revision: b0dd627899cf5c57d3d64fac07e9b6579dfca082 Maintainer: shein Status: ready -->
<!-- Reviewed: no -->
<sect1 xml:id="install.unix.apache2" xmlns="http://docbook.org/ns/docbook" xmlns:xlink="http://www.w3.org/1999/xlink">
<title>Apache 2.x на Unix системах</title>
<para>
Этот раздел описывает установку PHP c Apache 2.x на Unix системах.
Раздел описывает установку PHP c веб-сервером Apache 2.x на Unix-системах.
</para>
&warn.apache2.compat;
<para>
Самым авторитетным источником информации по Apache 2.x является
<link xlink:href="&url.apache2.docs;">документация Apache</link>.
Более подробная информация о настройках при установке может быть найдена
там.
Наиболее авторитетный источник информации по Apache 2.x
<link xlink:href="&url.apache2.docs;">документация к Apache</link>.
Документация даёт подробную информацию о настройках при установке.
</para>
<para>
Самая последняя версия Apache Http Server может быть получена
на <link xlink:href= "&url.apache;">странице загрузки Apache</link>,
а адрес соответствующей версии PHP был указан выше.
Это краткое руководство описывает лишь базовую установку Apache 2.x и PHP.
Для получения более детальной информации прочитайте
<link xlink:href="&url.apache2.docs;">документацию Apache</link>.
В инструкции ниже опущены номера версий - замените 'NN' на
номер, соответствующий скачанной вами версии Apache.
Последняя версия веб-сервера Apache HTTP Server доступна для загрузки
<link xlink:href= "&url.apache;">на странице загрузки Apache</link>,
а совместимая версия PHP — на странице Download на этом сайте.
Это краткое руководство описывает только базовую установку Apache 2.x и PHP.
Дополнительную информацию даёт
<link xlink:href="&url.apache2.docs;">документация к Apache</link>.
В инструкции ниже опустили номера версий замените 'NN' на
номер, который соответствует версии Apache.
</para>
<para>
На данный момент есть две версии 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 официально прекратили,
поэтому разработку этой версии остановили, а исправления больше не выпускают.
</para>
<orderedlist>
<listitem>
<para>Скачайте Apache HTTP server как было указано выше и распакуйте его:</para>
<para>Скачайте Apache HTTP Server по приведённой ссылке и распакуйте его:</para>
<informalexample>
<screen>
@ -63,8 +63,8 @@ tar -xzf php-NN.tar.gz
<listitem>
<para>
Скомпилируйте и установите Apache. Более подробную информацию по сборке
Apache смотрите в его документации.
Скомпилируйте и установите Apache. Подробнее об установке
рассказывает документация к Apache.
</para>
<informalexample>
@ -81,11 +81,12 @@ make install
<listitem>
<para>
Теперь ваш Apache 2.x.NN доступен как /usr/local/apache2,
сконфигурирован с поддержкой подгружаемых модулей и стандартным
мульти-процессным модулем (MPM) prefork.
Чтобы протестировать правильность установки используйте стандартную
процедуру запуска Apache, такую как:
Теперь Apache 2.x.NN доступен по адресу /usr/local/apache2,
установщик настроил веб-сервер на поддержку загружаемых модулей и работу через
стандартный мультипроцессный MPM-модуль, который отвечает на запросы по модели prefork:
обрабатывает запросы в отдельном потоке однопоточных процессов.
Правильно ли прошла установка, проверяют через стандартную
процедуру запуска Apache — командой наподобие вот такой:
<informalexample>
<screen>
@ -108,21 +109,22 @@ make install
</listitem>
<listitem>
<para>
Теперь мы сконфигурируем и соберём PHP. Здесь вы можете настроить установку
PHP с помощью различных опций, указывающих, например, какие модули нужно включить.
Просмотрите вывод команды ./configure --help для получения полного списка параметров
конфигурации. В нашем примере мы сконфигурируем PHP очень просто -
с поддержкой Apache и MySQL.
Теперь сконфигурируем и соберём PHP. На этом этапе PHP настраивают
через опции конфигурации, чтобы указать, например, какие модули требуется включить.
Запустите команду ./configure --help, чтобы получить список доступных параметров
конфигурации. В примере мы выполним простую настройку
с поддержкой веб-сервера Apache и БД MySQL.
</para>
<para>
Если вы собирали Apache из исходников, как было описано выше, то используйте
путь до apxs как указано в следующем примере, иначе, корректируйте этот путь
соответствующим вашей установке образом. Учтите также, что в некоторых
дистрибутивах apxs может иметь имя apxs2.
При сборке Apache из исходного кода по приведённой на этой странице инструкции
путь к команде apxs будет соответствовать пути в следующем примере, но если Apache
установили другим способом, потребуется изменить пример и указать к apxs путь,
который соответствует установке. Обратите внимание, что отдельные дистрибутивы
переименовывают apxs в apxs2.
</para>
<informalexample>
<screen>
<![CDATA[
@ -135,23 +137,21 @@ make install
</informalexample>
<para>
Если вы решите изменить параметры конфигурации после установки, вам надо
будет повторить только три последних шага (configure, make, make install).
Вам нужно будет только перезапустить Apache, чтобы новые модули подгрузились и начали работать.
Если потребуется изменить параметры конфигурации после установки,
то потребуется повторно выполнить шаги configure, make и make install.
Просто перезапустите Apache, чтобы изменения вступили в силу и новый модуль начал работать.
Перекомпиляция Apache для этого не требуется.
</para>
<para>
Заметьте, что если не указано обратное, то 'make install' установит так же PEAR,
различные инструменты PHP - такие как phpize, версию PHP для командной
строки (PHP CLI) и т.д.
Обратите внимание: если не указали иное, команда make install установит также пакетный менеджер PEAR,
инструменты PHP наподобие phpize, установит CLI-интерфейс для работы с PHP в командной оболочке и другие компоненты.
</para>
</listitem>
<listitem>
<para>
Настройка вашего php.ini
Настройте файл php.ini.
</para>
<informalexample>
@ -163,30 +163,27 @@ cp php.ini-development /usr/local/lib/php.ini
</informalexample>
<para>
Вероятно, вы захотите изменить некоторые настройки в php.ini.
Если вы предпочитаете держать файл php.ini в другом месте, используйте
параметр --with-config-file-path=/some/path в шаге 5.
Установка параметров PHP доступна через редактирование файла php.ini.
Укажите параметр --with-config-file-path=/some/path в шаге 5,
если предпочитаете хранить файл php.ini в другом месте.
</para>
<para>
Если же вы используете php.ini-production, прочитайте его, чтобы знать какие изменения в
поведении PHP это повлечёт.
Если вместо этого вы выберете файл php.ini-production, прочитайте список изменений внутри,
поскольку они влияют на поведение PHP.
</para>
</listitem>
<listitem>
<para>
Отредактируйте ваш httpd.conf, чтобы Apache загружал модуль PHP. Путь в
правой части инструкции LoadModule должен указывать на модуль PHP. Команда make
install может добавить эту инструкцию автоматически, но этого может и не
произойти, поэтому проверьте, чтобы убедиться.
Отредактируйте файл httpd.conf, чтобы Apache загружал модуль PHP.
Путь к PHP-модулю указывают справа от инструкции LoadModule. Команда make
install, возможно, уже добавила эту инструкцию автоматически,
ну лучше проверить.
</para>
<informalexample>
<para>
Для PHP 8:
</para>
<para>Для PHP 8:</para>
<programlisting role="apache-conf">
<![CDATA[
LoadModule php_module modules/libphp.so
@ -195,31 +192,24 @@ LoadModule php_module modules/libphp.so
</informalexample>
<informalexample>
<para>
Для PHP 7:
</para>
<para>Для PHP 7:</para>
<programlisting role="apache-conf">
<![CDATA[
LoadModule php7_module modules/libphp7.so
]]>
</programlisting>
</informalexample>
</listitem>
<listitem>
<para>
Теперь следует сконфигурировать Apache, чтобы он передавал файлы с
некоторыми расширениями на обработку модулю PHP. В нашем примере сделаем
это для .php файлов. Вместо обычного использования директивы
Apache AddType, мы хотим избежать интерпретации как PHP потенциально опасных загрузок и
файлов наподобие exploit.php.jpg. С помощью данного примера можно
указать для интерпретации PHP любые расширения, просто добавив их
в конец списка. Продемонстрируем это на расширении .php.
Скажите веб-серверу Apache, чтобы он разбирал файлы с конкретными расширениями как PHP-код. Например,
пусть Apache разбирает как PHP-код файлы с расширением .php. Вместо установки только Apache-директивы
AddType избегают исполнения опасных загрузок и файлов наподобие exploit.php.jpg.
Аналогично следующему примеру указывают одно или больше произвольных расширений,
которые веб-сервер будет разбирать как файлы с PHP-кодом. Для демонстрации добавим расширение .php.
</para>
<informalexample>
<programlisting role="apache-conf">
<![CDATA[
@ -231,8 +221,9 @@ LoadModule php7_module modules/libphp7.so
</informalexample>
<para>
Или, если мы хотим добавить расширения .php, .php2, .php3, .php4, .php5, .php6 и
.phtml, это можно записать так:
Или, когда требуется разрешить запуск PHP-кода из файлов
с расширениями .php, .php2, .php3, .php4, .php5, .php6 и .phtml, но не другими,
настройка выглядит вот так:
</para>
<informalexample>
@ -246,8 +237,9 @@ LoadModule php7_module modules/libphp7.so
</informalexample>
<para>
Чтобы PHP отображал содержимое файлов .phps с подсветкой синтаксиса, нужно
внести соответствующую директиву
А чтобы фильтр исходного PHP-кода обрабатывал файлы с расширением .phps
и показывал как исходный код с подсветкой синтаксиса,
настройку записывают вот так:
</para>
<informalexample>
@ -261,8 +253,9 @@ LoadModule php7_module modules/libphp7.so
</informalexample>
<para>
Можно использовать mod_rewrite для отображения любого .php файла
с подсветкой синтаксиса, без нужды его переименования в .phps:
Модуль mod_rewrite умеет показывать произвольные файлы с расширением .php
как исходный код с подсветкой синтаксиса
без переименования или копирования в файл с расширением .phps:
</para>
<informalexample>
@ -275,16 +268,15 @@ RewriteRule (.*\.php)s$ $1 [H=application/x-httpd-php-source]
</informalexample>
<para>
Данный фильтр, отображающий исходный код, должен быть отключён в
промышленном использовании, так как он может открыть конфиденциальную
или другую важную информацию, включённую в исходный код.
Фильтр исходного PHP-кода отключают
в производственной среде, поскольку он раскрывает конфиденциальную
или другую чувствительную информацию, которую встроили в исходный код.
</para>
</listitem>
<listitem>
<para>
Используйте стандартную процедуру запуска Apache, например:
Сервер Apache запускают стандартной процедурой наподобие:
</para>
<informalexample>
@ -304,23 +296,26 @@ service httpd restart
]]>
</screen>
</informalexample>
</listitem>
</orderedlist>
<para>
Если вы следовали инструкциям выше, то на данном этапе должны иметь запущенный
веб-сервер Apache2 с поддержкой PHP, как модуля <literal>SAPI</literal>.
Выполнение действий, которые описала эта страница, запускает веб-сервер Apache2
с поддержкой PHP в виде <literal>SAPI</literal>-модуля.
Конечно, для PHP и Apache доступно гораздо больше параметров конфигурации.
Используйте <command>./configure --help</command> в соответствующей папке с
исходными кодами для получения полного списка параметров конфигурации.
Дополнительную информацию даёт команда <command>./configure --help</command>
при запуске в соответствующем дереве исходного кода.
</para>
<para>
Если вы хотите собрать многопоточную версию Apache,
то при сборке вам следует указать модуль MPM <filename>worker</filename>
вместо стандартного модуля MPM <filename>prefork</filename>.
Чтобы сделать это, нужно добавить следующий аргумент к ./configure на шаге 3:
Для сборки веб-сервера Apache, который будет работать в многопоточном режиме,
при сборке Apache вместо стандартного мультипроцессного MPM-модуля <filename>prefork</filename>
выбирают мультипроцессный MPM-модуль, который отвечает на запросы
по модели <filename>worker</filename>: обрабатывает отдельный запрос в отдельном потоке
многопоточного процесса. Чтобы сделать это, к аргументу, который передали команде ./configure
на шаге 3, добавляют следующую опцию:
</para>
<informalexample>
<screen>
<![CDATA[
@ -328,26 +323,28 @@ service httpd restart
]]>
</screen>
</informalexample>
<para>
Не следует бездумно использовать эту настройку, используйте её только если вы
понимаете все последствия этого решения. Документация Apache
по <link xlink:href="&url.apache2.mpm;">модулям MPM</link>
значительно глубже раскрывает эту тему.
Веб-сервер собирают для работы по такой модели, только если осознают
последствия решения и отчётливо понимают смысл действий. Документация Apache
<link xlink:href="&url.apache2.mpm;">к MPM-модулям</link>
рассматривает работу модулей MPM подробнее.
</para>
<note>
<para>
Если вы хотите использовать зависимый контент (content negotiation),
прочитайте
<link linkend="faq.installation.apache.multiviews">Apache MultiViews
FAQ</link>.
В разделе FAQ в ответе на вопрос
<link linkend="faq.installation.apache.multiviews">о параметре MultiViews в настройках Apache</link>
обсуждается согласование контента множественного представления при работе веб-сервера с PHP-файлами.
</para>
</note>
<note>
<para>
Для сборки многопоточной версии Apache, ваша система должна
поддерживать потоки. Это так же подразумевает сборку PHP c
поддержкой Zend Thread Safety (ZTS). И, как следствие, не все модули PHP смогут работать.
Рекомендуется установка Apache с модулем MPM по умолчанию - <filename>prefork</filename>.
Только в системах с поддержкой потоков получится собрать многопоточную версию Apache.
Тогда требуется и PHP-сборка с поддержкой потокобезопасного ZTS-режима (англ. Zend Thread Safety).
В этой конфигурации не каждое расширение будет доступно. Разработчики PHP рекомендуют
собрать Apache, который настроили на работу с MPM-модулем <filename>prefork</filename> по умолчанию.
</para>
</note>
</sect1>