Twitter Facebook github

Category “開発環境”

treeコマンドのススメ

treeとは

その名の通り、配下のファイル構造をツリー表示するコマンドです。

深い箇所にあるファイル構造を把握するのにとてもベンリ。あと、こういうブログとかSlackとかで他人にファイル構造を伝えるときなんかにも。

百聞は一見にしかずということで、こんな感じです。

ちなみに単にtreeだけだと日本語含むファイル名とかだと文字化けしちゃいます。そういうときは -N オプションを付けることで、ASCII以外もそのまま表示してくれます。

ただこのコマンドは元から入ってる環境は少ないと思うので、自分でインストールしないとダメです。特に悪影響あるものでもないので、自分が管理権限を持っていなくてもお願いすれば入れてもらえると思いますよ。

 

インストール手順(Mac)

Homebrewで入れるのが手っ取り早いです。コマンド一つで簡単。

Homebrew自体のインストールの仕方はmac homebrewとかでググってください。入れておいて損はないですよ。

 

インストール手順(RedHat系)

所謂yumが使える環境の話。CentOSやAmazonLinuxなんかはこれです。これも単純にyumでOK。

 

便利なオプション

  • -N: 上でも少し取り上げましたが、非ASCII文字を正しく表示してくれます
  • -L <数字>: 辿る階層の深さを制限できます
  • -C: ディレクトリに色を付けてくれます
  • -X: XML形式で出力します
  • -J: JSON形式で出力します
  • -o <ファイル名>: 標準出力の代わりにファイルに書き出します

これだけで色々と遊べそうじゃないですか?

 

ちなみにtreeが使えない環境でもsedとか駆使してツリー上に配下ファイルを網羅することもできなくはない…です。でも無駄でしかないのでtree入れちゃいましょうね 🙂

VCCWでイマドキWordPress開発環境

WordPressを使ってウェブを作っているみなさん!まだXAMPPでMAMPで消耗してるんですか!?

 

VCCWを使う選択

VCCWというのは、VagrantをベースにしたWordPressの開発環境です。

従来、何もないところからWordPressの開発をはじめるとなると、WebとDBサーバーをインストールして、データベースを作って、WordPressをダウンロードして、接続情報を入力して…など、多くの手順を踏まなくてはいけませんでした。Web、DBサーバーも独立しているため管理も煩雑になりがちです。

VCCWを使うと本当に簡単に開発環境が整います。また、WordPressの開発に便利な色々な支援ツールも一気に使えるようになります。WordPressのサイト個々にOSイメージが作られるため、一つのMySQLサーバーで複数のサイトを飼いながら開発…なんてこともなくなります!

テーマを作るデザイナーの方は少し敷居が高いかもしれませんが、プラグインなどを作るエンジニアよりの方は是非一度お試しください!一度これに慣れると、もう従来の方法でなんて開発できませんよ!

 

事前準備

VCCWはVagrantfileを使って仮想環境を構築するため、先にVagrantを使えるようにしなければいけません。

拙著 Vagrantことはじめ にしたがって、VirtualBox+Vagrantの開発環境を先に整えてから読み進めてください。

 

hostsupdaterプラグインをインストール

(※ Windowsの方はこのプラグインを使えないので読み飛ばしてください。ホスト名でアクセスしたい場合は、「Windows hosts 編集」とかでググってください。)

VCCWで構築したWordPressの環境は、ローカルIPアドレスでアクセスできるようになりますが、PC内にあるhostsファイルというものを編集することで、任意のホスト名(デフォルトであれば vccw.dev)でアクセスできるようになります。これは完全に好みですが、複数サイトを開発する際に直感的な名前でアクセスできるので私は便利に使っています。

インストールは次のコマンドを実行します。グローバルにインストールされるので、好きなディレクトリ上で実行して構いません。

 

Boxの準備

Vagrantことはじめ でも触れたように、仮想マシンの起動にはBoxが必要です。VCCWで用いるBoxをダウンロードしておきます。

Boxのダウンロードにはまた時間がかかるので、ダウンロードしている間に次のステップを終わらせておきましょう。

 

VCCWをダウンロード

前述のステップでBoxは用意しましたが、このBoxを使うためには予め用意されたVagrantfileと環境構築用のスクリプト(内部ではChefを使っています)が入ったVCCW本体と呼べるものをダウンロードして、それを作業用のフォルダとして使います。

次のVCCW公式ページからzip、もしくはtar.gz形式で圧縮されたVCCW本体をダウンロードしてきてください。執筆時点の最新バージョンは2.18.0です。

