LoginSignup
67
69

More than 5 years have passed since last update.

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

Last updated at Posted at 2013-08-27

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
67
69
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
67
69