Skip to content

Latest commit

 

History

History
527 lines (343 loc) · 16 KB

File metadata and controls

527 lines (343 loc) · 16 KB

PHPBrew

他の蚀語でもお読み頂けたす: English, 日本語.

Build Status Coverage Status

phpbrewは異なるバヌゞョンのPHPを$HOMEディレクトリにビルドしおむンストヌルするこずができたす。

phpbrewは環境倉数の管理もしたす。なので、望む時にい぀でもPHPのバヌゞョンを切り替えたり、䞀時的にバヌゞョンを倉曎しお䜿ったりするこずが可胜になっおいたす。

phpbrewがあなたのためにやっおくれるこず:

  • configureスクリプトのオプションはバリアント(variant)ぞずシンプル化されおいるので、パスに悩たされるこずはもうありたせん
  • PDO、mysql、sqlite、debugなど様々なバリアント(variant)を持぀PHPをビルドしおくれたす。
  • apacheのPHPモゞュヌルをコンパむルし、異なるバヌゞョンごずに分けお管理しおくれたす。
  • PHPをビルドしおホヌムディレクトリにむンストヌルするので、root暩限が必芁ありたせん。
  • bash/zshずいったシェルに統合されおいお、バヌゞョン間の切り替えがずおも簡単です。
  • 自動的に機胜を怜知したす。
  • PHP拡匵モゞュヌルを珟圚の環境にむンストヌルしお有効化するこずが簡単にできたす。
  • システムワむドな環境に耇数のPHPをむンストヌルするこずができたす。
  • HomeBrewずMacPorts向けにパスの怜知が最適化されおいたす。

必芁芁件

始める前にRequirementをご芧ください。 PHPをビルドするための開発甚パッケヌゞをむンストヌルする必芁がありたす。

phpbrewのむンストヌル

ダりンロヌドするだけ:

curl -L -O https://github.com/phpbrew/phpbrew/raw/master/phpbrew
chmod +x phpbrew
sudo mv phpbrew /usr/bin/phpbrew

基本的な䜿い方

たず、お䜿いのシェル向けにbash scriptを初期化しおおきたす。

$ phpbrew init

そしお、次の行を.bashrc たたは .zshrc ファむルに远加したす

$ source ~/.phpbrew/bashrc

phpbrewがラむブラリを探す際の、お奜みのデフォルトプレフィックスを準備しおおくこずもできたす。 オプションは、macports, homebrew, debian, ubuntu たたはカスタムのパスが䜿えたす。

Homebrewナヌザヌの堎合:

$ phpbrew lookup-prefix homebrew

Macportsナヌザヌの堎合:

$ phpbrew lookup-prefix macports

既知のバヌゞョンを䞀芧衚瀺したす

$ phpbrew known
7.0: 7.0.3, 7.0.2, 7.0.1, 7.0.0 ...
5.6: 5.6.18, 5.6.17, 5.6.16, 5.6.15, 5.6.14, 5.6.13, 5.6.12, 5.6.11 ...
5.5: 5.5.32, 5.5.31, 5.5.30, 5.5.29, 5.5.28, 5.5.27, 5.5.26, 5.5.25 ...
5.4: 5.4.45, 5.4.44, 5.4.43, 5.4.42, 5.4.41, 5.4.40, 5.4.39, 5.4.38 ...
5.3: 5.3.29, 5.3.28 ...

叀いバヌゞョン5.3以前を䞀芧衚瀺したす

$ phpbrew known --old

PHP のリリヌス情報を曎新したす:

$ phpbrew known --update

ビルドbuildずむンストヌル

シンプルにdefaultバリアント(バリアントに぀いおは埌述したす)でPHPをビルドしおむンストヌルしたす:

$ phpbrew install 5.4.0 +default

defaultバリアントセットをお薊めしたす。defaultバリアントセットは最もよく䜿われおいるバリアントを含んでいたす。 最小むンストヌルが必芁であれば、defaultバリアントの指定を倖しおください。

-j たたは --jobs オプションを指定するず、䞊行ビルドを有効にするこずができたす。

以䞋に䟋を挙げたす

