Edited at

phpenvで複数のPHPのバージョンを管理する

More than 3 years have passed since last update.


はじめに

phpenvを利用して複数のバージョンのPHPを管理する方法を記述します。

PHPのインストールには、php-buildを使用しますが、phpenvのプラグインとして導入します。


環境


  • CentOS 6.4

  • git 1.7.1


phpenvのインストール

$ sudo yum install git

$ mkdir -p repos/git
$ cd repos/git
$ git clone https://github.com/CHH/phpenv.git
$ cd phpenv/bin
$ ./phpenv-install.sh
Installing phpenv in /path/to/.phpenv
remote: Counting objects: 1889, done.
remote: Total 1889 (delta 0), reused 0 (delta 0)
Receiving objects: 100% (1889/1889), 297.15 KiB | 155 KiB/s, done.
Resolving deltas: 100% (1182/1182), done.
Success.

export PATH="/path/to/.phpenv/bin:$PATH"
eval "$(phpenv init -)"

Add above line at the end of your ~/.bashrc and restart your shell to use phpenv.


~/.bashrc

...(省略)...

export PATH="/path/to/.phpenv/bin:$PATH"
eval "$(phpenv init -)"

$ source ~/.bashrc


php-buildのインストール

php-buildを.phpenv/pluginsディレクトリへインストールします。

phpenvインストール時は、pluginsディレクトリが存在しないようなので、

gitからcloneする際にpluginsディレクトリも作成します。

$ git clone https://github.com/CHH/php-build.git ~/.phpenv/plugins/php-build


  • インストール可能なPHPのバージョンの確認

$ phpenv install --list

5.2.17
5.3.10
5.3.11
...(省略)...
5.6.0RC4
5.6snapshot
master


PHPのインストール


  • epelリポジトリの追加

libmcryptが必要となるため、epelリポジトリを追加しておきます。

$ sudo yum install wget

$ wget http://ftp.riken.jp/Linux/fedora/epel/6/x86_64/epel-release-6-8.noarch.rpm
$ sudo yum localinstall epel-release-6-8.noarch.rpm


  • 必要なパッケージのインストール

$ sudo yum install gcc bison libxml2 libxml2-devel openssl-devel   \

libcurl-devel libjpeg-turbo-devel libpng-devel libmcrypt-devel \
readline-devel libtidy-devel libxslt-devel


  • PHP5.3.29をインストール

$ phpenv install 5.3.29


  • PHP5.4.32をインストール

$ phpenv install 5.4.32


  • PHP5.5.16をインストール

$ phpenv install 5.5.16


  • インストール済みのバージョンの確認

$ phpenv versions

5.3.29
5.4.32
5.5.16


利用するPHPのバージョン切替


  • PHP5.4.32を指定

$ phpenv local 5.4.32

$ phpenv version
5.4.32 (set by /path/to/.php-version)
$ phpenv versions
5.3.29
* 5.4.32 (set by /path/to/.php-version)
5.5.16
$ php --version
PHP 5.4.32 (cli) (built: Sep 5 2014 01:04:26)
Copyright (c) 1997-2014 The PHP Group
Zend Engine v2.4.0, Copyright (c) 1998-2014 Zend Technologies
with Xdebug v2.2.5, Copyright (c) 2002-2014, by Derick Rethans


  • PHP5.5.16へ変更

$ phpenv 5.5.16

$ phpenv version
5.5.16 (set by /path/to/.php-version)
$ phpenv versions
5.3.29
5.4.32
* 5.5.16 (set by /path/to/.php-version)
$ php --version
PHP 5.5.16 (cli) (built: Sep 5 2014 01:24:23)
Copyright (c) 1997-2014 The PHP Group
Zend Engine v2.5.0, Copyright (c) 1998-2014 Zend Technologies
with Zend OPcache v7.0.4-dev, Copyright (c) 1999-2014, by Zend Technologies
with Xdebug v2.2.5, Copyright (c) 2002-2014, by Derick Rethans


参考