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 --dbuser=root --dbname=データベース名 $ wp core install --url=https://2inc.org --admin_user=admin --admin_password=admin --admin_email=info@example.com --title=WordPress
ビルトインサーバーを起動
$ cd ~/Desktop/wordpress $ wp server --docroot=www --host=127.0.0.1 Listening on https://2inc.org # ↑とでるので、https://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 など別の方法を検討する必要があります。