複数バージョンの PHP を管理できる phpenv のインストール手順
2014年01月10日
複数バージョンの 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