PHP7の開発環境をVagrant+CentOS7上に30分で構築する post

PHP7の正式リリースが12/3に迫っています。

今日は、VirtualBoxとVagrantを使って、PHP7の開発環境を簡単に作成します。

VirtualBoxとVagrantのインストール

フリーな仮想化ソフトウェアであるVirtualBoxを、以下からダウンロードしインストールします(執筆時の動作確認バージョンはVirtualBox 5.0.10)。

VirtualBoxの仮想イメージを操作するツールであるVagrantを、以下からダウンロードしインストールします(執筆時の動作確認バージョンはVagrant 1.7.4)。

PHPプロジェクトの準備

まず、PHPプロジェクトを用意します。PHP7で動作するものを用意してください。

ここでは、Fat-Free Framework をインストールします(ただし、Fat-Free 3.5.0がPHP7に完全に対応しているかどうかは不明です)。

https://github.com/bcosca/fatfree/archive/master.zip をダウンロードして展開します。

次にWebのドキュメントルートを仮想マシンでの設定に合わせるため、プロジェクトの直下にpublcフォルダのシンボリックリンクを作成します。

$ cd fatfree-master/
$ ln -s . public

これで準備完了です。

仮想マシンの作成

PHPプロジェクトのルートディレクトリ(ここではfatfree-master)に vagrant-fuelphp-centos7 をインストールします。

$ cd fatfree-master/
$ git clone https://github.com/kenjis/vagrant-centos7-php.git

仮想マシンを構築します。

$ cd vagrant-fuelphp-centos7/
$ vagrant up

初回はCentOS7の仮想イメージをダウンロードするため、時間がかかりますので気長に待ちます(このダウンロード時間を含めると30分で開発環境を構築するのは無理かもしれません)。

これで、仮想マシンが作成され、PHPでの開発に必要なサーバなどもインストール設定されます。

これで、http://localhost:8000/ にアクセスすれば、以下のページが表示されます。

ディレクトリ構成

ホスト(手許のPC)側

fatfree-master/ ... PHPプロジェクトのトップ
├── public/     ... Webドキュメントルート
└── vagrant-fuelphp-centos7/

ゲスト(仮想マシン)側

/mnt/project/
├── public/
└── vagrant-fuelphp-centos7/

仮想マシンから、ホスト側のfatfree-masterフォルダを共有しているので、ホスト側から好きなエディタでソースを変更すれば、仮想マシンに自動的に反映されます。

SSHでのアクセス

vagrant-fuelphp-centos7フォルダから、vagrant sshコマンドで仮想マシンにSSHで接続できます。

$ cd fatfree-master/vagrant-fuelphp-centos7/
$ vagrant ssh

なお、ホームディレクトリにシンボリックリンクが張ってあるので、/mnt/projectフォルダには~/projectでアクセスできます。

サーバ環境

vagrant-fuelphp-centos7で作成される仮想マシンのサーバ環境は以下のようになっています。

  • メモリ 480MB
  • HDD 40GB
  • OS CentOS 7.1 (64bit)
  • Apache 2.4.6
  • MariaDB 5.5.44
  • PHP 7.0-RC8 (Remi RPM)
  • phpMyAdmin 4.4.15.1 (Remi RPM)
  • PHPUnit 5.0
  • Composer 1.0-dev

ホスト側のポート8000が仮想マシンのポート80に転送されるようになっています。仮想マシンに直接アクセスする場合は、http://192.168.33.33/ にアクセスします。

ホストのPHPプロジェクトのフォルダが仮想マシンの/mnt/projectにマウントされるようになっています。

また、http://localhost:8000/phpmyadmin/ から、phpMyAdminにアクセスできます。MariaDBのrootアカウントのパスワードはrootです。

仮想マシンの起動と停止

仮想マシンの停止は、vagrant-fuelphp-centos7フォルダに移動して、

$ vagrant halt

とします。vagrant suspendコマンドを実行すれば、仮想マシンをシャットダウンせずに状態を保存したまま停止できます。

仮想マシンの起動は、

$ vagrant up

仮想マシンを破棄するには、

$ vagrant destroy

とします。

その他のVagrant環境

今回の開発環境はCentOS 7.1を使ったものですが、Debian 8を使ったRasmusさんの開発環境が公開されています。

関連

Date: 2015/11/30

Tags: php7, php, vagrant, centos7, centos