ナレッジベース

zinnector dev を使用したローカル開発

zinnector dev がお客様ご自身のマシン上で本物の WordPress を実行する仕組み: 2つのランタイム (Docker なしの WebAssembly、または Docker 内のネイティブ PHP)、PHP および WordPress のバージョンの選択、プロジェクトから配信されるもの、570 MB のランタイムの格納場所、そして Node 26 で発生すること。

zinnector dev は、ご自身のマシン上で本物の WordPress を実行し、選択した PHP バージョンでプロジェクト内のプラグインやテーマを提供します。この記事では、使用可能な2つのランタイム、バージョンの選択方法、どこから何が提供されるか、そしてローカルでテストしたものがそのままデプロイされるよう、ランタイムがディスク上のどこに配置されるかについて説明します。

2つのランタイムと、両方が本物である理由

Playground がデフォルトです。WordPress Playground は PHP を WebAssembly にコンパイルして Node の内部で実行するため、Node しかインストールされていないノート PC でも数秒で WordPress を起動できます。5.2 から 8.5 までの任意の PHP を利用可能です。現在のビルドの実測で intl、redis、memcached といった小規模な PHP 拡張機能セットが含まれており、ほとんどのプラグインやテーマの開発作業にはこれで十分です。

Docker は、ネイティブの php-fpm および MariaDB コンテナを実行します。こちらは動作が遅く、Docker デーモンと約 1.2 GB のイメージが必要で、PHP 7.4 から 8.5 をサポートしています。しかし、imagick や gd を含む完全な拡張機能セットを備えたネイティブ PHP を実行します。テストに必要なものが WebAssembly ビルドに含まれていない拡張機能である場合、これが確実な選択肢となります。

zinnector dev                       # playground
zinnector dev --runtime docker      # native PHP + MariaDB

Docker へ暗黙的にフォールバックされることは決してありません。WebAssembly で動作していると思い込んでいる開発者が実際には Docker 上にいた場合、手助けを試みたツールによって誤った結果がもたらされることになるため、名前を指定して明示的に要求する必要があります。

PHP および WordPress のバージョンの選択

zinnector dev --php 8.1 --wp 6.7    # develop against a specific pair
zinnector dev --port 9401           # when 9400 is taken
zinnector dev --no-login            # do not sign in to wp-admin automatically
zinnector dev --verbose             # show the runtime's own output

デフォルト値はプロジェクト内の 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 MB あり、サイトの一覧表示しか行わない開発者にその負担を負わせるべきではないためです。これは Zinnector® 独自のキャッシュである ~/.cache/zinnector/runtimes/playground/<version> (または ZINNECTOR_CACHE_DIR が指す場所) に保持され、プロジェクト内には一切置かれないため、リポジトリや zinnector push が測定するツリーに入り込むことはありません。ダウンロードはご自身の npm によって node npm-cli.js として実行され、シェル経由で実行されることはありません。

ランタイムのバージョンは CLI のバージョンに固定されているため、1つのプロジェクトに携わる2人の開発者が同じ PHP ビルドを実行することになります。zinnector dev --reset-runtime はインストール済みのランタイムを破棄して再インストールします。これは、インストールされたものの起動しないランタイムを修正するための方法です。

Node 26 以降をご利用の場合

CLI 自体は Node 24 以降の任意のバージョンで動作します。ただし、ランタイムのネイティブモジュールは、(2026年9月現在) Node 24 および 25 向けにのみ事前ビルドされたバイナリを提供しています。コンパイルを行う (Windows では Visual Studio のインストールが必要になります) のではなく、Zinnector® はランタイム専用に、nodejs.org が公開しているチェックサムと照合された約 30 MB の Node 24 を同じキャッシュ内に取得します。該当する場合は、インストールプロンプトにその旨が表示されます。ご自身の Node に変更が加えられることはありません。

関連情報

  • [はじめに] (/kb/zinnector-getting-started) · [デプロイ] (/kb/zinnector-deploying) · [コマンドリファレンス] (/kb/zinnector-command-reference) · [トラブルシューティング] (/kb/zinnector-troubleshooting)

すべての開発者向けドキュメント →

ブログの最新情報

ホスティング、SEO、大規模サイトの運用について執筆した記事。

ホスティング層からの SEO とリンクビルディング: 2026年のオペレーターの視点

2026年におけるホスティングがインデックス作成とリンクエクイティに与える影響: ページのインデックス維持、構築前のオールドドメインの審査、検索エンジンのフットプリントを残さないリンク構築、そしてインフラが SEO に対してできることとできないことに関する率直な見解。

記事を読む →

WordPress を高速かつ安全にする方法: パフォーマンスとプラグインのチェックリスト

高速で安全な WordPress のための実践的なチェックリスト: サーバーレベルのキャッシュ、サイトごとのオブジェクトキャッシュ、利用する価値のある厳選されたプラグイン、スタックを最新に維持すること、そして決してキャッシュしてはならない WooCommerce ページ。

記事を読む →

2026年におけるマネージド Web ホスティングの選び方: バイヤーズガイド

コントロールパネル付きの安価なサーバーと、優れたマネージドホスティングを実際に分けるもの (移行、バックアップ、分離、真のキャッシング、そして誠実なスケーリング)、および契約前にそれらを見極める方法。

記事を読む →

ブログを読む →

解決しませんか ?

サポートはすべてのプランに含まれており、対応時間は1日 24 時間、対応言語は 58 ヵ国語の中から自由にお書きいただけます。お客様の言語で回答いたします。

サポートに問い合わせる → すべての記事 →