Http windows php net download

  • PHP For Windows

    This site is dedicated to supporting PHP on Microsoft Windows.
    It also supports ports of PHP extensions or features as well as
    providing special builds for the various Windows architectures.

    If you like to build your own PHP binaries, instructions can be found on the
    Wiki.

    Which version do I choose?

    IIS

    If you are using PHP as FastCGI with IIS you should use the Non-Thread Safe (NTS) versions of PHP.

    Apache

    Please use the Apache builds provided by Apache Lounge.
    They provide VC15 and VS16 builds of Apache for x86 and x64.
    We use their binaries to build the Apache SAPIs.

    With Apache, using the apache2handler SAPI, you have to use the Thread Safe (TS) versions of PHP.

    VS16 & VS17

    More recent versions of PHP are built with VS16 or VS17 (Visual Studio 2019 or 2022 compiler respectively) and
    include improvements in performance and stability.

    — The VS16 and VS17 builds require to have the Visual C++ Redistributable for Visual Studio 2015-2022 x64 or x86 installed

    TS and NTS

    TS refers to multithread capable builds. NTS refers to single thread only builds. Use case for TS binaries involves interaction with
    a multithreaded SAPI and PHP loaded as a module into a web server. For NTS binaries the widespread use case is interaction with a web server through
    the FastCGI protocol, utilizing no multithreading (but also for example CLI).

    What is PGO?

    Profile Guided Optimization is an optimization
    feature available in Microsoft’s Visual C++ compiler that allows you to optimize an output file based on profiling data collected during test runs of the application or module.

    Links:

    • PGO on MSDN
    • Visual C++ Team Blog — PGO with PHP
    • PHP PGO build for maximum performance (old)

    amd64 (x86_64) Builds

    PHP 7 provides full 64-bit support. The x64 builds of PHP 7 support native 64-bit integers, LFS, 64-bit memory_limit and much more.

    x64 builds are recommended (almost all Windows installations support x64).

    Long and multibyte path

    PHP 7.1+ supports long and UTF-8 paths. See the manual for details.

    Archives

    Past releases are available from our archives, older versions
    not found there can be found at the Museum.

  • PHP 8.4 (8.4.7)

    Download source code [29.3MB]

    Download tests package (phpt) [17.34MB]

    VS17 x64 Non Thread Safe (2025-May-06 14:19:42)

    • Zip
      [32.21MB]
      sha256: b79a5c115bdf80ae21bda6f0035e5fb2823ef07659c999109f86da15b56be523
    • Debug Pack
      [37.09MB]
      sha256: 40d8d8d46bc8d169614bd9fb6a8d50cc8bfc342bbd992622ef9b59cee61dddd2
    • Development package (SDK to develop PHP extensions)
      [1.35MB]
      sha256: 7b72a5ee95e593caa0a424814a143e004b6b6a360ea042d41f90c7bb39451210

    VS17 x64 Thread Safe (2025-May-06 14:18:08)

    • Zip
      [32.37MB]
      sha256: b2cce3ca2ae599ef1b13ae0b84b17aa25f71a94e3098d52c7407238375c1056a
    • Debug Pack
      [37.13MB]
      sha256: 7d4d38328e9766a22548602696dc82f7f76e79ffe32d3570c5fb067fbea621ab
    • Development package (SDK to develop PHP extensions)
      [1.35MB]
      sha256: 1402f45e0910b600482e173821deda0de4987b54f956300cee9109e54e1594b1

    VS17 x86 Non Thread Safe (2025-May-06 14:16:48)

    • Zip
      [28.9MB]
      sha256: 30b18db54848c1fc1083a0831bc83770306cc30c47b65991edbfa1302916b4f5
    • Debug Pack
      [37.25MB]
      sha256: 4d6f85a033b6904dce81be1b2b8f12ed966b15c618897384def6b94e27a7eb17
    • Development package (SDK to develop PHP extensions)
      [1.35MB]
      sha256: 37aefdb7abd1ad012fc238f3f06eee1307cec1993493aded710eb330239c6a88

    VS17 x86 Thread Safe (2025-May-06 14:17:02)

    • Zip
      [28.96MB]
      sha256: 2e3893f826675a036fee201e6621cf103bd560161233ee2f55852bfb7e0c0a56
    • Debug Pack
      [37.33MB]
      sha256: 45e6eda52a32cfeb00614659964b65a49a04a82ea405d09b63d8836807bfac45
    • Development package (SDK to develop PHP extensions)
      [1.35MB]
      sha256: a81b8dbb815f59abdc86a5ac45e7c481e0c8e50b70984a8a4e16c0a5a66ebf74

    PHP 8.3 (8.3.21)

    Download source code [27.41MB]

    Download tests package (phpt) [16.61MB]

    VS16 x64 Non Thread Safe (2025-May-06 16:16:22)

    • Zip
      [30.7MB]
      sha256: 7ff517c5945fe50bd41b69a8365678ebde5dcf56e85ac422fb5669b6c7d5a9ce
    • Debug Pack
      [30.34MB]
      sha256: 08e3cd907f3c9fc211484931c3b9b99112ae8b2e2a99560e97f94b14b3238b00
    • Development package (SDK to develop PHP extensions)
      [1.26MB]
      sha256: 7c9e4e2dcf437a4dd959aea0249a0ab0a36f33c9b6324d5a0e49b933b4c580c5

    VS16 x64 Thread Safe (2025-May-06 16:15:28)

    • Zip
      [30.84MB]
      sha256: beac2027a60a76728e7db9752abc13545fe3ff5226dd887d9bae489d8b72aa46
    • Debug Pack
      [30.29MB]
      sha256: 92fb33a4eb607f1aab41a45c5763772c805685fdc4528764d2afa949e15c10da
    • Development package (SDK to develop PHP extensions)
      [1.26MB]
      sha256: 0551d636a2579bc1fe280700fe4bcc8c42933f6d2759640e19e17704b1d7ab27

    VS16 x86 Non Thread Safe (2025-May-06 16:14:38)

    • Zip
      [27.57MB]
      sha256: e87140e523164b9d8d483fbd0e82ef5056c6f5cf22bdcdd78f9d76f8b3664d63
    • Debug Pack
      [30.25MB]
      sha256: f344aacb62afc6fffe9c604309f2817404d6263dd728fc45f7cf349ce900bb10
    • Development package (SDK to develop PHP extensions)
      [1.26MB]
      sha256: bd6cfb01744bc62e6e351c2dd4dde28f5f4800b1971600432d07caa6911a1ce0

    VS16 x86 Thread Safe (2025-May-06 16:12:54)

    • Zip
      [27.55MB]
      sha256: 705a775c0f8b2ae362f11c161a0baefefde1d6dbe13eb23133ed1381480d9f65
    • Debug Pack
      [29.87MB]
      sha256: 207ef15ceec19af59d0904db18110eb45b299320c87b6e6fd5a9c08a43a50260
    • Development package (SDK to develop PHP extensions)
      [1.26MB]
      sha256: a0e9976865b496697a89de4620144035105f34a3955d80006d539fa0607d5f46

    PHP 8.2 (8.2.28)

    Download source code [26.52MB]

    Download tests package (phpt) [15.89MB]

    VS16 x64 Non Thread Safe (2025-Mar-11 18:55:38)

    • Zip
      [30.33MB]
      sha256: eb25bf88edc2b7648b0757f2885df4573a0c85b43bde69a9277b258760562b96
    • Debug Pack
      [25.43MB]
      sha256: 22850eef389a4540dcc92f377caf99b08d1b6e453731995c79d28aeed27bf92c
    • Development package (SDK to develop PHP extensions)
      [1.24MB]
      sha256: 662c730a96e80cfb3bd063db63785c11c9512d2e4b9d46292e9121b800e6b4e8

    VS16 x64 Thread Safe (2025-Mar-11 18:57:48)

    • Zip
      [30.44MB]
      sha256: 50cc8d5437ae81356de64cd6f79996c4f5a2b8a2e2479a0be9af13b16a7eecc8
    • Debug Pack
      [25.59MB]
      sha256: 53dd31a1fa11fb6c8ef28701f5273326300e1d1847ff8712a9daf723732e152b
    • Development package (SDK to develop PHP extensions)
      [1.24MB]
      sha256: c41fe84958fca14eb5f7434c7bfa1bfaedf0f74eadf9db4bcbdc3e1d48984340

    VS16 x86 Non Thread Safe (2025-Mar-11 18:52:24)

    • Zip
      [27.22MB]
      sha256: 65775058a844e60b9a7bdcae1827f053cf2e9bafef482ae637ff0749d10bd7b2
    • Debug Pack
      [25.62MB]
      sha256: d97029baed625b58b30e9ec433358bc4fdb83f9d3efcac5a90d9b9b730d719e9
    • Development package (SDK to develop PHP extensions)
      [1.24MB]
      sha256: 38fd9dba94e75705b7932536393b3f16cd8340171450ee1b252e2b03a6dcaafd

    VS16 x86 Thread Safe (2025-Mar-11 18:51:46)

    • Zip
      [27.2MB]
      sha256: bb5d555e2ecb9c1c220140f92cc53e7709feb2953434b888562d06165c8f14a9
    • Debug Pack
      [25.28MB]
      sha256: d09f710e2f485e0dc4713ae4331de2231d81a945373ccbad8dc239c435319bb2
    • Development package (SDK to develop PHP extensions)
      [1.24MB]
      sha256: 1075002f9bbe1190cab7955f97e1c01e42afd8315f2adcc8726f3699cd43327c

    PHP 8.1 (8.1.32)

    Download source code [25.74MB]

    Download tests package (phpt) [15.43MB]

    VS16 x64 Non Thread Safe (2025-Mar-12 11:13:34)

    • Zip
      [29.34MB]
      sha256: a39a588cbfd304bda51ea5c9b13fec53b9a63f0f306f53ee08409fda58dabbfb
    • Debug Pack
      [24.93MB]
      sha256: f5c327bf4ad24722f9b4dbdcd546c16edcf0562e63ba5446e9bcec74c0ddcf11
    • Development package (SDK to develop PHP extensions)
      [1.21MB]
      sha256: 7a9560331219f198d172cfe6883297ec13ed30b6b01318b5aa962b642464269a

    VS16 x64 Thread Safe (2025-Mar-12 11:17:00)

    • Zip
      [29.44MB]
      sha256: 6729ee58a364b5176360ce826678840a54c55e6036d11499330383cd6689f8e4
    • Debug Pack
      [24.81MB]
      sha256: 7e9511ff17ca112bdcec2594037ba26e3e4829a59e4160c7b8438052c2287fdf
    • Development package (SDK to develop PHP extensions)
      [1.21MB]
      sha256: 9f14572b3aeabcc2a591300a20209ce72b08ca9e5152b74a6840114eb7345d7f

    VS16 x86 Non Thread Safe (2025-Mar-12 11:12:10)

    • Zip
      [26.39MB]
      sha256: 1c2705f73b5eb79e5695622f73d254bcf486f782c9b8c9c2bfc0aabdb80e122e
    • Debug Pack
      [24.99MB]
      sha256: 3a4265a1adf0b592aaf09d3c489b81b214c2c7eedf9fc7677c1f739a5cac13d8
    • Development package (SDK to develop PHP extensions)
      [1.21MB]
      sha256: 889419a652b933b1804fa028ed31b945a7229b0a511e87a67a61023a3a88a210

    VS16 x86 Thread Safe (2025-Mar-12 11:10:46)

    • Zip
      [26.37MB]
      sha256: 1b1dd346ee0b329e7b92a984f2f3dc6c987a300289ff112f978dfcce30565893
    • Debug Pack
      [24.61MB]
      sha256: d9bfac775f4eff2c291e24f4928e91d0bf2482654431876c4232ef7a7fde520d
    • Development package (SDK to develop PHP extensions)
      [1.21MB]
      sha256: bef96cb478e8b34a3d20d6c01e676a68e182c0b4d4456e3a5b3bee440779e970

