VirtualBox + Vagrant で PHP7の実行環境をちゃちゃっと作る

VirtualBox + Vagrant で PHP7の実行環境をちゃちゃっと作る

かねてより楽しみにしていた映画『チャッピー』をみてきた kagata です。いちおう世間では貧困問題に鋭く切り込む作品という位置づけになっているようですが、ギャングスターズのあまりのヒャッハーぶりにちょっと笑ってしまったわたしの感性は間違っていたのでしょうか。

前回のバシャログ記事では、プログラミング言語 PHP が本日6月8日で20周年を迎えるという話をしました(今思うと、今日やればよかったですね)。その最後にご紹介した、現在開発中の新バージョン PHP7をお手軽に試してみる方法をご紹介します。VirtualBox と Vagrant があれば、自分でソースコードからビルドしなくてもだいじょうぶ!

PHP7の phpinfo() を実行するまで

PHP7 の実行環境がすぐ作れるような Vagrant の Box ファイル、だれか作ってないかなーと探してみたら、やっぱりありました。しかも PHP の生みの親 Rasmus の作でした。ありがたいですね。

Vagrant box rasmus/php7dev | Atlas by HashiCorp

今回は次の環境で作業しました。

  • ホスト OS:Windows 7 Professional SP1 (64bit)
  • VIrtualBox 4.3.28
  • Vagrant 1.7.2

まずは、ホスト OS 上に適当に作業用ディレクトリを作り、コマンドプロンプトでそこに移動します。

そして、Box ファイルを取得しましょう。わたしの環境では1時間半くらいかかりました。

>vagrant box add rasmus/php7dev

Box ファイルのダウンロードが終わったら、おもむろに init します。

>vagrant init rasmus/php7dev

すると、カレントディレクトリに Vagrantfile ができあがります。ひととおり目を通して、お好みでカスタマイズしてみてもいいでしょう。わたしはとりあえず、IP アドレスとホスト名だけ追記しておきました。ホスト側の hosts ファイルにも、同じように書いておきましょう。

config.vm.network "private_network", ip: "192.168.33.107"
config.vm.hostname = "php7dev"

あとは、仮想マシンを作成して起動するだけ!

>vagrant up

…のはずですが、わたしの環境では次のエラーになりました。

The guest machine entered an invalid state while waiting for it
to boot. Valid states are 'starting, running'. The machine is in the
'poweroff' state. Please verify everything is configured
properly and try again.

If the provider you're using has a GUI that comes with it,
it is often helpful to open that and watch the machine, since the
GUI often has more helpful error messages than Vagrant can retrieve.
For example, if you're using VirtualBox, run `vagrant up` while the
VirtualBox GUI is open.

このようなエラーが出る場合は、ためしに VirtualBox のマネージャー画面から仮想マシンを起動してみましょう。わたしの環境では次のエラーが表示されました。

20150608-1.png

こういう場合は VirtualBox の Extension Pack をインストールすると解決する場合があるようです。わたしもこれで解決しました。

仮想マシンが無事に起動したら、ブラウザで http://php7dev/ を開いてみましょう。

20150608-2.png

PHP7の phpinfo() が表示できました!

自分の書いたコードを PHP7で実行する

ここまでできたら、次は自作のコードを動かしてみましょう。

仮想マシンに SSH でログインします。vagrant ssh ができる環境ならそれでもよいですし、それができない Windows 環境なら SSH クライアントを別途用意してログインします。ID とパスワードは “vagrant” ですよ。

ドキュメントルートは /var/www/default/ です。vim か何かでここに php ファイルを作れば、ブラウザから実行できるようになります。PHP7の新しい構文をいろいろ試してみましょう。

$ sudo vim /var/www/default/demo.php

PHP5も使える!

親切なことに、バージョン5系の PHP もいくつかインストールしてあります。

vagrant@php7dev:~$ ll /etc/ | grep php
drwxr-xr-x   2 vagrant vagrant 4.0K Jan 30 07:05 php53
drwxr-xr-x   2 vagrant vagrant 4.0K May 24 22:46 php54
drwxr-xr-x   2 vagrant vagrant 4.0K Mar 29 05:39 php54-debug
drwxr-xr-x   2 vagrant vagrant 4.0K Mar 29 05:42 php54-debug-zts
drwxr-xr-x   2 vagrant vagrant 4.0K Mar 29 05:40 php54-zts
drwxr-xr-x   2 vagrant vagrant 4.0K Jan 30 06:36 php55
drwxr-xr-x   2 vagrant vagrant 4.0K Jun  5 03:27 php56
drwxr-xr-x   3 vagrant vagrant 4.0K Jun  5 03:26 php7
vagrant@php7dev:~$

実行する PHP のバージョンはコマンドで切り替えられます。例えば、バージョン7から5.6に切り替えるには次のコマンドを実行します。

$ sudo service php-fpm stop; sudo service php56-fpm start

バージョンごとの挙動やパフォーマンスを比べるのに使えそうです。

まとめ

PHP7の実行環境を作ってみました。細かいバージョンやゲスト OS(rasmus/php7dev は Debian 8.0を使用します)にこだわりがあれば自分でソースコードからインストールすることになりますが、そうでなければ Rasmus の Box ファイルを使わせてもらうのが手っ取り早いでしょう。

そういえば、Web サーバとして Nginx、データベースサーバとして MySQL もインストールしてあります。WordPress などお好みのアプリケーションを動かしてみるのもおもしろいかもしれませんね。

  • このエントリーをはてなブックマークに追加

この記事を読んだ人にオススメ