Як встановити PHP на Windows через Winget: покроковий урок

У матеріалі розбирається підхід 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.

How to install PHP on Windows using 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

winget search for PHP.PHP
`winget search PHP.PHP` shows all available PHP packages and their latest versions.

Команда показує всі наявні версії PHP, аналогічно до apt search php або dnf search php у дистрибутивах Linux.

3.2. Деталі конкретної версії PHP

Щоб дізнатися докладну інформацію про певний пакет (версії, архітектури, посилання на завантаження, контрольні суми), використовується winget show.

Приклад для PHP 8.4:

winget show PHP.PHP.8.4

winget show PHP.PHP
`winget show PHP.PHP.4` shows all available information about the `PHP.PHP.8.4` package

За словами автора, той самий результат дає команда з монікером:

  • 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 .

winget download PHP.PHP.8.4
`winget download php8.4` downloads the zip file for the current CPU architecture to the current working directory

Ключові параметри:

  • --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

winget install PHP.PHP.8.4
`winget install PHP.PHP.8.4` installs PHP on the system as a portable application, and updates the `PATH` variable on the system

Після виконання цієї команди:

  • ви можете запускати 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 бачить це як оновлення відповідного пакета.

Стандартний сценарій:

  1. перевірити наявні оновлення через winget update,
  2. окремо оновити потрібну гілку PHP.

Приклад для PHP 8.4:

Приклад коду в оригіналі

Ця команда оновить встановлений пакет PHP.PHP.8.4 до останньої доступної патч-версії в цій гілці, використовуючи ті самі перевірки цілісності та механізм portable встановлення, що й під час первинної інсталяції.

7. Видалення PHP, встановленого через Winget

Для видалення PHP автор описує варіант через графічний інтерфейс Windows. Версії PHP, встановлені через Winget, з'являються в стандартному списку застосунків:

  1. відкрити Settings,
  2. перейти до Apps → Installed Apps,
  3. знайти потрібну версію PHP за назвою (наприклад, PHP 8.4),
  4. натиснути «Uninstall» для видалення.

winget remove a PHP version

Таким чином, навіть якщо 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: статьи

Пошук

Закрити