MacBook Airの容量が限界に近づいてきたので脱VCCWを進めてビルトインサーバーでローカル環境を作るようにした話

VCCW は WordPress のローカル環境をお手軽に作ることができるツールです。ホスト名を簡単に設定できたり、Wordmove などの WordPress 開発における便利ツールが色々入っており、僕も愛用していたのですが、環境ごとに OS を1つインストールするため、僕の Macbook Air 256GB + JetDrive 256GB の容量がかなり逼迫してきてどうしようもなくなってきました。

基本的には環境を作っては壊すツールで、使わなくなったら消せばええやん、というコンセプトだと思うのですが、案件が重なっていると消してまたプロビジョニングするのめんどい…となりがちで、でも消さないと容量が、と板挟み状態だったので、いっそ脱VCCWして、PHP のビルトインサーバーでローカル開発環境を構築するようにしてみました。

WP Instant Setup

VCCW 作者の宮内さんが公開されている WP Instant Setup というものがあります。これは WP-CLI と PHP のビルトインサーバーを組み合わせてローカル開発環境をつくるためのツールで、下記のコマンドを実行すれば1分以内でローカルに WordPress の環境が立ち上がります。また、基本的には WordPress の容量だけなので、VCCW の場合よりもかなりサイズは小さくてすみます。

# ディレクトリを作成して移動
$ mkdir ~/Desktop/wordpress && cd $_

# WP Instant Setup を実行
$ curl https://raw.githubusercontent.com/miya0001/wp-instant-setup/master/run.sh | bash

WP Instant Setup の場合は、WP-CLI をディレクトリにダウンロードしてきてから諸々を実行してくれるので、WP-CLI を Mac にインストールしていなくても大丈夫という素敵仕様になっています。

自分でやってみる

素直に WP Instant Setup を使えば良いのですが、そんなに難しくなさそうだったと、ちゃんと内容を把握しておいたほうが良いなと思ったので、自分でもやってみました。以下の方法の場合は WP-CLI が Mac にインストールされている必要があります。

ローカルに WordPress 環境を構築(初回のみ)

# ディレクトリを作成して移動
$ mkdir ~/Desktop/wordpress/www && cd $_

# データベースを作成( 起動していない場合は mysql.server start で起動)
$ mysql -u root
mysql > create database データベース名;
mysql > exit;

# WordPress のインストール
# コマンド怖いな方は Desktop/wordpress/www にダウンロードしてきた WordPress のファイル郡を設置しても良いと思います。
$ wp core download --locale=ja
$ wp core config --dbname=データベース名 --dbuser=root
$ wp core install --url=http://2inc.org --admin_user=admin --admin_password=admin --admin_email=info@example.com --title=WordPress

ビルトインサーバーを起動

$ cd ~/Desktop/wordpress
$ wp server --docroot=www --host=2inc.org
Listening on http://2inc.org
# ↑とでるので、http://2inc.org にアクセスすればローカルの WordPress が見れます。

# 終了する場合はターミナルで Control + C

環境を削除

もう環境が必要なくなった場合は、下記で削除できます。

# ディレクトリを削除(普通にゴミ箱に入れてもOK)
$ rm -rf ~/Desktop/wordpress

# データベースを削除
$ mysql -u root
mysql > drop database データベース名;

デプロイどうするの問題

VCCW には Wordmove というデプロイツールが入っていて、本番、テスト、ローカルなど複数のサーバー情報を定義して、それぞれアップロード、ダウンロードがコマンド一発でできるという最強ツールなのですが、今回のこのビルトインサーバー方式だとそのようなデプロイツールがないのでデプロイがすごく面倒です。ローカルの WordPress のディレクトリでwp db exportすればデータベースを丸っとエクスポートできるので、サーバー上の phpMyadmin でインポート、ファイルは FTP でアップロード、という旧来の方法でデプロイすることはできますが、今となってはそんなことはやりたくない。でも Wordmove を入れるのは、もしインストールが失敗したりしたらめんどくさい…。

ということで、僕は Wordmove ライクなシェルスクリプトを書いてちょこちょこやっています。環境の定義がローカルとそれ以外の2つしかできない、FTP は非対応、などなど Wordmove よりかなり見劣りしますが、自分のサイトならこれでいいや、という感じで…。

下記のように使えます。ただしそんなにテストしてないのでご使用にある場合は自己責任で…(データ吹っ飛んでも責任負えないので適当なテスト環境でテストされてください)。

# ダウンロードして設置(普通に zip 落としてきて設置しておOK)
$ cd ~/Desktop/wordpress
$ git clone git@github.com:inc2734/bash-wp-deploy.git

# 設定ファイルを更新(普通にテキストエディタで更新してもOK)
$ vi bash-wp-deploy/variables.sh

# 全部ダウンロード
$ bash ./bash-wp-deploy/pull.sh -a

# いろいろをダウンロード(データベース、plugins、themes、uploads、コア)
$ bash ./bash-wp-deploy/pull.sh -d -p -t -u -w

# 全部アップロード
$ bash ./bash-wp-deploy/push.sh -a

# いろいろをアップロード
$ bash ./bash-wp-deploy/push.sh -d -p -t -u -w

マルチサイト問題

マルチサイトは 2inc.org などの IPや、localhost では使用できないようです。wp server --host=のところでローカルのドメインを定義できれば良いと思うのですが、エラーが出て起動できませんでした。マルチサイトの環境を作りたい場合は VCCW など別の方法を検討する必要があります。

MW WP Form

MW WP Form はショートコードベースのフォームプラグインです。多くの機能を持っており、例えば、多くのバリデーションルール、問い合わせデータの保存、そしてグラフ機能集計などを使用することができます。

さらに詳しく
Habakiri

Habakiri

Bootstrap ベースのシンプルな WordPress テーマ。レスポンシブ、多くのカスタマイズ機能。圧縮された CSS・JS を使用する高速化対策。Microformats 対応。Sass、クラスベースの functions.php。

さらに詳しく
basis-stylus

Basis

軽量なレスポンシブ Stylus/CSS フレームワーク。Flexbox ベースのグリッドシステム、疎結合なコンポーネント、バーティカルリズム。

さらに詳しく