魔法使いの卵

WEBエンジニアの卵の成長記録

CentOS7でPHPのバージョンを管理する

やりたいこと

  • PHP7触りたい
  • php5系もいつでも触りたい
  • バージョンごとに環境を作りたくない(めんどくさい)
  • PHPそのものを管理しちゃおうぜ

環境

  • CentOS7.0

EPELのリポジトリのインストール

sudo yum install epel-release

phpenvとphp-buildを入れる

curl -L https://raw.github.com/CHH/phpenv/master/bin/phpenv-install.sh | bash
git clone git://github.com/CHH/php-build.git ~/.phpenv/plugins/php-build
cd .phpenv/plugins/php-build/
sudo sh install.sh

パスを通す

echo 'export PATH="$HOME/.phpenv/bin:$HOME/.phpenv/versions/7.0.0RC5/sbin:$PATH"' >> ~/.bashrc
echo 'eval "$(phpenv init -)"' >> ~/.bashrc
exec $SHELL -l

必要なパッケージを入れる

sudo yum install libxml2-devel bison bison-devel openssl-devel curl-devel libjpeg-devel libpng-devel libmcrypt-devel readline-devel libtidy-devel libxslt-devel

re2cを入れる

sudo wget -P /usr/share/ http://sourceforge.net/projects/re2c/files/re2c/0.14.3/re2c-0.14.3.tar.gz
cd /usr/share
sudo tar zxvf re2c-0.14.3.tar.gz -C /usr/share/
cd re2c-0.14.3
./configure
sudo make install

一度PHP7を入れてみる

  • ちょっと時間かかる
php-build --definitions
php-build 7.0.0RC5 ~/.phpenv/versions/7.0.0RC5

環境に入れることができたか確認する

phpenv versions
* 7.0.0RC5

PHP7の利用範囲を決める

  • 環境全体で使いたい場合
phpenv global 7.0.0RC5
phpenv rehash

php -v
PHP 7.0.0RC5 (cli) (built: Oct 17 2015 10:52:27) ( NTS )
Copyright (c) 1997-2015 The PHP Group
Zend Engine v3.0.0-dev, Copyright (c) 1998-2015 Zend Technologies
    with Zend OPcache v7.0.6-dev, Copyright (c) 1999-2015, by Zend Technologies
  • 指定したディレクトリだけ7.0.0RC5を使いたい場合
mkdir /vagrant/7.0.0RC5
cd /vagrant/7.0.0RC5
phpenv local 7.0.0RC5
phpenv rehash

php -v
PHP 7.0.0RC5 (cli) (built: Oct 17 2015 10:52:27) ( NTS )
Copyright (c) 1997-2015 The PHP Group
Zend Engine v3.0.0-dev, Copyright (c) 1998-2015 Zend Technologies
    with Zend OPcache v7.0.6-dev, Copyright (c) 1999-2015, by Zend Technologies

おもったこと

  • 盛大にハマってた
  • yumからphpの必要なパッケージ外されてるとか知らなかった
  • ubuntu版もあるけど新しいLTSが発表されてから続き作るか検討する
  • 2015/10/18に改修

参考元

サーバの構成をCentOS7+H2O+php-fpm(PHP7)にしてみた | SUSH-i LOG

CentOS7.1 64bitのyumリポジトリにEPELを追加 | kakiro-web カキローウェブ