WordPress · 2 min read · Dec 07, 2025

Vagrantを使用したローカルWordPress開発環境のセットアップ

WordPressで開発する場合、サーバー、データベースツール、いくつかのWordPressサイト、および必要な他のツールをインストールしたローカル環境をセットアップすることが望ましいです。これは、いくつかのプロジェクトに取り組む場合は問題ありません。しかし、プロジェクトが増えると問題が発生します。また、クライアントの環境が自分の環境とは異なるため、複数の環境を維持することによる頭痛の種もあります。

この問題を回避するために、私たちはVagrantと呼ばれるものを使用できます。Vagrantは仮想環境で作業するためのツールです。いくつかのコマンドでローカル開発環境を簡単にセットアップでき、手動で全てをインストールする手間をかけずに、完全なセットアップを何度でも簡単に複製できます。Vagrantを実行するには、一連のルールを定義する必要があります。Vagrantはこれらのルールに基づいて仮想マシンをセットアップします。Vagrantには、仮想マシンに必要なハードウェアの種類をVagrantに指示するVagrantfileと、仮想マシンで何をするかをVagrantに指示するデプロイメントファイルの2つのファイルが必要です。

Vagrantは仮想環境で動作するため、Vagrantを実行するには仮想マシンソフトウェアが必要です。私たちの目的のために、オープンソースのVirtualboxを使用します。

VirtualBoxのインストール

Virtualboxのダウンロードページに移動し、ゲストホストに対応するバイナリファイルをダウンロードします。(ゲストホストは、開発環境を実行するオペレーティングシステムです。)Virtualboxをインストールします。

Vagrantのインストール

Vagrantのダウンロードページからオペレーティングシステムに対応するバイナリをダウンロードし、インストールします。

正常にインストールされたかどうかをテストするには、OSのコマンドラインで次のコマンドを入力します。

$ vagrant -v

Vagrant Hosts Updaterプラグインのインストール

vagrant-hostupdaterプラグインは、Vagrantによって設定されたドメインが機能するように、OSのhostsファイルを変更します。インストールするには、次のコマンドを実行します。

$ vagrant plugin install vagrant-hostsupdater

Vagrant/Virtualboxをインストールした後、ネットワークの問題が発生しないようにOSを再起動します。

Gitのインストール

Linux

このチュートリアルにはGitバージョン管理も必要です。インストールされていない場合は、Debian/Ubuntuディストリビューションの場合は次のコマンドを使用してインストールします。

$ sudo apt install git

または、Fedoraの場合は

$ sudo dnf install git

または、CentOS/RHELの場合は

$ sudo yum install git

インストールされているGitのバージョンを次のコマンドで確認します。

$ git --version

次のような出力が表示されます。

$ git version 2.20.1

次のコマンドを使用してGitを設定する必要があります。

$ git config --global user.name "Your Name"   
$ git config --global user.email "[email protected]"

Windows

WindowsにGitをインストールするには、Gitのダウンロードページに移動し、バイナリをインストールします。

Mac OS

Homebrewがインストールされている場合は、次のコマンドでGitをインストールできます。

$ brew install git

または、Gitのダウンロードページからバイナリパッケージをダウンロードしてインストールできます。

Varying Vagrant Vagrantsのインストール

Vagrantのセットアップを最初から作成する代わりに、Varying Vagrants Vagrant(VVV)を使用します。これは、WordPress開発環境を作成することを目的としたオープンソースのVagrant構成です。標準のVVVは、Nginxサーバー、MariaDBデータベース、PHP、WP-CLI、Node.js、MailHog、Composer、memcached、phpMyAdmin、gitなどのツールとともに、Ubuntu 18.04に基づいて仮想マシンをセットアップします。VVVはデフォルトで複数のWordPressインストールを提供し、そのうちの1つは最新のベータ版で、実験を助けます。

最初のステップは、VVVのGitリポジトリをシステムのローカルディレクトリにクローンすることです。

$ git clone -b master git://github.com/Varying-Vagrant-Vagrants/VVV.git ~/vvv