Downloads & Installation Instructions

Installing PHP is covered
thoroughly in the PHP documentation.

Binaries

Binaries are available for
Microsoft Windows. The PHP project does not currently release binary packages
for other platforms such as Linux or macOS, but they are packaged by distributions
and other providers. For more information, see:

  • Installation instructions for Unix systems
  • Installation instructions for macOS

Source Code

Current Stable
PHP 8.4.7 (Changelog)

  • php-8.4.7.tar.gz (sig) [21,209Kb] 08 May 2025
    fd2be3b9320184e856426e01bd1a428110776ea8e976c3fb6b65808d03fc886a
  • php-8.4.7.tar.bz2 (sig) [17,162Kb] 08 May 2025
    6eccb1b06a4dd9cea314dbe70c762d3d4765471cb6ebf925b9da308978bff988
  • php-8.4.7.tar.xz (sig) [13,297Kb] 08 May 2025
    e29f4c23be2816ed005aa3f06bbb8eae0f22cc133863862e893515fc841e65e3
  • Windows downloads

GPG Keys for PHP 8.4

Old Stable
PHP 8.3.21 (Changelog)

  • php-8.3.21.tar.gz (sig) [19,473Kb] 08 May 2025
    e7f1748c1fa3d2bf8ef2e00508bd62325ba68c3b830b253bc561225a9ba5457d
  • php-8.3.21.tar.bz2 (sig) [15,574Kb] 08 May 2025
    d0769e6e11cfa6c59a16de241668be8c7f31a729950a8d06190dfad2d8622b04
  • php-8.3.21.tar.xz (sig) [12,271Kb] 08 May 2025
    4dfb329f209a552c3716394fc123bb62e80a468b55ce27fc8cb0fd5f30b9dcd6
  • Windows downloads

