Help us understand the problem. What is going on with this article?

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

More than 5 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
Why not register and get more from Qiita?
  1. We will deliver articles that match you
    By following users and tags, you can catch up information on technical fields that you are interested in as a whole
  2. you can read useful information later efficiently
    By "stocking" the articles you like, you can search right away
Comments
No comments
Sign up for free and join this conversation.
If you already have a Qiita account
Why do not you register as a user and use Qiita more conveniently?
You need to log in to use this function. Qiita can be used more conveniently after logging in.
You seem to be reading articles frequently this month. Qiita can be used more conveniently after logging in.
  1. We will deliver articles that match you
    By following users and tags, you can catch up information on technical fields that you are interested in as a whole
  2. you can read useful information later efficiently
    By "stocking" the articles you like, you can search right away
ユーザーは見つかりませんでした