ここでは、システム上のリポジトリのマスターブランチをクローンしています。より早い更新を望む場合は、developブランチを使用できます。

VVVの起動

VVVをクローンしたディレクトリに移動します。

$ cd vvv

仮想マシンをインストールし、すべてをセットアップするVagrant環境を起動します。

$ vagrant up

このプロセスには時間がかかる場合があるので、辛抱強く待ってください。プロセス中に、システムのhostsファイルを設定するために必要なrootパスワードを求められることがあります。

Windows 8/10ユーザーへの注意

Windowsを使用している場合、次のエラーが表示されることがあります。

==> default: Booting VM...   
VBoxManageを使用して実行中にエラーが発生しました。これは、VagrantがVirtualBoxを制御するために使用するCLIです。コマンドとstderrは以下に示されています。   
   
コマンド: ["startvm", "1fe83aa1-2f23-4ddd-ad77-b7e7e00aabe6", "--type", "headless"]   
   
Stderr: VBoxManage.exe: error: Failed to open/create the internal network 'HostInterfaceNetworking-VirtualBox Host-Only   Ethernet Adapter #3' (VERR_INTNET_FLT_IF_NOT_FOUND).   
VBoxManage.exe: error: Failed to attach the network LUN (VERR_INTNET_FLT_IF_NOT_FOUND)   
VBoxManage.exe: error: Details: code E_FAIL (0x80004005), component ConsoleWrap, interface IConsole

ここで参照されているアダプターに注意してください。

VirtualBox Host-Only Ethernet Adapter #3

コントロールパネル >> ネットワークと共有センターに移動します。次に、アダプター設定の変更をクリックします。VirtualBox Host-Only Ethernet Adapter #3と名前またはデバイス名が一致するアダプターを右クリックし、プロパティをクリックします。構成ボタンをクリックします。

次に、ドライバータブをクリックします。ドライバーの更新をクリックします。コンピューター上のドライバーを参照を選択します。次に、コンピューター上の利用可能なドライバーのリストから選択させてくださいを選択します。表示される選択肢を選択し、次へをクリックします。閉じるをクリックして更新を完了します。今、ターミナル/Powershell/コマンドウィンドウに戻り、vagrant upコマンドを再実行します。今回は正常に動作するはずです。

これが完了したら、http://vvv.testのURLでVVVダッシュボードにアクセスできます。

VVVには2つのデフォルトのWordPressインストールが付属しています - http://one.wordpress.testhttp://two.wordpress.test どちらのサイトも同じログイン詳細を持ち、ユーザー名はadmin、パスワードはpasswordです。両方のサイトのデータベースの資格情報は、ユーザー名とパスワードがwpです。MySQLのルートユーザーの資格情報は、ユーザー名とパスワードがrootです。そして、VMのルートユーザーの資格情報は、ユーザー名がroot、パスワードがvagrantです。

http://trunk.wordpress.netに開発者用のWordPressインストールがありますが、プロビジョニングされていないため、動作しません。このインストールは、Tracチケットやパッチで作業するWordPressの貢献者にとって便利です。有効にするには、*vvv-custom.yml*を開き、wordpress-trunkの下のskip_provisioningの値をfalseに変更し、次に次のコマンドを使用してVMを再プロビジョニングします。

$ vagrant reload --provision

URLがラベル付けされていない別のWordPressインストールがあります。これはwordpress-meta-environmentと呼ばれます。このインストールは、WordPressメタチームへの貢献に役立つ環境を作成します。例えば、WordCamps、.orgなどです。このインストールを有効にするには、vvv-custom.ymlファイルのwordpress-meta-environmentの下に次の行を追加します。

hosts:  
  - wpmeta.test

次に、skip_provisioningの値をfalseに変更し、VMを再プロビジョニングします。

$ vagrant reload --provision

新しいサイトを追加

VMに別のサイトを追加したい場合は、vvvディレクトリ内にあるvvv-custom.ymlファイルを編集する必要があります。そこにない場合は、vvv-config.ymlをコピーして作成してください。これは一度だけのプロセスで、再度行う必要はありません。vvv-config.ymlはVVVを更新すると上書きされるため、常にvvv-custom.ymlで変更を行ってください。

