Files
php-doc-ru/install/unix/source.xml

113 lines
5.2 KiB
XML
Raw Permalink Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

<?xml version="1.0" encoding="utf-8"?>
<!-- EN-Revision: f033d4b76635f9582f6eb5505899e1f7fb2dd1a4 Maintainer: malferov Status: ready -->
<!-- Reviewed: no -->
<sect1 xml:id="install.unix.source" xmlns="http://docbook.org/ns/docbook" xmlns:xlink="http://www.w3.org/1999/xlink">
<title>Установка из исходного кода в системы Unix и macOS</title>
<para>
Программное обеспечение, которое потребуется заранее установить для компиляции:
<simplelist>
<member>
<link xlink:href="&url.gnu.make;">GNU-пакет <command>make</command></link>
</member>
<member>
Компилятор языка C (начиная с PHP 8.0.0 требуется совместимость с C99; начиная с PHP 8.4.0 требуется совместимость с C11)
</member>
<member>
Веб-сервер
</member>
<member>
Компоненты, характерные для модуля, наподобие библиотек <acronym>GD</acronym>,
<acronym>PDF</acronym> и другие
</member>
</simplelist>
</para>
<para>
При сборке из исходного кода репозитория Git или после пользовательских модификаций
иногда требуются следующие дополнительные инструменты:
<itemizedlist>
<listitem>
<simpara>
Автоматический конструктор сценариев настройки
<link xlink:href="&url.gnu.autoconf;">autoconf</link>, версия которого соответствует версии PHP:
</simpara>
<simplelist>
<member>
PHP 7.3 и новее: 2.68+
</member>
<member>
PHP 7.2: 2.64+
</member>
<member>
PHP 7.1 и старше: 2.59+
</member>
</simplelist>
</listitem>
<listitem>
<simpara>
Генератор лексеров <link xlink:href="&url.re2c;">re2c</link>, версия которого соответствует версии PHP:
</simpara>
<simplelist>
<member>
PHP 8.3 и новее: 1.0.3+
</member>
<member>
PHP 8.2 и старше: 0.13.4+
</member>
</simplelist>
</listitem>
<listitem>
<simpara>
Генератор парсеров <link xlink:href="&url.bison;">bison</link>, версия которого соответствует версии PHP:
</simpara>
<simplelist>
<member>
PHP 7.4 и новее: 3.0.0+
</member>
<member>
PHP 7.3 и старше: 2.4+ (включая Bison 3.x)
</member>
</simplelist>
</listitem>
</itemizedlist>
</para>
<simpara>
Процесс первоначальной установки и настройки PHP контролируется с параметрами
командной строки пакета настройки скриптов — <command>configure</command>.
Список доступных опций с краткими пояснениями
показывает запуск команды <command>./configure --help</command>.
Это руководство документирует опции отдельно.
Основные параметры описывает «<link linkend="configure.about">Список основных
опций конфигурации</link>», тогда как другие опции, характерные для модулей,
описывают справочные страницы.
</simpara>
<simpara>
После запуска скрипта конфигурации PHP собирают
командой <command>make</command>.
Раздел ЧАВО «<link linkend="faq.installation">Установка</link>» содержит
дополнительную информацию о разрешении проблем при сборке.
</simpara>
<note>
<simpara>
Из-за вопросов безопасности отдельные Unix-системы наподобие OpenBSD и SELinux
иногда запрещают отображение в памяти страниц, к которым открыт доступ и на запись,
и на выполнение. Такая защита называется <link xlink:href="&url.install.unix.pax-mprotect;">PaX MPROTECT</link>
или <link xlink:href="&url.install.unix.w-x-violation;">W^X-защита
от нарушений</link>.
Такое отображение памяти требуется для поддержки JIT-компиляции регулярных выражений PCRE-библиотек,
поэтому PHP собирают либо <link linkend="pcre.installation">без
поддержки JIT-компиляции регулярных выражений PCRE-библиотек</link>, либо вносят двоичный файл
в белый список доступными системе средствами.
</simpara>
</note>
<note>
<simpara>
Кросс-компиляция для ARM-архитектуры через набор инструментов Android пока не поддерживается.
</simpara>
</note>
</sect1>