どんどこすすむの日記

どんどこすすむオフィシャルブログ

PHPBrewのインストール

phpのバージョンを切り替えるPHPBrewをインストールしてみた。
環境はMacOS X、HomeBrew
 
こちらを参考
https://github.com/phpbrew/phpbrew/blob/develop/README.ja.md
https://github.com/phpbrew/phpbrew/blob/develop/README.md
 

  • 準備

phpのインストールが必要。Macにはphpがバンドルされているのでこれはクリア。
PHPBrewはPHPをソースからビルドするツールなのでビルドに必要なパッケージをHomeBrewでインストール

$ brew install automake autoconf curl pcre re2c mhash libtool icu4c gettext jpeg libxml2 mcrypt gmp libevent

 
しかし↓

$ brew link icu4c

Warningで怒られた↓

Warning: icu4c is keg-only and must be linked with --force
Note that doing so can interfere with building software.

 
メッセージどおり、forceオプション付きでやるとうまくいった

$ brew link icu4c --force
Linking /usr/local/Cellar/icu4c/52.1... 71 symlinks created

 

  • PHPBrewのインストール

ダウンロード

$ curl -O https://raw.github.com/c9s/phpbrew/master/phpbrew

しかし、ダウンロードうまくいかない
 
日本語マニュアルのやり方だとだめだったので
英語マニュアルを見るとオプション-Lを追加されていた。

$ curl -L -O https://github.com/phpbrew/phpbrew/raw/master/phpbrew
  % Total    % Received % Xferd  Average Speed   Time    Time     Time  Current
                                 Dload  Upload   Total   Spent    Left  Speed
100   130    0   130    0     0     71      0 --:--:--  0:00:01 --:--:--    71
100  104k  100  104k    0     0  30256      0  0:00:03  0:00:03 --:--:--  172k

できた。
 

chmod +x phpbrew
sudo cp phpbrew /usr/bin/phpbrew

 
インストール終わり

  • PHPBrewを使う

 
READMEどおりにPHPBrewコマンドを打っていく

$ phpbrew init
$ source ~/.phpbrew/bashrc 
$ phpbrew lookup-prefix homebrew

 
既知のバージョンを一覧表示

$ phpbrew known
Available stable versions:
  5.5 versions:    5.5.15, 5.5.14, 5.5.13, 5.5.12, 5.5.11, 5.5.10, 5.5.9, 5.5.8
  5.4 versions:    5.4.31, 5.4.30, 5.4.29, 5.4.28, 5.4.27, 5.4.26, 5.4.25, 5.4.24
  5.3 versions:    5.3.28, 5.3.27, 5.3.26, 5.3.25, 5.3.24, 5.3.23, 5.3.22, 5.3.21

 
とりあえず最新のPHPをインストール

$ phpbrew install php-5.5.15 +default +dbs +mb +gd
configure: WARNING: bison versions supported for regeneration of the Zend/PHP parsers: 2.4 2.4.1 2.4.2 2.4.3 2.5 2.5.1 2.6 2.6.1 2.6.2 2.6.3 2.6.4 2.6.5 2.7 (found: 2.3).
configure: error: Cannot find libpq-fe.h. Please specify correct PostgreSQL installation path

PostgreSQLがインストールされてないので、configureではじかれた
 
mysqlでやってみる

$ phpbrew install php-5.5.15 +default +mysql +pdo +mb +gd

 
make中にわんさかWarningが出た(gccのバージョン?sudoで実行しないとだめ?)
でも、最後に「Enjoy!」が出た

To use the newly built PHP, try the line(s) below:

    $ phpbrew use php-5.5.15

Or you can use switch command to switch your default php version to php-5.5.15:

    $ phpbrew switch php-5.5.15

Enjoy!

 
確認してみる

$ phpbrew list
Installed versions:
* (system)
  php-5.5.15       (/Users/kubotaken/.phpbrew/php/php-5.5.15)
                   +default+mysql+pdo+mb+gd

最新バージョンのPHPに切り替える

$ phpbrew switch 5.5.15
$ php -v
PHP 5.5.15 (cli) (built: Aug  8 2014 19:49:26) 
Copyright (c) 1997-2014 The PHP Group
Zend Engine v2.5.0, Copyright (c) 1998-2014 Zend Technologies

 
切り替わった!
 
元のバージョンのPHPに戻す

$ phpbrew off

 
バリアント(variants)phpのモジュールの一覧表示

$ phpbrew variants
Variants: 
  all, apxs2, bcmath, bz2, calendar, cgi, cli, ctype, curl, dba, debug, dom, 
  embed, exif, fileinfo, filter, fpm, ftp, gcov, gd, gettext, hash, iconv, 
・・・

 
あと、phpbrewのコマンドを打つたびに
いちいち「You should not see this, please check if bashrc is sourced in your shell.」と言われるので
bashrcに以下を追加

source ~/.phpbrew/bashrc



PHPのバージョン切り替えが簡単にできる。
ソースからインストールするのでmakeに時間がかかる(といっても15分ぐらい)
Macphpをインストールするのは初めてなのだけど、make中にWarningが出まくるのはいいのか?調べてはいない。
あと、apacheで動かしてない。apacheのバリアントは「+apxs2」
 
結論
そんなに使う機会はないかもしれない。