zinnector dev запускает полноценный WordPress на вашей собственной машине, обслуживая плагины и темы из вашего проекта с выбранной вами версией PHP. В этой статье объясняются две среды выполнения, которые она может использовать, выбор версий, что и откуда отдается, а также где среда выполнения хранится на диске — чтобы локально вы тестировали именно то, что развертываете.
Две среды выполнения, и почему обе полноценны
Playground используется по умолчанию. WordPress Playground компилирует PHP в WebAssembly и запускает его внутри Node, поэтому ноутбук, на котором не установлено ничего, кроме Node, запускает WordPress за секунды. Доступна любая версия PHP от 5.2 до 8.5. Она содержит небольшой набор расширений PHP (intl, redis, memcached по замерам текущей сборки), чего достаточно для большинства задач с плагинами и темами.
Docker запускает нативные контейнеры php-fpm и MariaDB. Этот вариант медленнее, требует демон Docker и около 1,2 ГБ образов, а также поддерживает PHP от 7.4 до 8.5 — но он запускает нативный PHP с полным набором расширений, включая imagick и gd. Это честное решение, когда вам необходимо протестировать расширение, отсутствующее в сборке WebAssembly.
zinnector dev # playground
zinnector dev --runtime docker # native PHP + MariaDB
Откат к Docker никогда не происходит незаметно. Разработчик, полагающий, что работает на WebAssembly, а на самом деле использующий Docker, получил неверный результат из-за инструмента, пытавшегося помочь, поэтому его необходимо указывать явно по имени.
Выбор версий PHP и WordPress
zinnector dev --php 8.1 --wp 6.7 # разработка под конкретную пару
zinnector dev --port 9401 # если 9400 занят
zinnector dev --no-login # не входить в wp-admin автоматически
zinnector dev --verbose # показывать собственный вывод среды выполнения
Значения по умолчанию берутся из zinnector.json в проекте — php, wordpress, runtime и port, — который создается командой zinnector new и который следует зафиксировать в репозитории, чтобы все участники проекта использовали одинаковые версии. Флаг в командной строке имеет приоритет над файлом для конкретного запуска.
Версия, которую вы декларируете, и версия, которая работает, — это разные вещи. zinnector dev --once запускает среду выполнения, выводит то, о чем она фактически сообщает — версию PHP, версию WordPress, загруженные расширения — и останавливается. zinnector check --probe использует то же самое измерение при сравнении вашего проекта со слотом хостинга.
Что отдается из вашего проекта
Среда выполнения монтирует каталоги wp-content/plugins, wp-content/themes и wp-content/mu-plugins вашего проекта напрямую, поэтому сохраненный вами файл начинает работать сразу же при следующей перезагрузке. Каталоги, которые существуют, но не содержат реального содержимого, намеренно не монтируются: пустой каталог themes/, смонтированный поверх собственных тем среды выполнения, оставил бы WordPress вообще без тем, что привело бы к пустой ошибке 500 вместо вашего сайта. Вот почему шаблон сохраняет пустые каталоги с помощью .gitkeep и почему они ничего не перекрывают, пока вы не поместите в них тему.
Где хранится среда выполнения
Среда выполнения WordPress скачивается при первом использовании, а не поставляется вместе с CLI — пакет, содержащий каждую сборку PHP, весит около 570 МБ, и разработчик, который лишь просматривает список сайтов, не должен тратить на него ресурсы. Она хранится в собственном кэше Zinnector®, ~/.cache/zinnector/runtimes/playground/<version> (или там, куда указывает ZINNECTOR_CACHE_DIR), но никогда в вашем проекте, поэтому она не может оказаться в вашем репозитории или в дереве файлов, которое оценивает zinnector push. Загрузка выполняется вашим собственным npm, запущенным как node npm-cli.js — никогда через командную оболочку.
Версия среды выполнения привязана к версии CLI, поэтому два разработчика в одном проекте используют одинаковые сборки PHP. zinnector dev --reset-runtime удаляет установленную среду выполнения и устанавливает ее заново, что устраняет неполадки со средой, которая установилась, но не запускается.
На Node 26 или новее
Сам CLI работает на любой версии Node от 24 и выше. Однако нативный модуль среды выполнения поставляет готовые скомпилированные бинарные файлы только для Node 24 и 25 (по состоянию на сентябрь 2026 года). Чтобы ничего не компилировать — что в Windows означает установку Visual Studio, — Zinnector® загружает Node 24 исключительно для среды выполнения (около 30 МБ, с проверкой по контрольным суммам, публикуемым nodejs.org) в тот же кэш. Запрос на установку сообщает об этом, когда это необходимо. В вашей собственной Node ничего не меняется.
См. также