Как установить PHP на Windows

Чтобы установить PHP на Windows, скачивают zip-архив с php.net: установщика нет, архив распаковывают и показывают Windows, где он лежит. Инструкция написана для Windows 11, на Windows 10 всё так же. В итоге получится PHP для командной строки, встроенного веб-сервера и Composer — то, что нужно для локального проекта.

Какую сборку PHP скачать

Откройте https://www.php.net/downloads.php?os=windows. У каждой версии PHP несколько архивов, различаются они по названию:

  • x64 — для 64-битной Windows, то есть почти для любого компьютера сегодня. Сборок для ARM-процессоров на php.net нет.
  • Non Thread Safe (NTS) — для командной строки, встроенного сервера, Composer и FastCGI (IIS, Nginx). Если сомневаетесь, берите её.
  • Thread Safe (TS) — только чтобы подключать PHP модулем к Apache.

Значит, для разработки на своём компьютере скачайте VS17 x64 Non Thread Safe самой новой версии, сейчас это PHP 8.5. Файл называется примерно php-8.5.11-nts-Win32-vs17-x64.zip.

Как распаковать PHP и создать php.ini

PHP нужен Microsoft Visual C++ Redistributable. Часто его уже поставила какая-нибудь программа. Если нет, скачайте vc_redist.x64.exe по адресу https://aka.ms/vs/17/release/vc_redist.x64.exe (ссылка с php.net) или поставьте через winget:

winget install --id Microsoft.VCRedist.2015+.x64 -e

Щёлкните скачанный архив правой кнопкой, выберите Извлечь все и распакуйте в C:\php так, чтобы php.exe лежал прямо в C:\php. Потом сделайте файл настроек из шаблона для разработки. php.ini-development показывает ошибки на странице — на своём компьютере это то, что нужно. php.ini-production их прячет и рассчитан на серверы.

Copy-Item C:\php\php.ini-development C:\php\php.ini notepad C:\php\php.ini

Как включить curl, mbstring, openssl и другие расширения

Расширения уже лежат в C:\php\ext, но выключены: в php.ini их строки начинаются с ;. В «Блокноте» найдите каждую строку ниже через Ctrl-F и сотрите ; в её начале. Полный путь в extension_dir нужен, чтобы PHP находил расширения из любой папки.

C:\php\php.ini
extension_dir = "C:\php\ext" extension=curl extension=fileinfo extension=mbstring extension=openssl extension=pdo_mysql extension=zip

Сохраните файл. pdo_mysql — для MySQL и MariaDB. Для PostgreSQL включите pdo_pgsql, для SQLite — pdo_sqlite. Composer без openssl не работает, а с zip работает быстрее.

Как добавить PHP в PATH и проверить php -v

  1. Нажмите Пуск, наберите переменные среды и откройте Изменение переменных среды текущего пользователя.
  2. В блоке Переменные среды пользователя для <ваше имя> выберите Path и нажмите Изменить.
  3. Нажмите Создать, впишите C:\php и нажмите ОК в обоих окнах.

Откройте новое окно «Терминала» и проверьте версию, расширения и файл настроек:

php -v php -m php --ini

Версия начинается с PHP 8.5. В списке расширений должны быть curl и openssl. Проверка --ini должна показать Loaded Configuration File: C:\php\php.ini.

Эти сборки есть и в winget: winget install --id PHP.PHP.NTS.8.5 -e Он сам добавит команду php, но php.ini не создаст: в какую папку его положить, покажет проверка --ini.

Как запустить сайт на встроенном веб-сервере

В PHP есть небольшой веб-сервер для разработки. Перейдите в папку проекта и запустите его. Вместо C:\projects\site подставьте свою папку. Потом откройте в браузере http://localhost:8000. Остановить сервер — Ctrl-C.

cd C:\projects\site php -S localhost:8000

Этот сервер обрабатывает запросы по одному и годится только для своего компьютера. Для настоящего сайта нужен веб-сервер вроде Nginx или IIS с PHP через FastCGI. В Laravel тот же сервер запускает команда:

php artisan serve

Как поставить Composer

Composer ставит в проект библиотеки PHP. Для Windows у него свой установщик: скачайте Composer-Setup.exe со страницы https://getcomposer.org/download/ и запустите. Он спросит, какой PHP использовать: если не найдёт сам, укажите C:\php\php.exe. Потом он добавит команду composer в PATH. Если он жалуется на openssl, проверьте это расширение в php.ini. Затем откройте новое окно «Терминала»:

composer -V

Если PHP не запускается: частые ошибки

  • 'php' is not recognized as an internal or external command, operable program or batch file. — откройте новое окно «Терминала». Если не помогло, проверьте, что в PATH есть C:\php, а php.exe лежит прямо в этой папке, а не во вложенной.
  • The code execution cannot proceed because VCRUNTIME140.dll was not found. — поставьте Visual C++ Redistributable x64, как описано выше.
  • 'vcruntime140.dll' 14.0 is not compatible with this PHP build — Visual C++ Redistributable слишком старый для этого PHP. Поставьте свежий по той же ссылке.
  • PHP Warning: PHP Startup: Unable to load dynamic library 'curl' — PHP не находит расширения. Проверьте строку extension_dir = "C:\php\ext" в php.ini и что вы взяли архив x64 для 64-битной Windows.
  • could not find driver при подключении к базе — выключено нужное расширение PDO. Включите extension=pdo_mysql (или pdo_pgsql, pdo_sqlite) и перезапустите сервер.
  • Loaded Configuration File: (none) в выводе проверки --ini — PHP не видит ваш php.ini. Он должен лежать рядом с php.exe и называться ровно php.ini, а не php.ini.txt.

Если вы работаете и на Mac

MacWashing, раздел «Сборка мусора»: найдены мусор Xcode, пользовательский кэш, установщики и журналы, к очистке 22,83 ГБ

Сборка мусора в MacWashing находит кэш всех знакомых ей программ, в том числе спрятанный внутри их данных, а ещё журналы, мусор Xcode и остатки удалённых программ. Она показывает, сколько места занимает каждая находка, и очищает всё за один раз. Всё спорное остаётся без галочки, пока вы не решите.

Бесплатная пробная версия · macOS 14 и новее

Вопросы и ответы

Как установить PHP на Windows?

Скачайте с php.net архив x64 Non Thread Safe, распакуйте в C:\php, скопируйте php.ini-development в php.ini, включите нужные расширения и добавьте C:\php в PATH. Затем проверьте версию в новом окне «Терминала»: php -v

NTS или TS — что нужно мне?

NTS — для командной строки, Composer, встроенного сервера, IIS и Nginx. TS — только если подключаете PHP к Apache модулем.

Как обновить PHP?

Скачайте новый архив, сохраните копию своего php.ini, распакуйте новые файлы поверх C:\php и верните php.ini на место. При переходе на новую версию, например с 8.4 на 8.5, сверьте его с новым php.ini-development: настройки между версиями меняются.