Установка ΠΈΠ· исходного ΠΊΠΎΠ΄Π° Π² систСмы Unix ΠΈ macOS

ΠŸΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠ½ΠΎΠ΅ обСспСчСниС, ΠΊΠΎΡ‚ΠΎΡ€ΠΎΠ΅ потрСбуСтся Π·Π°Ρ€Π°Π½Π΅Π΅ ΡƒΡΡ‚Π°Π½ΠΎΠ²ΠΈΡ‚ΡŒ для компиляции:

  • » GNU-ΠΏΠ°ΠΊΠ΅Ρ‚ make
  • ΠšΠΎΠΌΠΏΠΈΠ»ΡΡ‚ΠΎΡ€ языка C (начиная с PHP 8.0.0 трСбуСтся ΡΠΎΠ²ΠΌΠ΅ΡΡ‚ΠΈΠΌΠΎΡΡ‚ΡŒ с C99; начиная с PHP 8.4.0 трСбуСтся ΡΠΎΠ²ΠΌΠ΅ΡΡ‚ΠΈΠΌΠΎΡΡ‚ΡŒ с C11)
  • Π’Π΅Π±-сСрвСр
  • ΠšΠΎΠΌΠΏΠΎΠ½Π΅Π½Ρ‚Ρ‹, Ρ…Π°Ρ€Π°ΠΊΡ‚Π΅Ρ€Π½Ρ‹Π΅ для модуля, Π½Π°ΠΏΠΎΠ΄ΠΎΠ±ΠΈΠ΅ Π±ΠΈΠ±Π»ΠΈΠΎΡ‚Π΅ΠΊ GD, PDF ΠΈ Π΄Ρ€ΡƒΠ³ΠΈΠ΅

ΠŸΡ€ΠΈ сборкС ΠΈΠ· исходного ΠΊΠΎΠ΄Π° рСпозитория Git ΠΈΠ»ΠΈ послС ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»ΡŒΡΠΊΠΈΡ… ΠΌΠΎΠ΄ΠΈΡ„ΠΈΠΊΠ°Ρ†ΠΈΠΉ ΠΈΠ½ΠΎΠ³Π΄Π° Ρ‚Ρ€Π΅Π±ΡƒΡŽΡ‚ΡΡ ΡΠ»Π΅Π΄ΡƒΡŽΡ‰ΠΈΠ΅ Π΄ΠΎΠΏΠΎΠ»Π½ΠΈΡ‚Π΅Π»ΡŒΠ½Ρ‹Π΅ инструмСнты:

  • АвтоматичСский конструктор сцСнариСв настройки » autoconf, вСрсия ΠΊΠΎΡ‚ΠΎΡ€ΠΎΠ³ΠΎ соотвСтствуСт вСрсии PHP:
    • PHP 7.3 ΠΈ Π½ΠΎΠ²Π΅Π΅: 2.68+
    • PHP 7.2: 2.64+
    • PHP 7.1 ΠΈ ΡΡ‚Π°Ρ€ΡˆΠ΅: 2.59+
  • Π“Π΅Π½Π΅Ρ€Π°Ρ‚ΠΎΡ€ лСксСров » re2c, вСрсия ΠΊΠΎΡ‚ΠΎΡ€ΠΎΠ³ΠΎ соотвСтствуСт вСрсии PHP:
    • PHP 8.3 ΠΈ Π½ΠΎΠ²Π΅Π΅: 1.0.3+
    • PHP 8.2 ΠΈ ΡΡ‚Π°Ρ€ΡˆΠ΅: 0.13.4+
  • Π“Π΅Π½Π΅Ρ€Π°Ρ‚ΠΎΡ€ парсСров » bison, вСрсия ΠΊΠΎΡ‚ΠΎΡ€ΠΎΠ³ΠΎ соотвСтствуСт вСрсии PHP:
    • PHP 7.4 ΠΈ Π½ΠΎΠ²Π΅Π΅: 3.0.0+
    • PHP 7.3 ΠΈ ΡΡ‚Π°Ρ€ΡˆΠ΅: 2.4+ (Π²ΠΊΠ»ΡŽΡ‡Π°Ρ Bison 3.x)