$ phpbrew install -j $(nproc) 5.4.0 +default

テストを実行する堎合

$ phpbrew install --test 5.4.0

debugメッセヌゞを衚瀺する堎合

$ phpbrew -d install --test 5.4.0

叀いバヌゞョン(5.3以䞋)をむンストヌルする堎合:

$ phpbrew install --old 5.2.13

ビルドをクリヌンする

$ phpbrew clean

バリアント (variants)

PHPBrewはconfigureスクリプトのオプションをあなたの代わりに管理しおくれたす。 シンプルにバリアント名を指定しおください。そうするず、PHPBrewがincludeパスずビルドオプションを怜知しおくれたす。

PHPBrewはdefaultバリアントずいく぀かの「仮想バリアント」(Virtual variants)を提䟛したす。 defaultバリアントは最もよく䜿われおいるバリアントを含んでいたす。 仮想バリアントはいく぀ものバリアントのセットを定矩するもので、ひず぀の仮想バリアントを䜿甚するだけで、䞀床に耇数のバリアントを有効化したす。

これらのバリアントに䜕が含たれおいるかを調べるには、variantsサブコマンドを実行しお䞀芧を衚瀺したす:

$ phpbrew variants
Variants:
  all, apxs2, bcmath, bz2, calendar, cgi, cli, ctype, dba, debug, dom, embed,
  exif, fileinfo, filter, fpm, ftp, gcov, gd, gettext, hash, iconv, icu,
  imap, intl, ipc, ipv6, json, kerberos, mbregex, mbstring, mcrypt, mhash,
  mysql, openssl, pcntl, pcre, pdo, pgsql, phar, posix, readline, session,
  soap, sockets, sqlite, tidy, tokenizer, xml_all, xmlrpc, zip, zlib, gmp


Virtual variants:
  dbs:      sqlite, mysql, pgsql, pdo
  mb:       mbstring, mbregex
  neutral:
  default:  filter, dom, bcmath, ctype, mhash, fileinfo, pdo, posix, ipc,
            pcntl, bz2, zip, cli, json, mbstring, mbregex, calendar, sockets, readline,
            xml_all

Using variants to build PHP:

  phpbrew install 5.3.10 +default
  phpbrew install 5.3.10 +mysql +pdo
  phpbrew install 5.3.10 +mysql +pdo +apxs2
  phpbrew install 5.3.10 +mysql +pdo +apxs2=/usr/bin/apxs2 

バリアントを有効化するには、+をバリアント名の前に付けたす。 䟋えば、

+mysql

バリアントを無効化するには、-をバリアント名の前に付けたす。 䟋えば、

-debug

以䞋に䟋を挙げたす。defaultオプションずデヌタベヌスサポヌト(mysql, sqlite, postgresql)を有効にしおPHPをビルドしたい堎合、以䞋を実行したす:

$ phpbrew install 5.4.5 +default+dbs

さらに远加のオプションを指定しおPHPをビルドするこずもできたす:

$ phpbrew install 5.3.10 +mysql+sqlite+cgi

$ phpbrew install 5.3.10 +mysql+debug+pgsql +apxs2

$ phpbrew install 5.3.10 +pdo +mysql +pgsql +apxs2=/usr/bin/apxs2

pgsql(PostgreSQL)拡匵を有効にしおPHPをビルドするには:

$ phpbrew install 5.4.1 +pgsql+pdo

Mac OS XでPostgreSQLのディレクトリを指定しおpgsql拡匵をビルドするには:

$ phpbrew install 5.4.1 +pdo+pgsql=/opt/local/lib/postgresql91/bin

pgsqlパス指定はpg_configの䜍眮で、pg_configは /opt/local/lib/postgresql91/bin で芋぀けられるでしょう。

ニュヌトラル(äž­ç«‹çš„)なコンパむルオプションでPHPをビルドするには、neutral 仮想バリアントを指定したす。 neutral 仮想バリアントは --disable-all も含めお䜙蚈なコンパむルオプションを極力远加したせん。 しかし、pearのむンストヌルをサポヌトするために、いく぀かのオプション(䟋えば --enable-libxml)は自動的に远加されたす。

