У матеріалі розбирається підхід Ayesh Karunaratne до встановлення та оновлення PHP на Windows за допомогою Winget як пакетного менеджера.
1. Що змінилося: PHP тепер доступний через Winget
На кінець 2024 року у Winget з'явилися офіційні маніфести для PHP. Тепер PHP для Windows можна:
- знайти через командний рядок,
- завантажити як ZIP,
- встановити як «portable» застосунок,
- оновлювати до останніх патчів,
- видаляти стандартними засобами Windows.
Всі бінарні файли PHP беруться з windows.php.net. У Winget маніфестах описані:
- актуальні версії PHP для Windows,
- SHA-256 хеші для перевірки цілісності,
- посилання для завантаження під x64 та x86.
Обмеження: згідно з оригінальним матеріалом, збірки для Arm64 через Winget наразі недоступні, а всі доступні збірки є Thread-Safe.
PHP встановлюється як portable застосунок, тому можна тримати кілька версій PHP одночасно. Для роботи з такими пакетами Winget має підтримувати маніфести не нижче версії 1.9.0.
На сучасних версіях Windows 11 та Windows Server 2025 Winget встановлено за замовчуванням. Якщо його немає, автор радить орієнтуватися на офіційну документацію Microsoft: Install winget.

2. Ідентифікатори пакетів PHP у Winget
Усі Windows-збірки PHP у Winget живуть у просторі імен PHP.PHP. Повний ідентифікатор пакета формується так:
PHP.PHP.<major>.<minor>— наприклад, для PHP 8.4 цеPHP.PHP.8.4.
Паралельно використовується короткий «монікер» у стилі Debian/Ubuntu:
php8.4відповідаєPHP.PHP.8.4.
Знання цих назв потрібне для пошуку, встановлення, оновлення і видалення конкретних версій.
3. Пошук пакетів PHP у Winget
Перший практичний крок — подивитися, які версії PHP доступні з вашої системи.
3.1. Список усіх доступних версій PHP
Щоб отримати список усіх пакетів PHP у просторі імен PHP.PHP, використовується команда:
winget search PHP.PHP

Команда показує всі наявні версії PHP, аналогічно до apt search php або dnf search php у дистрибутивах Linux.
3.2. Деталі конкретної версії PHP
Щоб дізнатися докладну інформацію про певний пакет (версії, архітектури, посилання на завантаження, контрольні суми), використовується winget show.
Приклад для PHP 8.4:
winget show PHP.PHP.8.4

За словами автора, той самий результат дає команда з монікером:
winget show php8.4.
На цьому етапі можна перевірити, які саме збірки є для вашої архітектури (x64 чи x86) і яку версію плануєте ставити в робоче середовище.
4. Завантаження ZIP збірки PHP без встановлення
Якщо потрібно просто отримати ZIP з PHP з офіційного сайту, не змінюючи систему, Winget можна використовувати як завантажувач із перевіркою цілісності.
Команда winget download:
- завантажує ZIP із windows.php.net,
- перевіряє файл за SHA-256 з маніфесту,
- не вносить змін до PATH і не реєструє пакет як встановлений.
4.1. Приклад завантаження PHP 8.4 у поточну директорію
У матеріалі наведено приклад завантаження PHP 8.4:
winget download php8.4 --skip-dependencies -d .

Ключові параметри:
--skip-dependencies— пропускає завантаження Microsoft Visual C++ (VC runtime), від якого залежить PHP. Це зручно, якщо VC вже встановлено або ви хочете керувати ним окремо.-d .— вказує директорію завантаження. Крапка означає поточну робочу директорію.
Ця команда завантажить Thread-Safe збірку PHP під архітектуру вашого CPU (x64 або x86), на якій ви запускаєте Winget.
Різниця між download та install принципова: download лише кладе ZIP у файлову систему, а install ще й реєструє пакет та готує середовище для запуску php.
5. Встановлення PHP з оновленням PATH
Щоб PHP можна було запускати просто через php у PowerShell або CMD, потрібно саме встановлення, а не лише завантаження.
Команда winget install виконує за один крок:
- завантаження відповідного ZIP,
- перевірку за SHA-256,
- розпакування файлів,
- додавання шляху до
php.exeу системну змінну PATH, - реєстрацію пакета в Winget для подальших оновлень і видалення.
5.1. Приклад: встановлення PHP 8.4
Для встановлення PHP 8.4 використовується:
winget install PHP.PHP.8.4

Після виконання цієї команди:
- ви можете запускати
phpіз будь-якої директорії, - Winget «знає», що PHP 8.4 встановлений, і зможе його оновлювати.
5.2. Кілька версій PHP одночасно
Автор підкреслює, що можна тримати одночасно кілька версій PHP, встановлених через Winget. Однак є кілька нюансів:
- кожна нова встановлена версія може переписати шлях до основного виконуваного файлу
php— у PATH залишиться остання встановлена версія, - крім стандартного
php, пакети додають версійні псевдоніми, наприкладphp84для PHP 8.4.
Тобто:
php— це завжди «активна» версія, встановлена останньою,php84— дозволяє прямо викликати конкретну версію незалежно від того, яка зараз за замовчуванням.
У матеріалі згадується, що підтримка кількох псевдонімів знаходиться у процесі доопрацювання (обговорюється у microsoft/winget-cli#2884), тож поведінка й можливості псевдонімів можуть змінюватися в майбутніх версіях Winget.
6. Оновлення вже встановлених версій PHP
Коли виходить нова патч-версія (наприклад, 8.4.1 замість 8.4.0) у рамках тієї ж гілки, Winget бачить це як оновлення відповідного пакета.
Стандартний сценарій:
- перевірити наявні оновлення через
winget update, - окремо оновити потрібну гілку PHP.
Приклад для PHP 8.4:
Ця команда оновить встановлений пакет PHP.PHP.8.4 до останньої доступної патч-версії в цій гілці, використовуючи ті самі перевірки цілісності та механізм portable встановлення, що й під час первинної інсталяції.
7. Видалення PHP, встановленого через Winget
Для видалення PHP автор описує варіант через графічний інтерфейс Windows. Версії PHP, встановлені через Winget, з'являються в стандартному списку застосунків:
- відкрити Settings,
- перейти до Apps → Installed Apps,
- знайти потрібну версію PHP за назвою (наприклад, PHP 8.4),
- натиснути «Uninstall» для видалення.

Таким чином, навіть якщо PHP ставився з командного рядка, керувати встановленими версіями можна стандартними засобами Windows без додаткових утиліт.
8. Коли цей підхід особливо корисний
З урахуванням обмежень, описаних автором, підхід з Winget добре підходить, коли:
- ви працюєте на Windows 11 або Windows Server 2025 з актуальним Winget (маніфести 1.9.0 і вище),
- потрібно швидко розгорнути кілька версій PHP як portable без складних інсталяторів,
- важлива перевірка завантажень за SHA-256 із офіційних збірок windows.php.net,
- ви хочете отримати звичний для адміністрування сценарій «search — install — update — remove», подібний до Linux-пакетних менеджерів.
Якщо ж потрібні Arm64 збірки або специфічні кастомні конфігурації, доведеться орієнтуватися на альтернативні способи встановлення PHP, оскільки в поточних маніфестах Winget вони не описані.
Джерело: Ayesh Karunaratne — PHP.Watch: статьи