ä»ã®èšèªã§ããèªã¿é ããŸã: English, æ¥æ¬èª.
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ããã«ãããããã®éçºçšããã±ãŒãžãã€ã³ã¹ããŒã«ããå¿ èŠããããŸãã
ããŠã³ããŒãããã ã:
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/bashrcphpbrewãã©ã€ãã©ãªãæ¢ãéã®ãã奜ã¿ã®ããã©ã«ããã¬ãã£ãã¯ã¹ãæºåããŠããããšãã§ããŸãã
ãªãã·ã§ã³ã¯ãmacports, homebrew, debian, ubuntu ãŸãã¯ã«ã¹ã¿ã ã®ãã¹ã䜿ããŸãã
HomebrewãŠãŒã¶ãŒã®å Žå:
$ phpbrew lookup-prefix homebrewMacportsãŠãŒã¶ãŒã®å Žå:
$ 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 --oldPHP ã®ãªãªãŒã¹æ å ±ãæŽæ°ããŸã:
$ phpbrew known --updateã·ã³ãã«ã«defaultããªã¢ã³ã(ããªã¢ã³ãã«ã€ããŠã¯åŸè¿°ããŸã)ã§PHPããã«ãããŠã€ã³ã¹ããŒã«ããŸã:
$ phpbrew install 5.4.0 +defaultdefaultããªã¢ã³ãã»ããããèŠãããŸããdefaultããªã¢ã³ãã»ããã¯æããã䜿ãããŠããããªã¢ã³ããå«ãã§ããŸãã
æå°ã€ã³ã¹ããŒã«ãå¿
èŠã§ããã°ãdefaultããªã¢ã³ãã®æå®ãå€ããŠãã ããã
-j ãŸã㯠--jobs ãªãã·ã§ã³ãæå®ãããšã䞊è¡ãã«ããæå¹ã«ããããšãã§ããŸãã
以äžã«äŸãæããŸãïŒ
$ phpbrew install -j $(nproc) 5.4.0 +defaultãã¹ããå®è¡ããå ŽåïŒ
$ phpbrew install --test 5.4.0debugã¡ãã»ãŒãžã衚瀺ããå ŽåïŒ
$ phpbrew -d install --test 5.4.0å€ãããŒãžã§ã³(5.3以äž)ãã€ã³ã¹ããŒã«ããå Žå:
$ phpbrew install --old 5.2.13$ phpbrew cleanPHPBrewã¯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/apxs2pgsql(PostgreSQL)æ¡åŒµãæå¹ã«ããŠPHPããã«ãããã«ã¯:
$ phpbrew install 5.4.1 +pgsql+pdoMac OS Xã§PostgreSQLã®ãã£ã¬ã¯ããªãæå®ããŠpgsqlæ¡åŒµããã«ãããã«ã¯:
$ phpbrew install 5.4.1 +pdo+pgsql=/opt/local/lib/postgresql91/binpgsqlãã¹æå®ã¯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/apxsuse (äžæçãªããŒãžã§ã³ã®åãæ¿ã):
$ phpbrew use 5.4.22switch (ããã©ã«ãã§äœ¿çšããããŒãžã§ã³ãåãæ¿ãã):
$ phpbrew switch 5.4.18phpbrewã䜿çšããã®ãããã:
$ phpbrew offapacheã¢ãžã¥ãŒã«ãæå¹ã«ããŠããå Žåãå¿ããã«ãã®èšå®ãã³ã¡ã³ãã¢ãŠããããåé€ãããããŠãã ããã
$ 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$ 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
å®å®åºŠã¿ã°(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/localPECLçµç±ã§æ¡åŒµã¢ãžã¥ãŒã«ãã€ã³ã¹ããŒã«ããŠãèªåèªèº«ã§æå¹åããããšãå¯èœã§ã:
pecl install mongo
phpbrew ext enable mongoext enableã³ãã³ãã§{currentPHPbase}/var/db/{extension name}.iniã«èšå®ãã¡ã€ã«ãäœæããŠæ¡åŒµãæå¹åããããšãå¯èœã§ãã
以äžãå®è¡ããŸã:
$ phpbrew configãæ°ã«å
¥ãã®ãšãã£ã¿ãEDITORç°å¢å€æ°ã«æå®ããŠããããšãã§ããŸã:
export EDITOR=vim
phpbrew configææ°ã®PHPBrewã«æŽæ°ããã«ã¯ãself-updateã³ãã³ããå®è¡ããã ãã§æžã¿ãŸãã
ãã®ã³ãã³ãã§GitHubäžã®masterãã©ã³ãã®ææ°ããŒãžã§ã³ãã€ã³ã¹ããŒã«ããããšãã§ããŸã:
$ phpbrew self-updateã€ã³ã¹ããŒã«ããã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-dirPHPã®distãã£ã¬ã¯ããªã«ç§»åããŸãã
$ phpbrew dist-dirPHPã®etcãã£ã¬ã¯ããªã«ç§»åããŸãã
$ phpbrew etc-dirPHPã®varãã£ã¬ã¯ããªã«ç§»åããŸãã
$ phpbrew var-dir##PHPFPM
phpbrewã¯fpmã管çããããã®äŸ¿å©ãªãµãã³ãã³ããæäŸããŠããŸãã
ãããã䜿ãã«ã¯ãphpããã«ãããéã«+fpmãæå¹åããŠããããšãèŠããŠãããŠãã ããã
php-fpmãèµ·åããŸã:
$ phpbrew fpm startphp-fpmã忢ããŸã:
$ phpbrew fpm stopphp-fpmã¢ãžã¥ãŒã«ã衚瀺ããŸã:
phpbrew fpm modulephp-fpmã®èšå®ããã¹ãããŸã:
phpbrew fpm testphp-fpmã®èšå®ãç·šéããŸã:
phpbrew fpm configThe installed
php-fpmis located in~/.phpbrew/php/php-*/sbin.The correspond
php-fpm.confis 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}
$ phpbrew install-composerphpbrew install-phpunitPHPã®ããŒãžã§ã³æ
å ±ãã·ã§ã«ããã³ããã«è¿œå ããã«ã¯ã"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ãã芧ãã ããã
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ãã芧ãã ããã
- Yo-An Lin (c9s) <cornelius.howl at gmail.com>
LICENSEãã芧ãã ããã