Π‘ΠΎΠ»Π΅Π΅ ΠΏΠΎΠ΄Ρ€ΠΎΠ±Π½ΡƒΡŽ ΠΈΠ½Ρ„ΠΎΡ€ΠΌΠ°Ρ†ΠΈΡŽ ΠΎ компиляции PHP ΠΈΠ· исходного ΠΊΠΎΠ΄Π° содСрТит Ρ„Π°ΠΉΠ» » README.md Π² Π°Ρ€Ρ…ΠΈΠ²Π΅ с исходным ΠΊΠΎΠ΄ΠΎΠΌ.

ΠŸΡ€ΠΎΡ†Π΅ΡΡ ΠΏΠ΅Ρ€Π²ΠΎΠ½Π°Ρ‡Π°Π»ΡŒΠ½ΠΎΠΉ установки ΠΈ настройки PHP контролируСтся ΠΏΠ°Ρ€Π°ΠΌΠ΅Ρ‚Ρ€Π°ΠΌΠΈ ΠΊΠΎΠΌΠ°Π½Π΄Π½ΠΎΠΉ строки ΠΏΠ°ΠΊΠ΅Ρ‚Π° настройки скриптов β€” configure. Бписок доступных ΠΎΠΏΡ†ΠΈΠΉ с ΠΊΡ€Π°Ρ‚ΠΊΠΈΠΌΠΈ пояснСниями ΠΏΠΎΠΊΠ°Π·Ρ‹Π²Π°Π΅Ρ‚ запуск ΠΊΠΎΠΌΠ°Π½Π΄Ρ‹ ./configure --help. Π­Ρ‚ΠΎ руководство Π΄ΠΎΠΊΡƒΠΌΠ΅Π½Ρ‚ΠΈΡ€ΡƒΠ΅Ρ‚ ΠΎΠΏΡ†ΠΈΠΈ ΠΎΡ‚Π΄Π΅Π»ΡŒΠ½ΠΎ. ΠžΡΠ½ΠΎΠ²Π½Ρ‹Π΅ ΠΏΠ°Ρ€Π°ΠΌΠ΅Ρ‚Ρ€Ρ‹ описываСт «Бписок основных ΠΎΠΏΡ†ΠΈΠΉ ΠΊΠΎΠ½Ρ„ΠΈΠ³ΡƒΡ€Π°Ρ†ΠΈΠΈΒ», Ρ‚ΠΎΠ³Π΄Π° ΠΊΠ°ΠΊ Π΄Ρ€ΡƒΠ³ΠΈΠ΅ ΠΎΠΏΡ†ΠΈΠΈ, Ρ…Π°Ρ€Π°ΠΊΡ‚Π΅Ρ€Π½Ρ‹Π΅ для ΠΌΠΎΠ΄ΡƒΠ»Π΅ΠΉ, ΠΎΠΏΠΈΡΡ‹Π²Π°ΡŽΡ‚ справочныС страницы.

ПослС запуска скрипта ΠΊΠΎΠ½Ρ„ΠΈΠ³ΡƒΡ€Π°Ρ†ΠΈΠΈ PHP ΡΠΎΠ±ΠΈΡ€Π°ΡŽΡ‚ ΠΊΠΎΠΌΠ°Π½Π΄ΠΎΠΉ make. Π Π°Π·Π΄Π΅Π» Π§ΠΠ’Πž «Установка» содСрТит Π΄ΠΎΠΏΠΎΠ»Π½ΠΈΡ‚Π΅Π»ΡŒΠ½ΡƒΡŽ ΠΈΠ½Ρ„ΠΎΡ€ΠΌΠ°Ρ†ΠΈΡŽ ΠΎ Ρ€Π°Π·Ρ€Π΅ΡˆΠ΅Π½ΠΈΠΈ ΠΏΡ€ΠΎΠ±Π»Π΅ΠΌ ΠΏΡ€ΠΈ сборкС.

