Skip to content

PHPBrew JA 日語指引

Sergei Morozov edited this page Dec 14, 2019 · 1 revision

PHPBrew

PHPBrewは異なるバージョンのPHPをホームディレクトリにビルド(build)とインストールすることができます。

環境変数の管理もでき、個人の需要に応じてバージョンを切り替えて使うことが出来ます。

PHPBrewのできること::

  • PDO、mysql、sqlite、debugなど様々なバリアント(variant)を持つPHPをビルドします。
  • apacheモジュールをコンパイルし、バージョンごとに分けます。
  • 異なるバージョンのphpをホームディレクトリにインストールするので、ルートパーミッション(root permission)は必要なくなります。
  • 簡単にバージョンを切り替えることができます。しかもbash/zshシェルと統合されました。
  • 自動機能検知。
  • system-wide環境に複数のPHPバージョンをインストールできます。

動作確認環境 (support OS)

  • Mac OS 10.5+
  • Ubuntu
  • Debian

必要環境

  • PHP5.3
  • curl
  • gcc, binutil, autoconf, libxml, zlib, readline

Mac OS X

MacPorts:

port install curl automake autoconf icu $(port echo depof:php5)

HomeBrew:

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

Ubuntu/Debian

sudo apt-get install autoconf automake curl build-essential libxslt1-dev re2c libxml2-dev
sudo apt-get build-dep php5

Cent OS

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のインストール

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

既知のsvnを含んだバージョンを一覧表示します:

$ phpbrew known --svn

古いバージョン(5.3以前)を一覧表示します:

$ phpbrew known --old

ビルド(build)とインストール

簡易にデフォルトバリアントの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

バリアント(variants)

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セットを提供しています:

  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 (一時的なバージョンの切り替え。現在のシェルのみで有効です。):

$ phpbrew use php-5.4.0RC7

switch (特定のバージョンをデフォルトとして使用します。):

$ phpbrew switch php-5.4.0

終了 (useやswitchをやめシステムのPHPを使用します。):

$ phpbrew off

インストールされたPHPを一覧表示します

$ 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 ファイルに追加してください。

    export PHPBREW_SET_PROMPT=1

バージョン情報をプロンプトに埋め込む場合、current_php_version シェル関数を利用してください。この関数は.phpbrew/bashrcの中に定義されています。 そしてバージョン情報をPS1変数に設定することができます。 例:

    PHP_VERSION=$(current_php_version)
    PS1=" $PHP_VERSION \$ "

既知の問題点:

ハッキング(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配布先

コミュニティ

お気軽にirc.freenode.netにて#php-twの話題に参加してください。

協力者

  • yftzeng
  • Gasol

開発者

Yo-An Lin (c9s) cornelius.howl@gmail.com