GPG Keys for PHP 8.3

Old Stable
PHP 8.2.28 (Changelog)

  • php-8.2.28.tar.gz (sig) [18,837Kb] 13 Mar 2025
    3318300888de5023720cc84efad5e005e53f30b5f0072fae65a750dabcaf6ec3
  • php-8.2.28.tar.bz2 (sig) [15,088Kb] 13 Mar 2025
    2919cc1b92190a58dc17904b92e626600b96ce49a4c72e77513786a4406acce5
  • php-8.2.28.tar.xz (sig) [11,863Kb] 13 Mar 2025
    af8c9153153a7f489153b7a74f2f29a5ee36f5cb2c6c6929c98411a577e89c91
  • Windows downloads

GPG Keys for PHP 8.2

Old Stable
PHP 8.1.32 (Changelog)

  • php-8.1.32.tar.gz (sig) [19,465Kb] 13 Mar 2025
    4846836d1de27dbd28e89180f073531087029a77e98e8e019b7b2eddbdb1baff
  • php-8.1.32.tar.bz2 (sig) [15,162Kb] 13 Mar 2025
    a04fdd3df05f948df8a8f2c5d27ab54c1f43822c525f31fd20c19a282452d07c
  • php-8.1.32.tar.xz (sig) [11,615Kb] 13 Mar 2025
    c582ac682a280bbc69bc2186c21eb7e3313cc73099be61a6bc1d2cd337cbf383
  • Windows downloads

