Перейти к основному содержанию

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

IIS

Сегодня мы будем с вам устанавливать PHP 8.1 на Windows Server 2016 для web-сервера IIS 10. Собственно, причина обычная:

🐘 PHP — критическая уязвимость

Соответственно, нам понадобится минимум версия PHP 8.2.35.

Дистрибутив PHP 8.2

https://www.php.net/downloads

Находим PHP 8.2, и тыкаем в ссылку Windows downloads.

php

Доступны две версии PHP:

  • Non Thread Safe
  • Thread Safe

Версию нужно выбирать в зависимости от того, как вы интегрируете PHP c веб-сервером. Когда вы используете mod_php, у вас модуль и PHP всегда загружены в память и каждый запрос обрабатывается в отдельном потоке. Из-за этого mod_php работает быстрее, чем CGI. В данном случае нужно использовать потокобезопасную реализацию (thread-safe) поскольку каждый поток имеет доступ к памяти другого потока. Здесь мы мягко намекаем на Linux.

Когда вы работаете с IIS,  здесь мы мягко намекаем на Windows, у вас PHP запускается в виде отдельного процесса посредством CGI. В таком случае потокобезопасность не имеет смысла, поскольку у вас один процесс и один поток созданный этим процессом. Операционная система изолирует память процессов по умолчанию, NTS в этом случае работает быстрее.

В случае модели с FastCGI, потокобезопасность также не имеет смысла, поскольку тот же PHP-FPM держит несколько отдельных процессов PHP в памяти, но не потоков. Тоже имейте в виду.

В нашем случае (Windows, IIS, CGI) нам нужна версия PHP NTS — Non Thread Safe. Скачиваем соответствующий ZIP архив, распаковываем.

php

Создаём папку C:\Program Files\PHP\v8.2, копируем в неё содержимое архива.

Права доступа

В папке C:\Program Files\PHP выше уровнем у вас может находиться несколько версий PHP. На неё нужно дать права IIS. Удобнее вешать права на неё, чтобы они применялись ко всем версиям PHP через наследование.

php

Не помню каким точно юзерам надо права, напишите уточнение в комментариях, кто знает, я даю двум юзерам IUSR и IIS_IUSRS права:

  • чтение
  • чтение и выполнение
  • чтение списка содержимого директории

Серверные переменные

Настроим серверные переменные. Свойства компьютера или Control Panel → System and Security → System. Advanced System Settings.

php

Вкладка Advanced, кнопка Environment Variables... Блок System variables, находим переменную Path, выделяем её. Edit.

php

Добавляем новый путь:

C:\Program Files\PHP\v8.2
php

Кнопкой Move Up поднимаем его выше остальных версий PHP, если они у вас есть.

php

OK, OK, OK.

В командной строке проверяем:

php --version
php

По умолчанию теперь используется PHP 8.2.35.

PHP и IIS

IIS и PHP можно подружить вручную, но мне лень. Использую для этих целей PHP Manager for IIS.

https://github.com/phpmanager/phpmanager/releases

Я уже ставил его ранее, приведу инструкцию для версии 2.4:

Запускаю инсталлятор.

php

Next.

php

Принимаем лицензионное соглашение, Next.

php

Next.

php

Install.

php

Ждём.

php

Finish.

В IIS появляется новая оснастка под названием PHP Manager.

php

Для каждого сайта можно выбирать свою PHP версию, регистрировать новые, управлять расширениями и т.д.

Однако, если вы собираетесь обновить версию PHP Manager for IIS, то сначала удаляйте старую, потом устанавливайте новую.

Выбираем в IIS сайт или сам сервер, запускаем оснастку PHP Manager.

php

Зарегистрируем новую версию PHP. Register new PHP version.

php

Указываем путь к php-cgi.exe.

C:\Program Files\PHP\v8.2\php-cgi.exe

OK.

php

Путь к файлу php.ini и логу ошибок подставляется автоматически.

php.ini

Теперь нужно настроить php.ini я уже не помню что раньше настраивал для прежней версии PHP, поэтому воспользуюсь сравнением файлов с помощью Total Commander.

Сравнить файлы с помощью Total Commander

Расширения можно искать здесь:

http://pecl.php.net/

php

Теги

 

Похожие материалы

Установка PHP 7.3.1 на IIS 10

Расскажу вам о наиболее оптимальном способе установки PHP на IIS. Ставить будем PHP 7.3.1 на IIS 10. IIS крутится на сервере с Windows Server 2016. Раньше я устанавливал PHP руками, помните, что для Windows нужно выбирать PHP NTS версию. Однако, теперь решил последовать совету с официального сайта. 

Теги