База знаний

Локальная разработка с помощью zinnector dev

Как zinnector dev запускает настоящий WordPress на вашей собственной машине: две среды выполнения (WebAssembly без Docker или нативный PHP в Docker), выбор версии PHP и WordPress, что отдается из вашего проекта, где хранится среда выполнения объемом 570 МБ и что происходит на Node 26.

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 ничего не меняется.

См. также

Вся документация для разработчиков →

Новое в блоге

О чем мы писали: хостинг, SEO и масштабирование сайтов.

SEO и наращивание ссылочной массы на уровне хостинга: Взгляд оператора в 2026 году

Как хостинг влияет на индексацию и ссылочный вес в 2026 году: поддержание страниц в индексе, проверка старых доменов перед запуском проектов, построение ссылок без цифрового следа (футпринта) и честный взгляд на то, что инфраструктура может и чего не может сделать для SEO.

Читать запись →

Как сделать WordPress быстрым и безопасным: чек-лист по производительности и плагинам

Практический контрольный список для быстрого и безопасного WordPress: кэширование на уровне сервера, объектный кэш для каждого сайта, несколько действительно полезных плагинов, поддержание стека в актуальном состоянии и страницы WooCommerce, которые ни в коем случае нельзя кэшировать.

Читать запись →

Как выбрать управляемый веб-хостинг в 2026 году: руководство для покупателя

Что на самом деле отличает хороший управляемый хостинг от дешевого сервера с панелью управления — миграции, резервное копирование, изоляция, реальное кэширование и честное масштабирование — и как оценить его до принятия обязательств.

Читать запись →

Читать блог →

Всё ещё нужна помощь?

Поддержка включена в каждый тарифный план, служба работает 24 часов в сутки, и вы можете писать нам на любом из наших 58 языков — мы ответим вам на вашем.

Связаться со службой поддержки → Все статьи →