Qiita Teams that are logged in
You are not logged in to any team

Log in to Qiita Team
Community
OrganizationAdvent CalendarQiitadon (β)
Service
Qiita JobsQiita ZineQiita Blog
69
Help us understand the problem. What is going on with this article?
@ispern

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
69
Help us understand the problem. What is going on with this article?
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.
Sign Up
If you already have a Qiita account Login
69
Help us understand the problem. What is going on with this article?