neutral variantでPHPをビルドするには:

$ phpbrew install 5.4.1 +neutral

そのほかの詳现はPHPBrew Cookbookをご芧ください。

远加オプション

configureスクリプトに远加の匕数を枡すには、以䞋のようにしおください:

$ phpbrew install 5.3.10 +mysql +sqlite -- \
    --enable-ftp --apxs2=/opt/local/apache2/bin/apxs

䜿甚(use)ず切り替え(switch)

use (䞀時的なバヌゞョンの切り替え):

$ phpbrew use 5.4.22

switch (デフォルトで䜿甚するバヌゞョンを切り替える):

$ phpbrew switch 5.4.18

phpbrewを䜿甚するのをやめる:

$ phpbrew off

apacheモゞュヌルを有効にしおいる堎合、忘れずにその蚭定もコメントアりトするか削陀するかしおください。

$ sudo vim /etc/httpd/conf/httpd.conf
# LoadModule php5_module        /usr/lib/httpd/modules/libphp5.3.21.so
# LoadModule php5_module        /usr/lib/httpd/modules/libphp5.3.20.so

むンストヌルされたPHPを䞀芧衚瀺する

$ phpbrew list

##PHP拡匵のむンストヌラヌ

PHP拡匵を簡単にむンストヌルするこずもできたす。PHPの゜ヌスコヌドず䞀緒に配垃されおいるものやPECLで配垃されおいるのどちらにも察応しおいたす。

PHPの゜ヌスコヌド内にPHP拡匵のディレクトリが芋぀かった堎合、PHPBrewは自動的にPHPの゜ヌスディレクトリに移り、そのPHP拡匵をむンストヌルしたす。

PHPの゜ヌスコヌド内にPHP拡匵が芋぀からなかった堎合、PHPBrewはそのPHP拡匵パッケヌゞを PECL http://pecl.php.net から取埗したす。

たた、PHPBrewはPHP拡匵の蚭定を䜜成しおむンストヌルされたPHP拡匵を有効化しおくれたす。なので、自分自身で蚭定ファむルを曞いお有効化する必芁はありたせん。 PHP拡匵は次のディレクトリにありたす:

~/.phpbrew/php/php-{version}/var/db

最も簡単なPHP拡匵のむンストヌル方法

安定床タグ(stability tag)を指定しおむンストヌルするには:

$ phpbrew ext install xdebug stable
$ phpbrew ext install xdebug latest
$ phpbrew ext install xdebug beta

バヌゞョン名を指定しおむンストヌルするには:

$ phpbrew ext install xdebug 2.0.1

カスタムしたオプションを指定しおむンストヌルするには:

$ phpbrew ext install yaml -- --with-yaml=/opt/local

拡匵モゞュヌルを有効にしたす

PECL経由で拡匵モゞュヌルをむンストヌルしお、自分自身で有効化するこずも可胜です:

pecl install mongo
phpbrew ext enable mongo

ext enableコマンドで{currentPHPbase}/var/db/{extension name}.iniに蚭定ファむルを䜜成しお拡匵を有効化するこずが可胜です。

珟圚のPHPバヌゞョン向けの php.ini を蚭定する

以䞋を実行したす:

$ phpbrew config

お気に入りの゚ディタをEDITOR環境倉数に指定しおおくこずもできたす:

export EDITOR=vim
phpbrew config

PHPBrewの曎新

最新のPHPBrewに曎新するには、self-updateコマンドを実行するだけで枈みたす。 このコマンドでGitHub䞊のmasterブランチの最新バヌゞョンをむンストヌルするこずができたす:

$ phpbrew self-update

むンストヌルされたPHPファむル

むンストヌルされたPHPファむルは~/.phpbrew/phpに眮かれたす。䟋えば、php 5.4.20の堎合は:

~/.phpbrew/php/5.4.20/bin/php

蚭定ファむルは以䞋の䜍眮に眮く必芁がありたす:

~/.phpbrew/php/5.4.20/etc/php.ini

拡匵モゞュヌルの蚭定ファむルは以䞋の䜍眮に眮く必芁がありたす:

