Edited at

phpenvとphp-buildでPHPのバージョンを切り替えられるようにする

More than 3 years have passed since last update.


phpenvのインストール

$ brew install phpenv

.bashrcに追加

export PATH=$PATH:$HOME/.phpenv/bin

# bashの場合
eval "$(phpenv init -)"

# zshの場合
eval "$(phpenv init - zsh)"


php-buildのインストール

2013/08/27時点では、Homebrewのphp-buildが、Githubのリポジトリの0.9.0のタグから取得するようになっているので、PHPのバージョンが少し古かった。

今回はPHP5.5をインストールしたかったので、Formulaを少し修正して、masterブランチから取得してインストールできるようにした。

/usr/local/Library/Formula/php-build.rb の url の部分を以下のように修正してから、インストールする。

url 'https://github.com/CHH/php-build.git', :branch => 'master'

$ brew install php-build


使い方

インストール可能なPHPのバージョンを確認できる。

$ php-build --definitions

インストールする場合は、phpenvのディレクトリにインストールする。

phpenv rehash はインストール後必ず実行する必要があるみたい。

$ php-build {version} ~/.phpenv/versions/{version}

$ phpenv rehash


Apacheモジュールを生成する場合

Apacheモジュールを生成するには、configureパラメータを追加する必要がある

$ vi /usr/local/share/php-build/definitions/{version}

以下を一行を追加してから、php-buildコマンドでインストールすること。

configure_option "--with-apxs2" "/usr/sbin/apxs"


バージョンを切り替える

バージョンの切替は以下のコマンドで切り替える。

$ phpenv global {version}


Apacheモジュールを切り替える

phpenv-apache-versionというphpenvのプラグインを利用する。

phpenv-apache-version

リポジトリをphpenvのpluginsディレクトリに置く。

$ git clone https://github.com/garamon/phpenv-apache-version ~/.phpenv/plugins/phpenv-apache-version


使い方

必ずlibphp5.soが、 $HOME/.phpenv/versions/{version}直下にある必要があるので、php-buildでインストール後にコピーしておく必要がある

$ cp $HOME/.phpenv/versions/{version}/libexec/apache2/libphp5.so $HOME/.phpenv/versions/{version}/

libphp5.soをコピー後、以下のコマンドを実行するとlibphp5.soを入れ替えてApacheが再起動される。

$ phpevn apache-version {version}


MacでデフォルトのApacheを利用している場合

MacでデフォルトのApacheを利用している場合は動かないので少し手を加える。

.bashrcや.zshrcにPHPENV_APACHE_MODULE_PATHの環境変数を追加して、Apacheモジュールの置き場所を指定する。

export PHPENV_APACHE_MODULE_PATH=/path/to/directory

で、httpd.confのlibphp.soの指定場所をPHPENV_APACHE_MODULE_PATHにする。


httpd.conf

LoadModule php5_module    /path/to/directory