public function getContent() { return 'PHPBrew ========== PHPBrewは異なるバージョンのPHPをホームディレクトリにビルド(build)とインストールすることができます。 環境変数の管理もでき、個人の需要に応じてバージョンを切り替えて使うことが出来ます。 PHPBrewのできること:: - PDO、mysql、sqlite、debugなど様々なバリアント(variant)を持つPHPをビルドします。 - apacheモジュールをコンパイルし、バージョンごとに分けます。 - 異なるバージョンのphpをホームディレクトリにインストールするので、ルートパーミッション(root permission)は必要なくなります。 - 簡単にバージョンを切り替えることができます。しかもbash/zshシェルと統合されました。 - 自動機能検知。 - system-wide環境に複数のPHPバージョンをインストールできます。 <img width="600" src="https://raw.github.com/c9s/phpbrew/master/screenshots/01.png"/> <img width="600" src="https://raw.github.com/c9s/phpbrew/master/screenshots/03.png"/> ## 動作確認環境 (support OS) * Mac OS 10.5+ * Ubuntu * Debian ## 必要環境 * PHP5.3 * curl * gcc, binutil, autoconf, libxml, zlib, readline ### Mac OS X MacPorts: ```bash port install curl automake autoconf icu $(port echo depof:php5) ``` HomeBrew: ```bash brew install automake autoconf curl pcre re2c mhash libtool icu4c gettext jpeg libxml2 mcrypt gmp libevent brew link icu4c ``` ### Ubuntu/Debian ```bash sudo apt-get install autoconf automake curl build-essential libxslt1-dev re2c libxml2-dev sudo apt-get build-dep php5 ``` ### Cent OS Cent OSの設定 ```bash 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のインストール PHPBrewをダウンロードしてください: ```bash curl -O https://raw.github.com/c9s/phpbrew/master/phpbrew chmod +x phpbrew sudo cp phpbrew /usr/bin/phpbrew ``` ## 基本的な使い方 まずはシェル環境にbash scriptをInitします。 ```bash $ phpbrew init ``` そして次の行を`.bashrc` または`.zshrc` ファイルに追加します: ```bash $ source ~/.phpbrew/bashrc ``` 既知のバージョンを一覧表示します: ```bash $ phpbrew known Available stable versions: php-5.3.10 php-5.3.9 php-5.3.8 php-5.3.7 ``` 既知のsvnを含んだバージョンを一覧表示します: ```bash $ phpbrew known --svn ``` 古いバージョン(5.3以前)を一覧表示します: ```bash $ phpbrew known --old ``` ## ビルド(build)とインストール 簡易にデフォルトバリアントのPHPをビルドとインストールします: ```bash $ phpbrew install php-5.4.0 +default ``` こちらでは`default` VARIANTセットをお薦めします。デフォルトセットは常用のVARIANTクラスを収録しています。最小限インストールの場合、`default` VARIANTセットを削除してください。 テスト: ```bash $ phpbrew install --test php-5.4.0 ``` debugメッセージ: ```bash $ phpbrew -d install --test php-5.4.0 ``` ## バリアント(variants) PHPBrewはConfigureオプションを管理します。VARIANTのクラス名を指定するだけで、PHPBrewはincludeパスとオプションを検知します。 PHPBrewは常用のVARIANTクラスを収録し、デフォルトのVARIANTセットを提供しています。 収録されているVARIANTクラスを確認するには、簡単にサブコマンド`variants`を実行して一覧表示を確認できます: ```bash $ phpbrew variants Variants: pear mysql debug sqlite pgsql cli apxs2 cgi soap pcntl ... (etc) ``` 最新のPHPBrewは2つのVARIANTセットを提供しています: 1. default (最も常用のバリアント, 例えば:filter bcmath ctype fileinfo pdo posix ipc pcntl bz2 cli intl fpm calendar sockets readline, zip) 2. 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 注意点: > 1. apacheのphpモジュールをビルドする場合、 > モジュールディレクトリのパーミッションを書き込み可能に変更してください。 > 例: `/opt/local/apache2/modules/`。 > PHPBrewはパーミッションを変更します。 > インストールした後、httpd.conf設定ファイルを確認し、PHPモジュールを切り替えてください。 > > 2. 現在、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 ## 使用(use)と切り替え(switch) use (一時的なバージョンの切り替え。現在のシェルのみで有効です。): ```bash $ phpbrew use php-5.4.0RC7 ``` switch (特定のバージョンをデフォルトとして使用します。): ```bash $ phpbrew switch php-5.4.0 ``` 終了 (useやswitchをやめシステムのPHPを使用します。): ```bash $ phpbrew off ``` ## インストールされたPHPを一覧表示します ```bash $ phpbrew list ``` ## PHPの拡張モジュールをビルド、インストールする (インストール手順の後): 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のアップグレード PHPBrewをアップグレードする場合、 `self-update` コマンドを実行するだけで済みます。 このコマンドは最新バージョンのgithubの`master` branchをインストールすることができます: $ phpbrew self-update ## インストールされたPHPファイル インストールされた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 ## system-wide環境のPHPBrewインストール: まずは、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` ファイルに追加してください。 ```sh export PHPBREW_SET_PROMPT=1 ``` バージョン情報をプロンプトに埋め込む場合、`current_php_version` シェル関数を利用してください。この関数は`.phpbrew/bashrc`の中に定義されています。 そしてバージョン情報を`PS1`変数に設定することができます。 例: ```sh 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> ハッキング(Hacking): ------- まずは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 PHP配布先 -------------------- - http://snaps.php.net/ - http://tw2.php.net/releases/ - http://downloads.php.net/stas/ コミュニティ --------- お気軽にirc.freenode.netにて#php-twの話題に参加してください。 協力者 ------------ * yftzeng * Gasol 開発者 ------ Yo-An Lin (c9s) <[email protected]> '; }