新しいサイトを追加するために、vvv-custom.ymlのサイトセクションの下に次のコードを追加します。

newsite:
    repo: https://github.com/Varying-Vagrant-Vagrants/custom-site-template
    description: "A WordPress subdir multisite install"  
    vm_dir: /srv/www/newsite  
    local_dir: /home/user/vvv/www/newsite  
    branch: master  
    nginx_upstream: php
    skip_provisioning: false
    hosts:
      - newsite.test
    custom:
      wp_type: subdirectory

変数

repo変数は、VM上に新しいWordPressサイトをセットアップする方法に関する情報を含む事前定義されたGithubリポジトリを指します。今のところ、VVVによって管理されているリポジトリを使用しています。

description変数は自己説明的です。

vm_dirは、サイトが存在するVM内の実際のディレクトリです。

local_dirは、ホストマシン上にサイトが存在するディレクトリです。

branch変数は、ここでの例のリポジトリのマスターブランチをチェックアウトするようにVagrantに指示します。

nginx_upstreamは、Nginxがリクエストをどこに渡すかを設定するために使用され、通常はインストールに必要なPHPバージョンを変更するために使用されます。ここでのphpは、デフォルトのPHPバージョンである7.2を指します。php71を使用してPHP 7.1に変更したり、php56を使用してPHP 5.6に変更したりできます。

skip_provisioningはfalseに設定されており、これはこのサイトをVMに含める必要があることを意味します。

hosts変数は、サイトにアクセスするために必要なURLを設定するために使用されます。

customセクションは、WordPressサイトに対して追加の制御が必要な場合に便利です。このセクションを使用してマルチサイトインストールを設定したり、異なるバージョンのWordPressをインストールしたり、インストールに使用されるデータベースやサイトの名前を変更したりできます。

wp_type変数は、インストールが単一、ドメインを持つマルチサイト、またはサブディレクトリを持つマルチサイトのいずれになるかを決定します。wp_typeは、single、subdomain、subdirectory、noneの4つの値を取ります。サブドメインインストールでは、次の形式でマルチサイトインストールのために複数のホストを定義できます。

hosts:
    - multisite.test
    - site1.multisite.test
    - site2.multisite.test
  custom:
    wp_type: subdomain

カスタムセクションの下にもう1つの変数wp_versionを追加できます。WordPressのナイトリーバージョンをインストールしたい場合は、これをnightlyに設定できます。これは、nightly、latest、バージョン番号の3つの値を取ります。

custom: 
     wp_version: nightly

別の変数db_nameがあり、インストール用のデータベースの名前を設定できます。

custom:
    db_name: super_secet_db_name

最後に、site_title変数を使用してWPサイトのタイトルを設定できます。

custom:
    site_title: My Awesome Dev Site

これで、VVVに自分のウェブサイトを追加するために必要なすべての変数とオプションがカバーされるはずです。vvv-custom.ymlファイルを変更した後は、次のコマンドを実行して新しいサイトを機能させます。

$ vagrant reload --provision

既存のサイトを追加

これまで、VVVにまったく新しいサイトを追加する方法を学びました。しかし、すでにサイトで作業していて、それをVVVの下に追加したい場合はどうすればよいでしょうか。これを行う方法を見てみましょう。

既存のサイトを追加するには、最初のステップは以前と同じで、すなわちvvv-custom.ymlファイルを編集し、次のコードを追加します。

howtoforge:
    repo: https://github.com/Varying-Vagrant-Vagrants/custom-site-template
    description: "A WordPress site"  
    vm_dir: /srv/www/newsite  
    local_dir: /home/user/vvv/www/newsite  
    hosts:
      - howtoforge.local

これにより、VVVはhttp://howtoforge.localでアクセス可能な新しいサイトをセットアップします。しかし、これはまったく新しいサイトです。私たちがする必要があるのは、これを既存のインストールに変換することです。そのためには、既存のWordPressインストールからファイルをローカルディレクトリ(/home/user/vvv/www/newsite)にコピーする必要があります。