http://vccw.cc/

ダウンロードしたら解凍して、サイトの名前など分かりやすいものに変更します。また今後頻繁に開くことになるので、開発用のフォルダなど決めているのであれば移動しておきましょう。

 

VCCWの設定

実際に起動する前に、日本語のWordPressが導入されるように設定を変更しておきましょう。これを設定しておかないと、デフォルトで英語のWordPressがインストールされることになります。後から変更するのは一手間です。

まず、VCCWを配置した下のprovisionフォルダにあるdefault.ymlを、VCCWのフォルダ直下にsite.ymlという名前でコピーしてきてください。

仮にVCCWを ~/vccw/ に設置したとすると、 ~/vccw/provision/default.yml を、 ~/vccw/site.yml にコピーするということになります。(私はここでprovisionフォルダ内にコピーするものと思い込み、何故動かないのかソースコードを読んでコピー先の位置間違いに気付きました……。)

コピーできたら、エディタで site.yml を開いて、次の通りlangを変更します。

PCのスペックに余裕がある人は、Virtual Machine Settingsのmemoryとcpusの数を増やしておくと良いでしょう。

また、前述のhostsupdaterを導入した人は、Network Settingsのhostnameをサイト名などを使ったホスト名に変更しておくと良いと思います。このホスト名を使ってWordPressにアクセスできるようになります。

 

VCCWを起動

BoxとVCCWの準備が終わったらいよいよ起動してみます。ダウンロードしてきたVCCWが入っているディレクトリにターミナルで移動して、その中にあるVagrantfileを元にVagrantを起動します。

VCCWを初めて起動する場合、仮想マシンのコピーに加えて、Apache+MySQLサーバーのダウンロードやWordPressのダウンロード、開発支援ツール群のダウンロードなど、様々な処理がVagrant内で行われます。これにも結構な時間がかかります(私の環境で5分程度)ので、気長に終わるのを待ちましょう。ただし、前述したhostsupdaterプラグインをインストールしている場合、その処理が実行される際にrootユーザーのパスワードを求められることがあります。入力しないと進まないので気をつけましょう。

 

使ってみる

無事に起動できたら早速チェックしてみましょう!ブラウザで http://192.168.33.10/ を開いてみてください。hostsupdaterを導入した方は、設定したホスト名でも開けるかと思います(デフォルトは http://vccw.dev/ です)。

ちゃんと日本語のWordPressが表示されればOKです!管理画面は /wp-admin で、IDとパスワードは変更していなければ共に admin です。

 

開発してみる

vagrant upを実行すると、VCCWの中に /www/wordpress というディレクトリが作られます。/www ディレクトリはVagrantの仮想マシン内と共有されています。

例えばテーマを作る時は /www/wordpress/wp-content にある themes  内を編集すればいいですし、プラグインは同じく plugins になります。/www/wordpress の中で従来通りの開発すればよいということですね!

もちろんWordPressの管理画面からテーマやプラグインをインストールした場合も、そのフォルダの中に保存されていきます。もちろんリアルタイムです!

 

まとめ

従来の開発環境と比べて、いかに楽にクリーンで本番環境に近い開発環境が構築できたか体感いただけましたか?これからのWordPress開発はVCCWの時代ですよ!

 

 

Vagrantことはじめ

職場でもプライベートでも、他の人に説明することが多くなったのでここにまとめます。

 

Vagrant(ベイグラント)って?

仮想化ソフト上で動く環境構築ツールです。VagrantはVagrantだけで動くと思っている人もいましたが、実際は仮想ソフトウェアがなければ役に立ちません。一般的に仮想化ソフトウェアには、VirtualBoxを用いることが多いですが、その他VMwareやAWS EC2なども使うことができます。Vagrantでは、これら仮想化ソフトのことをプロバイダと呼びます。

 

なぜ使うか

これまでの開発環境は、例えば手元のパソコンにウェブサーバーのApacheを入れて、MySQLサーバーを入れて(MAMPとか使ったりして)やっていたと思います。でもそれって、結局Mac(あるいはWindows)上で動くサーバーであり、本番環境は大抵何らかのLinux系OSが使われているために、環境差異が生まれます。

また、実務では本番で使われてるWebやDBサーバー、また言語のバージョンが異なるなんてことはザラです。皆さんのPCは、本当に受け持っているプロジェクトすべて本番と同じ環境で開発ができているでしょうか?

Vagrantを使うとOSから丸々同じ環境を作れるため、環境差異による不具合リスクを大きく低減させることができます。

