PHP7の開発環境をVagrant+CentOS7上に30分で構築する
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