Π—Π°ΠΌΠ΅Ρ‡Π°Π½ΠΈΠ΅: Из-Π·Π° вопросов бСзопасности ΠΎΡ‚Π΄Π΅Π»ΡŒΠ½Ρ‹Π΅ Unix-систСмы Π½Π°ΠΏΠΎΠ΄ΠΎΠ±ΠΈΠ΅ OpenBSD ΠΈ SELinux ΠΈΠ½ΠΎΠ³Π΄Π° Π·Π°ΠΏΡ€Π΅Ρ‰Π°ΡŽΡ‚ ΠΎΡ‚ΠΎΠ±Ρ€Π°ΠΆΠ΅Π½ΠΈΠ΅ Π² памяти страниц, ΠΊ ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΌ ΠΎΡ‚ΠΊΡ€Ρ‹Ρ‚ доступ ΠΈ Π½Π° запись, ΠΈ Π½Π° Π²Ρ‹ΠΏΠΎΠ»Π½Π΅Π½ΠΈΠ΅. Вакая Π·Π°Ρ‰ΠΈΡ‚Π° называСтся » PaX MPROTECT ΠΈΠ»ΠΈ » W^X-Π·Π°Ρ‰ΠΈΡ‚Π° ΠΎΡ‚ Π½Π°Ρ€ΡƒΡˆΠ΅Π½ΠΈΠΉ. Π’Π°ΠΊΠΎΠ΅ ΠΎΡ‚ΠΎΠ±Ρ€Π°ΠΆΠ΅Π½ΠΈΠ΅ памяти трСбуСтся для ΠΏΠΎΠ΄Π΄Π΅Ρ€ΠΆΠΊΠΈ JIT-компиляции рСгулярных Π²Ρ‹Ρ€Π°ΠΆΠ΅Π½ΠΈΠΉ PCRE-Π±ΠΈΠ±Π»ΠΈΠΎΡ‚Π΅ΠΊ, поэтому PHP ΡΠΎΠ±ΠΈΡ€Π°ΡŽΡ‚ Π»ΠΈΠ±ΠΎ Π±Π΅Π· ΠΏΠΎΠ΄Π΄Π΅Ρ€ΠΆΠΊΠΈ JIT-компиляции рСгулярных Π²Ρ‹Ρ€Π°ΠΆΠ΅Π½ΠΈΠΉ PCRE-Π±ΠΈΠ±Π»ΠΈΠΎΡ‚Π΅ΠΊ, Π»ΠΈΠ±ΠΎ вносят Π΄Π²ΠΎΠΈΡ‡Π½Ρ‹ΠΉ Ρ„Π°ΠΉΠ» Π² Π±Π΅Π»Ρ‹ΠΉ список доступными систСмС срСдствами.

Π—Π°ΠΌΠ΅Ρ‡Π°Π½ΠΈΠ΅: ΠšΡ€ΠΎΡΡ-компиляция для ARM-Π°Ρ€Ρ…ΠΈΡ‚Π΅ΠΊΡ‚ΡƒΡ€Ρ‹ Ρ‡Π΅Ρ€Π΅Π· Π½Π°Π±ΠΎΡ€ инструмСнтов Android ΠΏΠΎΠΊΠ° Π½Π΅ поддСрТиваСтся.

οΌ‹Π”ΠΎΠ±Π°Π²ΠΈΡ‚ΡŒ

ΠŸΡ€ΠΈΠΌΠ΅Ρ‡Π°Π½ΠΈΡ ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»Π΅ΠΉ

ΠŸΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»ΠΈ Π΅Ρ‰Ρ‘ Π½Π΅ добавляли примСчания для страницы