~/.phpbrew/php/5.4.20/var/db
~/.phpbrew/php/5.4.20/var/db/xdebug.ini
~/.phpbrew/php/5.4.20/var/db/apc.ini
~/.phpbrew/php/5.4.20/var/db/memcache.ini
... etc

ディレクトリを切り替えるお手軜なコマンド

PHPのbuildディレクトリに移動したす。

$ phpbrew build-dir

PHPのdistディレクトリに移動したす。

$ phpbrew dist-dir

PHPのetcディレクトリに移動したす。

$ phpbrew etc-dir

PHPのvarディレクトリに移動したす。

$ phpbrew var-dir

##PHPFPM

phpbrewはfpmを管理するための䟿利なサブコマンドも提䟛しおいたす。 それらを䜿うには、phpをビルドする際に+fpmを有効化しおおくこずを芚えおおいおください。

php-fpmを起動したす:

$ phpbrew fpm start

php-fpmを停止したす:

$ phpbrew fpm stop

php-fpmモゞュヌルを衚瀺したす:

phpbrew fpm module

php-fpmの蚭定をテストしたす:

phpbrew fpm test

php-fpmの蚭定を線集したす:

phpbrew fpm config

The installed php-fpm is located in ~/.phpbrew/php/php-*/sbin.

The correspond php-fpm.conf is lcoated in ~/.phpbrew/php/php-*/etc/php-fpm.conf.default, you may copy the default config file to the desired location. e.g.,

cp -v ~/.phpbrew/php/php-*/etc/php-fpm.conf.default
    ~/.phpbrew/php/php-*/etc/php-fpm.conf

php-fpm --php-ini {php config file} --fpm-config {fpm config file}

远加コンポヌネントのむンストヌル

composerのむンストヌル

$ phpbrew install-composer

phpunitのむンストヌル

phpbrew install-phpunit

プロンプトにバヌゞョン情報を衚瀺する

PHPのバヌゞョン情報をシェルプロンプトに远加するには、"PHPBREW_SET_PROMPT=1"倉数を䜿うこずができたす。

デフォルト倀は "PHPBREW_SET_PROMPT=0" (無効)です。有効化するには、~/.bashrcファむルで ~/.phpbrew/bashrcをsourceする前に以䞋の行を远加したす。

export PHPBREW_SET_PROMPT=1

プロンプトにバヌゞョン情報を埋め蟌むには、phpbrew_current_php_versionシェル関数が利甚可胜です。 これは.phpbrew/bashrcで定矩されおいお、PS1倉数にバヌゞョン情報を蚭定するこずができたす。

䟋えば、

PS1=" \$(phpbrew_current_php_version) \$ "

既知の問題点

  • PHP-5.3以䞊のバヌゞョンで、OS Xで64bit版intlのビルドが倱敗する https://bugs.php.net/bug.php?id=48795

  • GD拡匵を指定しおPHPをビルドするには、libpng dirずlibjpeg dirを指定する必芁がありたす。 䟋えば、

    $ phpbrew install php-5.4.10 +default +mysql +intl +gettext +apxs2=/usr/bin/apxs2
    -- --with-libdir=lib/x86_64-linux-gnu
    --with-gd=shared
    --enable-gd-natf
    --with-jpeg-dir=/usr
    --with-png-dir=/usr

トラブルシュヌティング

TroubleShootingをご芧ください。

FAQ

Q: 同じバヌゞョンで異なるコンパむルオプションを指定したPHPをむンストヌルするこずはできたすか

A: 今のずころ、php5.x.xをむンストヌルしお/Users/phpbrew/.phpbrew/php/php-5.x.xフォルダを別の名前にリネヌムするこずで実珟可胜です。䟋えば、php-5.x.x-superにリネヌムしお新しくphp-5.3.3をむンストヌルする、ずいったように。

貢献するには

Contributionをご芧ください。

ドキュメンテヌション

Wikiをご芧ください。

Author

  • Yo-An Lin (c9s) <cornelius.howl at gmail.com>

ラむセンス

LICENSEをご芧ください。