ナレッジベース

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 以外何もインストールされていないノートパソコンでも、数秒で WordPress が起動します。5.2 から 8.5 までの任意の PHP バージョンをご利用いただけます。このランタイムには少数の PHP 拡張機能(現在のビルドでの計測値として intlredismemcached)が含まれており、ほとんどのプラグインやテーマの作業にはこれで十分です。

Docker は、ネイティブの php-fpm および MariaDB コンテナーを実行します。こちらは処理がより低速で、Docker デーモンと約 1.2 GB のイメージが必要になりますが、PHP 7.4 から 8.5 をサポートしており、imagickgd を含むすべての拡張機能を備えたネイティブの 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    # 特定の組み合わせで開発を行う
zinnector dev --port 9401           # 9400 番ポートが使用中の場合
zinnector dev --no-login            # wp-admin へ自動的にサインインしない
zinnector dev --verbose             # ランタイム自体の出力を表示する

デフォルト値はプロジェクト内の zinnector.jsonphpwordpressruntimeport)から取得されます。これらは zinnector new によって書き込まれ、プロジェクト内の全員が同じバージョンで実行できるようにコミットしておくべきファイルです。コマンドライン上のフラグは、その実行においてファイルの設定よりも優先されます。

宣言したバージョンと実行されるバージョンは別物です。zinnector dev --once はランタイムを起動し、実際に報告される情報(PHP バージョン、WordPress バージョン、読み込まれた拡張機能)を表示して停止します。zinnector check --probe は、プロジェクトとホスティングスロットを比較する際にこれと同じ測定方法を使用します。

プロジェクトから提供される内容

ランタイムはプロジェクトの wp-content/pluginswp-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 以降の任意のバージョンで実行されます。ただし、ランタイムのネイティブモジュールは、Node 24 および 25 向けに事前ビルドされたバイナリのみを提供しています(2026 年 9 月時点)。何かをコンパイルする(Windows の場合は Visual Studio のインストールを意味します)代わりに、Zinnector® はランタイム専用に Node 24(約 30 MB)を取得し、nodejs.org が公開しているチェックサムで検証した上で、同じキャッシュに格納します。インストールが適用される際には、その旨がプロンプトに表示されます。ご自身の Node 環境に変更が加えられることはありません。

関連情報

まだ解決しませんか?

すべてのプランにサポートが含まれており、お客様の母国語でお答えします。

サポートに連絡 すべての記事
zinnector dev によるローカル開発