Последнее обновление: 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. Пусть эта папка у нас будет располагаться в корне диска C, а ее полный путь будет C:\php.
Теперь нам надо выполнить минимальную конфигурацию PHP. Для этого зайдем в распакованный архив и найдем там файл php.ini-development.
Это файл
начальной конфигурации интерпретатора. Переименуем этот файл в php.ini и затем откроем его в текстовом редакторе.
Найдем в файле строку:
;extension_dir = "ext"
Эта строка указывает на каталог с подключаемыми расширениями для PHP. Расширения позволяют задействовать нам некоторую дополнительную функциональность,
например, работу с базой данных. Все расширения находятся в распакованном каталоге ext.
Раскомментируем эту строку, убрав точку с запятой и укажем полный путь к папке расширений php:
extension_dir = "C:\php\ext"
Остальное содержимое файла оставим без изменений.
Теперь установим веб-сервер.
-
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
-
Zip
Last Updated :
17 Jul, 2019
Thread-safe: It is used to ensure that when the shared data structure which is manipulated by different threads are prevented from entering the race condition. Thread-safety is recommended when the web server run multiple threads of execution simultaneously for different requests. In Thread Safety binary can work in a multi-threaded web server context. Thread Safety works by creating a local storage copy in each thread so that the data will not collide with another thread.
For example:
- Apache + LoadModule
- IIS
Non-thread-safe: It does not check the safety of the threads which makes it faster to run but at the same time, it becomes more unstable and crashes very frequently. It refers to a single thread only builds. In non-thread safe version binaries widespread use in the case of interaction with a web server through the FastCGI protocol, by not utilizing multi-threading.
For example:
- Apache + FastCGI
- IIS + FastCGI
So it depends on the way that you want to use PHP. AFAIR running PHP with the fastCGI is the preferable way. If you are unknown which version of PHP is installed in your system then there is an easy way to know that.
Check the version of installed PHP Thread safe or Non Thread Safe:
Open a phpinfo() and search for the line Thread safety for a thread-safe build you should find enable.
- On Windows:
php -i|findstr "Thread"
- On *nix:
php -i|grep Thread
- In the both cases will display any one
Thread Safety => enabled //or Thread Safety => disabled
В данной статье мы научимся устанавливать PHP на Windows Server. Существует несколько способов установки PHP, включая PHP Manager for IIS от Microsoft, но мы остановимся на универсальном ��пособе установки, который позволит установить PHP даже без привязки, например к IIS. Интегрировать PHP и IIS не сложно.
Для каждой версии PHP существует два варианта PHP: Non Thread Safe и Thread Safe
Thread Safe — потоко безопасная. Выбираем этот вариант, если PHP используется как mod_php (модуль Apache). В большинстве случаев, в связке с веб-сервером IIS, для операционной системы Windows Server вариант Thread Safe не подходит.
Non Thread Safe — потоконебезопасная версия PHP. Используется в случаях, когда PHP запускается через CGI и каждый поток, это отдельный, изолированный от других процесс CGI и нет необходимости в потокобезопасноcти. При этом скорость обработки запросов выше. Non Thread Safe также необходимо выбирать, если планируется использовать FastCGI. Как раз этот режим работы рекомендуется использовать в работе IIS + PHP.
Для установки PHP необходимой версии, перейдем на страницу скачивания PHP для Windows и скачаем zip архив VS16 x64 Non Thread Safe необходимой нам версии PHP. В данном примере будем использовать PHP 8.1
Далее, создадим на диске сервера папку, в которую необходимо разархивировать скачанный архив. Например, C:\php
Кроме того, для работы PHP на операционной системе Windows необходим пакет Microsoft Visual Studio.
Так как мы выбрали версию VS16 x64, на этой же странице сайта есть ссылка на скачивание необходимой версии Microsoft Visual Studio, а именно Visual Studio 2015-2019
Скачаем и установим: Во время установки не изменяем предлагаемые настройки и дожидаемся завершения.
Дополнительно рекомендуется прописать путь к PHP в глобальной переменной PATH. Для этого откроем окно Свойств системы: Пуск — Выполнить и выполним команду
control system
Далее откройте окно дополнительных свойств системы (Advanced sysytem setting) — вкладка Дополнительно (Advanced) — нажмите кнопку Переменные среды (Environmant Variables)
Добавьте путь к папке, в которой размещен PHP в значение переменной PATH. В нашем случае, это папка C:\php; (после указанного пути обязательно поставьте точку с запятой)
Сохраните изменения, поочередно нажимая ОК в открытых окнах.
Чтобы узнать установленную версию PHP, в окне командной строки выполним команду
php -v
При этом нет надобновти перехода в каталог С:/php так как ранее путь к исполняемому файлу PHP был добавлен в переменные окружения.
В данной статье мы научились устанавливать PHP необходимой версии на Windows Server.
Здесь ответ на ваш вопрос.
Для тех, кто не знает английский.
Версию сервера нужно выбирать в зависимости от того, как вы интегрируете PHP c веб-сервером.
Например, когда вы используете mod_php, у вас модуль и PHP всегда загружены в память и каждый запрос обрабатывается в отдельном потоке. Из-за этого mod_php работает быстрее, чем CGI. В данном случае нужно использовать потоко-безопасную реализацию (thread-safe) поскольку каждый поток имеет доступ к памяти другого потока.
Когда вы работаете с IIS, у вас PHP запускается ввиде отдельного процесса через CGI и в таком случае потоко-безопасность не имеет смысла, поскольку у вас 1 процесс и фактически 1 поток созданный этим же процессом. Операционная система изолирует память процессов по умолчанию.
В случае модели с FastCGI, потокобезопасность также не имеет смысла, поскольку тотже PHP-FPM держит несколько отдельных процессов PHP в памяти, но не потоков.