複数バージョンの PHP を管理できる phpenv のインストール手順

複数バージョンの PHP を管理する phpenv をインストールして、PHP 5.5.7 をインストールするまでの手順メモ。

phpenv のインストーラをダウンロードして実行する。

$ curl https://raw.github.com/CHH/phpenv/master/bin/phpenv-install.sh | sh

.bash_profile に .phpenv のパスを設定する
rbenv をインストールしている場合は、echo $PATH で rbenv のパス設定が先になるように注意する。

if [ -d $HOME/.phpenv ]; then
    export PATH="$HOME/.phpenv/bin:$PATH"
    eval "$(phpenv init -)"
fi

.phpenv ディレクトリに plugins ディレクトリを作成して php-build をインストールする

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

ビルド可能な PHP のバージョン一覧を表示する

$ phpenv install --complete
5.2.17
5.3.10
5.3.11
...
5.5.6
5.5.7
5.5snapshot
master

PHP 5.5.7 のインストールを実行する

$ phpenv install 5.5.7

ところが、PHP のビルド開始時に以下のエラーが発生。

-----------------------------------------
configure: error: jpeglib.h not found.
-----------------------------------------

各ライブラリは MacPorts で /opt/local/ 以下にインストールしていたが、/usr/ 以下を探しにいっているためにエラーとなった模様。
~/.phpenv/plugins/php-build/share/php-build/definitions/5.5.7 ファイルに以下の記述を追加して、再度インストールを実行する。

その後、iconv 関連のエラーも出たので、--with-iconv=/opt/local も追加した。

configure_option -R --with-jpeg-dir=/opt/local
configure_option -R --with-png-dir=/opt/local
configure_option -R --with-zlib-dir=/opt/local
configure_option -R --with-mcrypt=/opt/local
configure_option -R --with-curl=/opt/local
configure_option -R --with-iconv=/opt/local

インストール成功!

$ phpenv install 5.5.7
[Info]: Loaded apc Plugin.
[Info]: Loaded pyrus Plugin.
[Info]: Loaded xdebug Plugin.
[Info]: Loaded xhprof Plugin.
[Info]: php.ini-production gets used as php.ini
[Info]: Building 5.5.7 into /Users/hoge/.phpenv/versions/5.5.7
[Skipping]: Already downloaded and extracted http://www.php.net/distributions/php-5.5.7.tar.bz2
[Preparing]: /var/tmp/php-build/source/5.5.7
[Compiling]: /var/tmp/php-build/source/5.5.7
[Pyrus]: Downloading from http://pear2.php.net/pyrus.phar
[Pyrus]: Installing executable in /Users/hoge/.phpenv/versions/5.5.7/bin/pyrus
[XDebug]: Downloading http://xdebug.org/files/xdebug-2.2.3.tgz
[XDebug]: Compiling in /var/tmp/php-build/source/xdebug-2.2.3
[XDebug]: Installing XDebug configuration in /Users/hoge/.phpenv/versions/5.5.7/etc/conf.d/xdebug.ini
[XDebug]: Cleaning up.
[Info]: Enabling Opcache...
[Info]: Done
[Info]: The Log File is not empty, but the Build did not fail. Maybe just warnings got logged. You can review the log in /tmp/php-build.5.5.7.20140110223210.log
[Success]: Built 5.5.7 successfully.

phpenv でインストールされたバージョンを確認してみる。

$ phpenv versions
* system (set by /Users/hoge/.phpenv/version)
  5.5.7

ディレクトリ内のローカルPHPバージョンを 5.5.7 に設定して、実行してみる。

$ phpenv local 5.5.7
$ phpenv versions
  system
* 5.5.7 (set by /Users/hoge/.php-version)
$ php -v
PHP 5.5.7 (cli) (built: Jan 10 2014 22:39:46) 
Copyright (c) 1997-2013 The PHP Group
Zend Engine v2.5.0, Copyright (c) 1998-2013 Zend Technologies
    with Zend OPcache v7.0.3-dev, Copyright (c) 1999-2013, by Zend Technologies
    with Xdebug v2.2.3, Copyright (c) 2002-2013, by Derick Rethans

参考:CHH/phpenv · GitHub
   phpenv+php-build環境の構築と運用 – hnwの日記

«
»