GPG Keys for PHP 8.1


GPG Keys

The releases are tagged and signed in the PHP Git Repository.
The following official GnuPG keys of the current PHP Release Manager can be used
to verify the tags:

PHP 8.4

pub   rsa4096 2016-11-25 [SC]
      AFD8 691F DAED F03B DF6E  4605 63F1 5A9B 7153 76CA
uid           [ultimate] Eric A Mann <eric@sixthree.me>
uid           [ultimate] Eric A Mann <eric@eamann.com>
uid           [ultimate] Eric A Mann <eric@eam.me>
uid           [ultimate] Eric Mann <ericmann@php.net>
sub   rsa4096 2016-11-25 [S]
sub   rsa4096 2016-11-25 [E]
sub   rsa4096 2016-11-25 [A]

pub   ed25519 2024-04-17 [SC]
      9D7F 99A0 CB8F 05C8 A695  8D62 56A9 7AF7 600A 39A6
uid           [ultimate] Calvin Buckley (PHP) <calvinb@php.net>
sub   cv25519 2024-04-17 [E]

pub   rsa4096 2024-05-20 [SC]
      0616 E93D 95AF 4712 43E2  6761 7704 26E1 7EBB B3DD
uid           [ultimate] Saki Takamachi (for php.net) <saki@php.net>
sub   rsa4096 2024-05-20 [E]
  

PHP 8.3

pub   rsa4096 2021-04-01 [SC]
      1198 C011 7593 497A 5EC5  C199 286A F1F9 8974 69DC
uid           [ultimate] Pierrick Charron <pierrick@php.net>
sub   rsa4096 2021-04-01 [E]

pub   rsa4096 2016-11-25 [SC]
      AFD8 691F DAED F03B DF6E  4605 63F1 5A9B 7153 76CA