$ cp /var/www/howtoforge/ /home/user/vvv/www/newsite/

次に、データベースをコピーする必要があります。これを行う簡単な方法は、既存のデータベースを.sqlファイルとしてエクスポートし、そのファイルをブログのディレクトリにコピーし、VMにSSHしてデータベースを再インポートすることです。

まず、ローカルシステムのコマンドラインでmysqlにログインし、次のコマンドを使用してデータベースをエクスポートします。

$ cd /home/user/vvv/www/newsite
$ mysqldump -u username -p database_name > data-dump.sql

次に、VMを再プロビジョニングできます。

$ vagrant reload --provision

VMにSSHします。

$ vagrant ssh

次に、データベースをVMにインポートします。

$ cd /srv/www/newsite 
$ mysql -u root -p newsite < data-dump.sql

VVVは、プロビジョニング中に新しいデータベースを作成しており、私たちのブログの名前はnewsiteです。ルートユーザーのパスワードはここではrootです。上記のコマンドは、既存のデータベースを新しいデータベースにインポートします。

これで、VVVに既存のサイトのセットアップが完了しました。

SSLを有効にする

ローカルホストのインストールは通常セキュリティがありません。そして、ローカルホストに独自の証明書をインストールするのは、Let’s Encryptを使用しても長くて面倒なプロセスです。しかし、VVVはこのプロセスを非常に簡単にし、デフォルトですべてのWordPressインストールにSSLが有効になっています。サイトでhttpsを使用し始めるだけです。初めての場合、ブラウザは無効な証明書について警告しますが、例外として追加すれば、今後は問題ありません。

WordPressの更新

ダッシュボードからWordPressインストールを更新できます。また、VVVはVMを再プロビジョニングするたびにWordPressを更新します。WordPress.orgからダウンロードしてzipファイルを解凍することで、手動でWordPressを更新することもできます。また、VVVにバンドルされているWP CLIを使用することもできます。WP CLIを使用してサイトを更新するには、次のコマンドを使用します。

$ cd /srv/www/newsite
$ wp core update

VVVの更新

最初のステップは、Vagrantマシンを停止することです。

$ vagrant halt

次に、VagrantとVirtualboxが最新であることを確認します。そうでない場合は、再度ダウンロードしてインストールします。

次のコマンドを実行してVagrantボックスを更新します。これはオプションですが、進めるのが最善です。

$ vagrant box update

次に、Githubから最新のVVVバージョンをプルします。

$ git pull

更新を完了するためにボックスを再プロビジョニングします。

$ vagrant up --provision

追加ツール

VVVには、インストールできるさまざまなユーティリティが付属しています。これらは、vvv-custom.ymlファイルのユーティリティセクションにリストされています。デフォルトでは、tls-caとphpmyadminが有効になっています。ユーティリティセクションの前にある#を削除することで、memcached、opcache、webgrind、mongodb、tideways、およびPHPバージョン5.6から7.3をさらにインストールできます。

インストールしたい独自のソフトウェアを追加することもできます。そのためには、vvv-custom.ymlファイルを次のように修正する必要があります。

utilities:
  core:
    - tls-ca  
    - phpmyadmin
  java:
    - java7
utility-sources:
  java:
    repo: https://github.com/example/java-utilities.git
    branch: master

ここで、例えば新しいセクションjavaを追加します。インストールのコードはgitリポジトリから来ます。あなたのgitリポジトリは次のように構成されるべきです。

java7/
    provision.sh

provision.shファイルには、VMにjavaをインストールするために必要なコードが含まれます。フォルダの名前は、vvv-custom.ymlファイルで使用した名前と一致する必要があります。

結論

これで、Vagrantを使用してローカルWordPress開発環境をセットアップする方法に関するチュートリアルが終了しました。質問があればお知らせください。

Share: X/Twitter LinkedIn

新しい投稿を受信箱で受け取る

スパムはありません。いつでも購読を解除できます。