これは、VirtualBoxなど仮想化ツール単体でも実現できていたことですが、Vagrantと組み合わせて使うことで更に強力な開発支援ツールとなりました。これは、Vagrantが間に入ることで単体ではできなかった自動での環境構築やファイルの同期など便利な機能の数々を提供してくれるからです。

 

VirtualBoxをインストール

前述の通りVagrantはプロバイダがなければ動かすことはできません。ここではプロバイダを一般的なVirtualBoxを採用して進めていきます。次のURLから使っているOSに合うものをインストールしてきてください(なおこの記事ではMacを対象にしています)。

https://www.virtualbox.org/

執筆時点の最新は「VirtualBox 5.0.10 for OS X hosts」です。

 

Vagrantをインストール

VirtualBoxをインストールしたら次はVagrant本体です。これも次のURLからお使いの環境に合うものをダウンロードしてインストールしてください。

http://www.vagrantup.com/

執筆時点の最新は 1.7.4 です。

インストールが終わったら、ターミナルからvagrantコマンドが使えるか確認しておきましょう。

 

Boxを追加

Boxというのは、今から作っていく仮想マシンの元となるテンプレートのようなファイルです。実際にはCentOSやDebianなどOSのイメージファイルとなっています。新しく仮想マシンを立ち上げるとき、このBoxをコピーして起動します。本記事では割愛しますが既に環境構築済みの仮想マシンイメージを元に自分でBoxを作ることもできます。

ここではサーバー用途に一般的なCentOS 6系を仮に入れてみます。指定したBoxが複数のプロバイダに対応している場合、コマンド入力後にどのプロバイダ向けのBoxを取得するか入力を求められる場合があります。このときはvirtualboxと書かれたものを選択します。

このコマンドはOSのイメージファイルをダウンロードしてくるので結構時間がかかります。途中で止めてしまうと中途半端にファイルが作られてしまって再ダウンロードに一手間掛かったりするのでのんびり待ちましょう。

BoxはVagrantBoxesというサイトで公開されていますが、このサイトは個人もアップロードすることができるため、信頼できないユーザーが作ったBoxは使わないようにしましょう。

ダウンロードが終わったら、正しくBoxが利用可能になっているか確認します。

 

仮想マシンの初期化

いよいよ上で落としてきたBoxを元に起動してみます。

まずは適当なワーキングディレクトリを作ってそこに移動します。

初期化するには vagrant init を使います。

これでカレントディレクトリにVagrantfileというファイルが作られ、起動する準備が整いました。

Vagrantfileは、ベースとなるBox名など起動する仮想マシンの構成を保存しておくためのファイルです。Rubyで書かれています。

 

仮想マシンの起動

Vagrantfileを元に仮想マシンを起動するには vagrant up コマンドを使います。

実行が終わったら、正しく起動しているか確認しましょう。

runningになっていれば正常にその仮想マシンは動いています。

また、今回は前述の通り先にBoxをダウンロードしていますが、もしvagrant upを実行した時にVagrantfile内に記載されているBoxがローカルに存在しない場合、内部的にvagrant box addが実行されBoxの取得を試みます。

 

仮想マシンへSSHでアクセスする

起動した仮想マシンの操作はどう行うかというと、vagrantのコマンドから簡単にsshでログインすることができます。

無事にログインできましたか?早速コマンドを叩いてみましょう。

この通り、vagrantというユーザーでログインできていることが分かります。

もちろんroot権限も使えます。sudoはパスワードなしで使うことができ、rootのパスワードは vagrant になっています。

sshで接続できることを確認したら、exitコマンドを使って一度sshから抜けておいてください。suでrootになっている場合、2回入力する必要があります。

 

仮想マシンの停止

次は動いている仮想マシンを停止してみましょう。その前に、ターミナルで今居る場所が仮想マシン内でないことを確認してください。vagrantは仮想マシン内にはインストールされていないため、仮想マシン内でこのコマンドを使っても受け付けてくれません。

仮想マシンはCPUとメモリ消費が多く、また長時間起動していると仮想マシンが不安定になりがちです。使い終わったら停止することを心がけましょう。

実行後に前述の vagrant status を実行し、runningだったものがpoweroffに変わっていればシャットダウンが完了しています。

 

まとめ

ざっくりVagrantことはじめとして書いてきました。今後書く記事の中でも参照することがあると思います。実践的な使い方についてはまた別記しようと思います。

 

// TBD

  • 起動、停止、サスペンド、削除
  • ネットワーク
  • プロビジョン
  • etc