uid           [ultimate] Eric A Mann <eric@sixthree.me>
uid           [ultimate] Eric A Mann <eric@eamann.com>
uid           [ultimate] Eric A Mann <eric@eam.me>
uid           [ultimate] Eric Mann <ericmann@php.net>
sub   rsa4096 2016-11-25 [S]
sub   rsa4096 2016-11-25 [E]
sub   rsa4096 2016-11-25 [A]

pub   ed25519 2021-04-10 [SC]
      C28D937575603EB4ABB725861C0779DC5C0A9DE4
uid           [ultimate] Jakub Zelenka <bukka@php.net>
uid           [ultimate] Jakub Zelenka <jakub.openssl@gmail.com>
uid           [ultimate] Jakub Zelenka <jakub.zelenka@gmail.com>
sub   cv25519 2021-04-10 [E]
  

PHP 8.2

pub   rsa4096 2021-04-01 [SC]
      1198 C011 7593 497A 5EC5  C199 286A F1F9 8974 69DC
uid           [ultimate] Pierrick Charron <pierrick@php.net>
sub   rsa4096 2021-04-01 [E]

pub   rsa4096 2021-04-26 [SC] [expires: 2025-11-24]
      39B6 4134 3D8C 104B 2B14  6DC3 F9C3 9DC0 B969 8544
uid           [ultimate] Ben Ramsey <ramsey@php.net>
sub   rsa4096 2021-04-26 [E] [expires: 2025-11-24]

pub   rsa4096 2021-03-26 [SC] [expires: 2030-03-26]
      E609 13E4 DF20 9907 D8E3  0D96 659A 97C9 CF2A 795A
uid           [ultimate] Sergey Panteleev <sergey@php.net>
uid           [ultimate] Sergey Panteleev <sergey@s-panteleev.ru>
uid           [ultimate] Sergey Panteleev <sergey@sergeypanteleev.com>
sub   rsa4096 2021-03-26 [E] [expires: 2025-03-26]
  

PHP 8.1

pub   2048R/31CBD89E 2016-12-08
      Key fingerprint = 5289 95BF EDFB A719 1D46  839E F9BA 0ADA 31CB D89E
uid                  Joe Watkins <krakjoe@php.net>

pub   rsa4096 2021-04-26 [SC] [expires: 2025-11-24]
      39B6 4134 3D8C 104B 2B14  6DC3 F9C3 9DC0 B969 8544
uid           [ultimate] Ben Ramsey <ramsey@php.net>
sub   rsa4096 2021-04-26 [E] [expires: 2025-11-24]

pub   rsa4096 2021-04-01 [SC]
      F1F6 9223 8FBC 1666 E5A5  CCD4 199F 9DFE F6FF BAFD
uid           [ultimate] Patrick Allaert <patrickallaert@php.net>
sub   rsa4096 2021-04-01 [E]
  

A full list of GPG keys used for current and older releases is also
available.

Выберите вариант загрузки:

  • скачать с сервера SoftPortal (для Windows 32-bit, zip-файл)
  • скачать с сервера SoftPortal (для Windows 64-bit, zip-файл)
  • скачать с официального сайта (для Windows 64-bit, zip-файл)
  • скачать с официального сайта (для Windows 32-bit, zip-файл)

Широко используемый язык скриптов, специально разработанный для Web-программирования. Среди достоинств PHP присутствует легкая интеграция в HTML, поддержка широкого круга баз данных, поддержку протоколов LDAP, IMAP, SNMP, NNTP, POP3, HTTP, COM и прочее (полное описание…)

Рекомендуем популярное

phpMyAdmin 5.2.1

phpMyAdmin — утилита для администрирования MySQL через web-интерфейс, написанная на PHP…

PhpStorm 2024.3.5

Мощный и навороченный редактор для PHP, HTML и JavaScript с возможностью анализа кода на лету,…

PHP 8.4.6

Широко используемый язык скриптов, специально разработанный для Web-программирования….

Perl Builder 2.0k

Perl Builder — это интегрированная среда разработки для Perl. Главные особенностью этой программы…

Perl Express 2.4.5

Perl Express — уникальная и мощная интегрированная среда разработки под, которая включает множественные инструменты для работы с языком программирования Perl…

Последнее обновление: 25.11.2023

