min117の日記

初期desireもち。趣味Mac,メインFedora,仕事xp。

PHP7をdocker環境のcentos7にインストールする

昨日、2015/12/4 に PHP7 がリリースされた。

ここを参考にインストールしてみる。

docker にある centos7 にインストールする。

qiita.com

 

 

まずはdocker起動。

f:id:min117:20151205124558p:plain

rootで作業する。

yum install -y epel-release

 

f:id:min117:20151205124912p:plain

# 依存パッケージをインストール

f:id:min117:20151205125508p:plain

f:id:min117:20151205125626p:plain

# ソースをダウンロードして解凍

f:id:min117:20151205161338p:plain

# コンパイルしてインストール
cd php-src-php-7.0.0RC2
./buildconf --force

f:id:min117:20151205161604p:plain

./configure \
  --prefix=/opt/php7 \
  --with-libdir=lib64 \
  --enable-fpm \
  --enable-mbstring \
  --enable-mysqlnd \
  --enable-bcmath \
  --enable-sockets \
  --enable-exif \
  --enable-gd-native-ttf \
  --enable-gd-jis-conv \
  --enable-intl \
  --enable-pcntl \
  --enable-soap \
  --enable-wddx \
  --enable-zip \
  --with-openssl \
  --with-pcre-regex \
  --with-zlib \
  --with-bz2 \
  --with-curl \
  --with-gd \
  --with-webp-dir \
  --with-jpeg-dir \
  --with-png-dir \
  --with-zlib-dir \
  --with-xpm-dir \
  --with-freetype-dir \
  --with-gettext \
  --with-gmp \
  --with-mhash \
  --with-icu-dir=/usr \
  --with-ldap \
  --with-onig \
  --with-mcrypt \
  --with-mysqli=mysqlnd \
  --with-pdo-mysql=mysqlnd \
  --with-readline \
  --with-snmp \
  --with-tidy \
  --with-xsl \
  --with-gnu-ld

checkが走る。

f:id:min117:20151205161910p:plain

configure が完了。

f:id:min117:20151205162137p:plain

 

make -j$(nproc)

f:id:min117:20151205162305p:plain

make は時間がかかってる。

f:id:min117:20151205162759p:plain

やっとmakeが終わった。30分近くかかった。

f:id:min117:20151205170234p:plain

make install

f:id:min117:20151205170527p:plain

make install はすぐ終わった。

ここまでを docker で image に保存しておく。

ーーー

byobu で ログインを切り替えて

# docker commit コンテナ名

f:id:min117:20151205171734p:plain

docker -D した画面をモニタリングしてると、docker commit は、実体は untar みたい。

f:id:min117:20151205172019p:plain

docker commit が完了。

# docker imagesで、上書きされたか(更新時刻)を確認する。

ーーー

更新はされたけど、リポジトリ名とTAG名が「none」になっちゃってる。「centos/centos7」に上書きしたかったのだが。

# docker commit のときに、イメージ名の指定がいるのか。

f:id:min117:20151205172432p:plain

書式はこうだった。

$ docker commit {コンテナ名}|{コンテナID} {ユーザ名}/{イメージ名}

もう一度コミットしておく。

# docker commit example-nginx-binbash4 centos/centos7

f:id:min117:20151205172917p:plain

あれ。また違うのができてしまった。

上から3行目に上書きしたいだけなのに。1行目ができてしまう。

f:id:min117:20151205173148p:plain

 

ーーー

もう一度 docker commit の書式をググる

書式違ってた。

ユーザ名とイメージ名の間はコロン(:)が正しい。

$ docker commit [コンテナ名] [ユーザ名]:[イメージ名]

再度コミットする。

# docker commit example-nginx-binbash4 centos:centos7

f:id:min117:20151205174245p:plain

正常にコミットされた。

1行目に、centos:centos7 が来ていて、更新日時が最新になっている。

f:id:min117:20151205174328p:plain

次回はいよいよPHP7の動きを試す。