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