Есть разные способы установки всего необходимого программного обеспечения. Мы можем устанавливать компоненты по отдельности, а можем использовать уже готовые
сборки на подобие Denwer или EasyPHP. В подобных сборках компоненты уже имеют начальную настройку и уже готовы для создания сайтов. Однако рано или поздно разработчикам
все равно приходится прибегать к установке и конфигурации отдельных компонентов, подключения других модулей. Поэтому мы будем устанавливать все компоненты по отдельности.
В качестве операционной системы будет использоваться Windows.

Что подразумевает установка PHP? Во-первых, нам нужен интерпретатор PHP. Во-вторых, необходим веб-сервер, например, Apache, с помощью которого мы сможем обращаться
к ресурсам создаваемого нами сайта.

Для установки PHP перейдем на офсайт разработчиков https://www.php.net/downloads. На странице загрузок мы можем найти различные дистрибутивы
для операционной системы Linux. Если нашей операционной системой является Windows, то нам надо загрузить один из пакетов со страницы https://windows.php.net/download.

Интерпретатор PHP имеет две версии: Non Thread Safe и Thread Safe. В чем разниц между ними?
Версия Thread Safe позволяет задействовать многопоточность, тогда как Non Thread Safe — однопоточная версия.
Выбрем версию Thread Safe.

Установка PHP на Windows

Распакуем загруженный архив в папку, которую назовем php. Пусть эта папка у нас будет располагаться в корне диска C, а ее полный путь будет C:\php.

Теперь нам надо выполнить минимальную конфигурацию PHP. Для этого зайдем в распакованный архив и найдем там файл php.ini-development.

Установка интерпретатора PHP на Windows

Это файл
начальной конфигурации интерпретатора. Переименуем этот файл в php.ini и затем откроем его в текстовом редакторе.

Найдем в файле строку:

;extension_dir = "ext"

Эта строка указывает на каталог с подключаемыми расширениями для PHP. Расширения позволяют задействовать нам некоторую дополнительную функциональность,
например, работу с базой данных. Все расширения находятся в распакованном каталоге ext.

Раскомментируем эту строку, убрав точку с запятой и укажем полный путь к папке расширений php:

extension_dir = "C:\php\ext"

Остальное содержимое файла оставим без изменений.

Теперь установим веб-сервер.

Язык PHP

Много слышал про язык PHP, который, в частности, используется для динамического формирования HTML-страниц на веб-сервере в ответ на запросы пользователей. Скрипты на языке PHP пишутся прямо в теле HTML-страниц, а пользователь получает в ответ на свой запрос уже сформированную этими скриптами готовую HTML-страницу. (Сегодня это лишь одно из нескольких применений этого языка, но данный пост касается только способа применения при формировании HTML-страниц.)

Изначально аббревиатура PHP расшифровывалась как «Personal Home Page», так как язык использовался для создания личных интерактивных (для статических HTML-страничек PHP не требуется) HTML-страничек (язык родился в 1995 году). Но с годами применение языка сильно расширилось, поэтому сегодня эта аббревиатура расшифровывается как «PHP: Hypertext Preprocessor».

В интернетах часто пишут про «установку PHP», что может ввести в заблуждение, так как язык программирования — это лишь правила, которые не требуют никакой установки. Фраза про «установку PHP» должна пониматься как «установка интерпретатора PHP», то есть установка программы, которая может интерпретировать (истолковать) скрипт на языке PHP и исполнить его.

Локальный веб-сервер

Самого по себе интерпретатора PHP недостаточно, так как из вышеописанного должно быть понятно, что этот интерпретатор всегда работает в связке с другой программой — веб-сервером. Я устанавливаю PHP для работы локально (в рамках моего компьютера, без выхода в интернет), поэтому мой веб-сервер назовем локальным веб-сервером.

Очень часто при работе с языком PHP используют веб-сервер «Apache» или веб-сервер «Nginx». Мне не хотелось устанавливать на компьютер новые программы, когда в моей операционной системе «Windows 10» уже есть веб-сервер из набора IIS («Internet Information Services»). Набор серверов IIS является частью (компонентой) операционной системы «Windows 10».

В прошлом году я писал про этот веб-сервер пост «JavaScript: локальный веб-сервер из набора IIS». По умолчанию набор IIS в операционной системе отключен. В указанном посте я описывал, как его включить. Это делается довольно просто и быстро.

Схема работы

Насколько я понимаю, схема работы интерпретатора PHP в связке с веб-сервером выглядит примерно так:

