PHPBrewは異なるバージョンのPHPをホームディレクトリにビルド(build)とインストールすることができます。
環境変数の管理もでき、個人の需要に応じてバージョンを切り替えて利用することが可能です。
PHPBrewのできること::
- PDO、mysql、sqlite、debugなど様々なバリアント(variant)を持つPHPをビルドします。
- apache phpモジュールをコンパイルし、ヴァージョンごとに分けます。
- 異なるバージョンのphpをホームディレクトリにインストールするので、ルートパーミッション(root permission)は必要なくなります。
- 簡易にバージョンを切り替えることができます。しかもbash/zshシェルと統合されました。
- 自動機能検知。
- system-wide環境に複数のPHPバージョンをインストールできます。
- Mac OS 10.5+
- Ubuntu
- Debian
- PHP5.3
- curl
- gcc, binutil, autoconf, libxml, zlib, readline
MacPorts使用者:
port install curl automake autoconf icu $(port echo depof:php5)
HomeBrew使用者:
brew install automake autoconf curl pcre re2c mhash glibtool icu4c gettext jpeg libxml2 mcrypt gmp libevent
brew link icu4c
sudo apt-get install autoconf automake curl build-essential libxslt1-dev re2c libxml2-dev
sudo apt-get build-dep php5
Cent OS必須環境の設定
sudo rpm -Uvh http://repo.webtatic.com/yum/centos/5/latest.rpm
# phpがない場合
sudo yum install --enablerepo=webtatic php php-xml
wget http://pkgs.repoforge.org/rpmforge-release/rpmforge-release-0.5.2-2.el5.rf.x86_64.rpm
sudo rpm -Uvh rpmforge-release-0.5.2-2.el5.rf.x86_64.rpm
sudo yum install --enablerepo=rpmforge re2c libmhash
参照: http://matome.naver.jp/odai/2133887830324055901
PHPBrewをダウンロードしてください:
curl -O https://raw.github.com/c9s/phpbrew/master/phpbrew
chmod +x phpbrew
sudo cp phpbrew /usr/bin/phpbrew
まずはシェル環境にbash scriptをInitします。
$ phpbrew init
そして次の行を.bashrc
または.zshrc
ファイルに追加します:
$ source ~/.phpbrew/bashrc
既知のバージョンを一覧表示します:
$ phpbrew known
Available stable versions:
php-5.3.10
php-5.3.9
php-5.3.8
php-5.3.7
既知のサブバージョンを一覧表示します:
$ phpbrew known --svn
古いバージョン(5.3以前)を一覧表示します:
$ phpbrew known --old
簡易にデフォルトバリアントのPHPをビルドとインストールします:
$ phpbrew install php-5.4.0 +default
こちらではdefault
VARIANTセットをお薦めします。デフォルトセットは常用のVARIANTクラスを収録しています。最小限インストールの場合、default
VARIANTセットを削除してください。
テスト:
$ phpbrew install --test php-5.4.0
debugメッセージ:
$ phpbrew -d install --test php-5.4.0
PHPBrewはConfigureオプションを管理できます。VARIANTのクラス名を指定するだけで、PHPBrewはincludeパスとオプションを検知します。
PHPBrewは常用のVARIANTクラスを収録し、デフォルトのVARIANTセットを提供しています。
収録されているVARIANTクラスを確認するには、簡単にサブコマンドvariants
を実行して一覧表示を確認できます:
$ phpbrew variants
Variants:
pear
mysql
debug
sqlite
pgsql
cli
apxs2
cgi
soap
pcntl
... (etc)
最新のPHPBrewは2つのVARIANTセットを提供しています:
- default (最も常用のバリアント, 例えば:filter bcmath ctype fileinfo pdo posix ipc pcntl bz2 cli intl fpm calendar sockets readline, zip)
- dbs (sqlite, mysql, pgsql, pdo)
例:
$ phpbrew install php-5.4.5 +default+dbs
それ以外のVARIANTクラスのPHPをビルドすることも可能です:
$ phpbrew install php-5.3.10 +mysql+sqlite+cgi
$ phpbrew install php-5.3.10 +mysql+debug+pgsql +apxs2
$ phpbrew install php-5.3.10 +mysql +pgsql +apxs2=/usr/bin/apxs2
PDOはデフォルトで起動されています。
PHPとpgSQL (Postgresql)拡張モジュールをビルドします:
$ phpbrew install php-5.4.1 +pgsql
あるいはpostgresqlのベースディレクトリを生成してpgSQL拡張モジュールをビルドします:
$ phpbrew install php-5.4.1 +pgsql=/opt/local/lib/postgresql91
注意点:
apacheのphpモジュールをビルドする場合、 モジュールディレクトリのパーミッションを変更してください。 例:
/opt/local/apache2/modules/
。 パーミッションは書き込む可能です。PHPBrewはパーミッションを変更することができます。 インストールした後、httpd.conf設定ファイルを確認し、PHPモジュールを切り替わってください。現時点PHPBrewはapxs2 (apache2)しか支援しません。 複数のPHPをインストールした環境の下で
apxs2
VARIANTを有効化したなら、apacheのconfファイルは以下のように示されています:
# LoadModule php5_module modules/libphp5.3.10.so
# LoadModule php5_module modules/libphp5.4.0.so
# LoadModule php5_module modules/libphp5.4.0RC8.so
# LoadModule php5_module modules/libphp5.4.0RC7.so
# LoadModule php5_module modules/libphp5.4.1RC2.so
# LoadModule php5_module modules/libphp5.4.1.so
# LoadModule php5_module modules/libphp5.4.2.so
LoadModule php5_module modules/libphp5.4.4.so
コメント化や非コメント化を利用して簡単にphp5 apacheモジュールを無効化/有効化にすることができます。 編集したあとは必ずapache http サーバーを再起動してください:)
エクストラconfigure引数を渡すには、以下のようにしてください:
$ phpbrew install php-5.3.10 +mysql +sqlite -- \
--enable-ftp --apxs2=/opt/local/apache2/bin/apxs
使用 (switch version temporarily):
$ phpbrew use php-5.4.0RC7
切り替え (特定のバージョンをデフォルトとして切り替えます)
$ phpbrew switch php-5.4.0
終了:
$ phpbrew off
$ phpbrew list
(インストール手順の後):
phpbrew ext install pdo
phpbrew ext install xdebug
phpbrew ext install mcrypt --with-mcrypt=/opt/local
pecl install mongo
phpbrew enable mongo
enable
コマンドはconfig {current php base}/var/db/{extension name}.iniを作成し、拡張モジュールを有効にします。
PHPBrewをアップグレードする場合、 self-update
コマンドを実行するだけで済みます。
このコマンドは最新バージョンのgithubのmaster
branchをインストールすることができます:
$ phpbrew self-update
インストールされたPHPファイルは~/.phpbrew/php
に置かれます。例えば、php 5.4.0RC7の場合は:
~/.phpbrew/php/5.4.0RC7/bin/php
設定ファイルは以下の位置に置く必要があります:
~/.phpbrew/php/5.4.0RC7/etc/php.ini
拡張モジュールの設定ファイルは下記の位置に置く必要があります:
~/.phpbrew/php/5.4.0RC7/var/db
~/.phpbrew/php/5.4.0RC7/var/db/xdebug.ini
~/.phpbrew/php/5.4.0RC7/var/db/apc.ini
~/.phpbrew/php/5.4.0RC7/var/db/memcache.ini
... etc
まずは、sudoをルートユーザにする、またはルートユーザでログインします:
sudo -i
そしてPHPBrewのbashrcを初期化します:
phpbrew init
PHPBrewのパスを指定のパスにエクスポート(export)してから、
~/.phpbrew/init
を編集してください。
export PHPBREW_ROOT=/opt/phpbrew
PHPBrew bashrcをソース(source)する。
source ~/.phpbrew/bashrc
インストールsystem-wide PHP:
phpbrew install php-5.4.5 +default +dbs
これでPHPファイルは /opt/phpbrew の下にインストールされました。
PHPBrewがビルドしたPHPをユーザーに使用させるには、bashユーザーがphpbrew/bashrcを読み込む前にPHPBREW_ROOT
環境を/etc/bashrc または/etc/profile.d/phpbrewにエクスポートする必要があります。。
export PHPBREW_ROOT=/opt/phpbrew
source /opt/phpbrew/bashrc
システムの安定を保つため、root
を使ってPHPをインストールしてください。
非ルートのユーザーは新しいPHPをインストールまたは切り替えることができません。
ファイルは非ルートユーザーでインストールする場合、パーミッションを修正してください。
chown -R root: /opt/phpbrew
PHPバージョン情報をシェルプロンプトに追加するには、"PHPBREW_SET_PROMPT=1"
変数を利用してください。
デフォルトは"PHPBREW_SET_PROMPT=0"
(無効化). 有効化にする場合、~/.phpbrew/bashrc
をソースする前に、下記の行を~/.bashrc
ファイルに追加してください。
export PHPBREW_SET_PROMPT=1
バージョン情報をプロンプトに埋め込む場合、current_php_version
シェル関数を利用してください。この関数は.phpbrew/bashrc
の中に定義されています。
そしてバージョン情報をPS1
変数に設定することができます。
例:
PHP_VERSION=$(current_php_version)
PS1=" $PHP_VERSION \$ "
- For PHP-5.3+ versions, "Building intl 64-bit fails on OS X" https://bugs.php.net/bug.php?id=48795
まずはOnionをインストールしてください:
$ curl http://install.onionphp.org/ | sh
依存性(dependency)インストール:
$ onion -d install
初期化:
$ php bin/phpbrew init
既知のバージョンを一覧表示にします:
$ php bin/phpbrew known
インストール:
$ php bin/phpbrew -d install --no-test 5.4.0RC7
PHPBrewが実行している動作を表示します:
$ unset -f phpbrew
$ which phpbrew
pharファイルをリコンパイルします:
$ bash scripts/compile
お気軽にirc.freenode.netにて#php-twの話題に参加してください。
- yftzeng
- Gasol
Yo-An Lin (c9s) [email protected]