PHP7が速いと聞いて試してみたいけど、

今ある環境を削除して、改めてPHP7の環境を作るのは面倒だし、

PHP7の環境を作っている間に仕事の連絡が来たら困る。


そんな時に仮想環境を用意してそこで試すのが良い。

だけど、VirtualBox自体が処理が重くてPHPの速さを試すにはちょっと…


ということで、


docker_top

Docker - Build, Ship, and Run Any App, Anywhere


コンテナ型の仮想化のDockerでPHP7の環境を構築してみることにした。




最初にDockerのダウンロード。

Windows版はboot2dockerを入れとくれ。

Boot2docker


とりあえず、Ubuntuに入れたので、インストール手順を書く。


sudo apt-get update
sudo apt-get install docker-engine
sudo service docker start

※この方法だとDockerの最新版は入らないよ。


これでインストールは終了。

端末を開いて、


docker -v
Docker version 1.10.3, build 20f81dd

docker -vでDockerのバージョンが表示されていれば、インストールは終了です。


mkdir ~/phpenv
cd phpenv
emacs -nw Dockerfile

とりあえず、docker用のディレクトリを作成して、Dockerfileを作成します。

ファイルを作成できたら、ファイルを開き、


#PHPの環境
FROM php:apache

#ログインすると/var/www/htmlにいるので、以下にphpinfoを作成しておく
RUN echo '' > info.php

Dockerfileはこれで終了。

ここまで出来たら、端末で


#phpappというコンテナイメージを作成
docker build -t phpapp .

#phpappのイメージからコンテナを作成 ポートは8080
docker run -it -p 8080:80 phpapp

これで終了。

別の端末を開き、


docker exec -it 9919b50b3e8c3b19415297985fd160142dc8a06dd319291536296058d30d127b /bin/bash

※-itの後の数字とアルファベットの羅列はコンテナIDね。docker psで調べられる。


docker execで作成したコンテナの中に入り、


root@9919b50b3e8c:/var/www/html#

操作している環境が変わったことが確認できたら、


php -v
PHP 7.0.4 (cli) (built: Mar 19 2016 00:21:33) ( NTS )
Copyright (c) 1997-2016 The PHP Group
Zend Engine v3.0.0, Copyright (c) 1998-2016 Zend Technologies

こんな感じで確認して、PHPのバージョンを確認します。

確認できたらブラウザを開き、

http://localhost:8080/info.phpを開いてみて、


phpinfo


PHPInfoが表示できることを確認。


Apacheの設定とかをすべてすっ飛ばして、PHPの実行環境ができちゃった。

だけど、まだルートディレクトリ上でファイルを操作するのが難しいので、

そのうち、そこら辺にも手を加えていく。


余談だけど、

落としてきたPHP7のイメージがubuntuで動くように書かれているのがありがたい。