1. Пользователь вводит в адресную строку браузера URL-адрес страницы сайта, написанной на языке PHP, например (обработите внимание на расширение .php страницы сайта):

http://localhost/hello.php

2. Браузер формирует HTTP-запрос и отправляет его на веб-сервер (в моем случае — на локальный веб-сервер, это видно по слову localhost в URL-адресе выше);

3. Веб-сервер (в моем случае — из набора IIS) по URL-адресу определяет, что для обработки такой страницы (с расширением .php) требуется интерпретатор PHP и отправляет текст указанной страницы на обработку интерпретатору PHP;

4. Интерпретатор PHP формирует из кода на языке PHP готовую HTML-страницу и передает ее веб-серверу;

5. Веб-сервер формирует HTTP-ответ с готовой HTML-страницей и отправляет этот ответ браузеру;

6. Браузер получает HTTP-ответ от веб-сервера и отображает полученную HTML-страницу в своем окне. Конец.

Получение интерпретатора PHP

Релизы программы-интерпретора PHP для операционных систем «Windows» можно загрузить со следующего адреса:

https://windows.php.net/download/

Я загрузил оттуда архив в формате ZIP (чуть меньше 30 МБ) с файлами интерпретатора версии 8.1.10 (от 30 августа, самая свежая на сегодня):

https://windows.php.net/downloads/releases/php-8.1.10-nts-Win32-vs16-x64.zip

Вообще, по указанной выше ссылке доступно несколько разных вариантов дистрибутива, в том числе два, помеченных аббревиатурами TS (Thread Safe) и NTS (Non Thread Safe). По этому поводу на вышеуказанной странице сказано на английском следующее:

IIS
If you are using PHP as FastCGI with IIS you should use the Non-Thread Safe (NTS) versions of PHP.

TS and NTS
TS refers to multithread capable builds. NTS refers to single thread only builds. Use case for TS binaries involves interaction with a multithreaded SAPI and PHP loaded as a module into a web server. For NTS binaries the widespread use case is interaction with a web server through the FastCGI protocol, utilizing no multithreading (but also for example CLI).

Я выбрал вариант NTS, но не скажу, что четко понимаю, что означают эти аббревиатуры.

Полученные файлы я распаковал из архива и поместил в папку внутри папки «Program Files». В принципе, не имеет значения, где именно размещать на компьютере полученные файлы интерпретатора PHP.

Связываем веб-сервер из набора IIS и интерпретатор PHP

(Все названия пунктов и программ операционной системы «Windows 10» в данном посте даны для варианта операционной системы с интерфейсом на русском языке. В варианте на английском языке эти названия, очевидно, будут на английском языке.)

Локальный веб-сервер из набора IIS у меня уже включен и работает (см. об этом уже упоминавшийся отдельный пост). Я создал небольшой пробный текстовый файл «hello.php» с кодом на языке HTML и с вкраплением скрипта на языке PHP и поместил в папку своего локального сайта, у меня это такая папка:

C:\inetpub\wwwroot\

Веб-сервер отображает ее в уже знакомый нам URL-адрес:

http://localhost/

Я набрал в браузере URL-адрес http://localhost/hello.php, но получил в ответ от веб-сервера страницу с ошибкой «404.3». Там было много текста, но, в частности, было сказано: «Если страница является сценарием, добавьте обработчик.». Это логично, ведь веб-сервер пока что не знает, как обрабатывать страницы с расширением «.php». Ему следует дать нужные указания.

Тут следует отметить, что взаимодействие веб-сервера и интерпретатора PHP будет происходить через так называемый интерфейс CGI (сейчас вместо первоначального CGI используется его более продвинутый потомок FastCGI). Но когда я включал веб-сервер из набора IIS, я просто нажал галку на установку соответствующей компоненты, а более подробных указаний не дал. При таком раскладе по умолчанию компонента с интерфейсом CGI (FastCGI) отключена (по умолчанию изначально веб-сервер из набора IIS работает только со статическими HTML-страницами). Так что компоненту с интерфейсом CGI (FastCGI) сначала следует включить.

Для этого, как и для первоначального включения набора IIS, откроем диалог «Компоненты Windows». Открываю через поиск «Панель управления», выбираю режим просмотра «Крупные значки», выбираю пункт «Программы и компоненты». В открывшемся окне в меню слева выбираю пункт «Включение или отключение компонентов Windows» — открывается искомый диалог:

Как видно на иллюстрации выше, в разделе «Службы IIS – Службы Интернета – Компоненты разработки приложений» включаем галку с названием «CGI». После этого следует нажать на кнопку «OK» внизу и подождать несколько минут, пока операционная система найдет нужные файлы и включит нужную компоненту.

Теперь наш локальный веб-сервер умеет связываться с другими программами по интерфейсу CGI (FastCGI). Осталось только указать ему, где находится интерпретатор PHP и для обработки каких страниц следует вызывать этот интерпретатор через интерфейс CGI (FastCGI).

Настройку веб-сервера из набора IIS можно производить, как просто редактируя соответствующие конфигурационные файлы, так и используя специальную программу-диспетчер. Я предпочитаю второй вариант. Эту программу можно открыть через поиск операционной системы, набрав название «Диспетчер служб IIS». В окне этой программы в меню «Подключения» слева следует в списке найти и выбрать свой сайт (у меня он определен один и название по умолчанию «Default Web Site» я не стал менять). После этого в меню в центре окна будут показаны пункты настройки для выбранного сайта:

Из меню в центре окна следует выбрать пункт «Сопоставления обработчиков». В меню в центре окна откроется список сопоставлений обработчиков. Из меню «Действия» справа следует выбрать пункт «Добавить сопоставление модуля…» и заполнить открывшийся диалог примерно следующим образом:

Диалог на иллюстрации выше несколько отличается от того, который открывается при первоначальном добавлении сопоставления (это я открыл диалог уже добавленного ранее сопоставления), но это не имеет большого значения: тут видно, какие примерно значения следует вписать в поля. Этим сопоставлением мы показываем веб-серверу, что страницы с расширением «.php» следует передать на обработку исполняемому файлу «php-cgi.exe» интерпретатора PHP (у интерпретатора, кстати, есть целый ряд исполняемых файлов, а именно этот указан в рекомендациях по установке) через интерфейс, реализуемый модулем «FastCgiModule» (этот модуль, кстати, был бы недоступен, если бы мы не включили ранее компоненту «CGI» операционной системы).

На этом установка интерпретатора PHP и все нужные настройки закончены.

Тестирование

Поместим в пробный файл «hello.php» следующий код на языке HTML с вкраплением скрипта на языке PHP (пробный код я взял из руководства для начинающих на сайте языка PHP и немного изменил, скрипт на языке PHP выделен синим цветом, после него в коде есть один символ пробела, чтобы в результатном HTML-файле остался символ новой строки в этом месте):

<html>
  <head>
    <title>Тест языка PHP</title>
  </head>
  <body>
    <?php echo '<p>Привет, мир!</p>'; ?> 
  </body>
</html>

Вместо этого файла веб-сервер на URL-адрес http://localhost/hello.php возвращает браузеру следующий файл с кодом на языке HTML:

<html>
  <head>
    <title>Тест языка PHP</title>
  </head>
  <body>
    <p>Привет, мир!</p> 
  </body>
</html>

Браузер отображает в своем окне фразу «Привет, мир!».

(Кстати, обычно для русского языка в заголовке HTML-страницы следует для кодировки UTF-8 указывать HTML-элемент <meta charset="utf-8">, чтобы русские буквы отобразились правильно. Но в данном случае я контролирую веб-сервер и поэтому настроил его так, чтобы веб-сервер возвращал правильные HTTP-заголовки с нужным указанием на кодировку HTML-страницы. Поэтому в примере выше указание <meta charset="utf-8"> не понадобилось.)

Еще один тест. Заменим содержимое файла «hello.php» на следующее:

<?php phpinfo(); ?>

Функция phpinfo сформирует целую HTML-страницу с подробной информацией об используемом интерпретаторе PHP (номере его версии, настройках и так далее), затем веб-сервер вернет ее браузеру на ввод того же URL-адреса, что вводился для первого примера. У меня это получилось.

Понравилась статья? Поделить с друзьями:
0 0 голоса
Рейтинг статьи
Подписаться
Уведомить о
guest

0 комментариев
Старые
Новые Популярные
Межтекстовые Отзывы
Посмотреть все комментарии
  • Windows все версии сравнение
  • Windows game bar hotkey
  • Почему может не работать звук на ноутбуке windows 10
  • Как открыть 443 порт windows server 2008
  • Установка confluence на windows