[PHP] PHPBrewで複数のバージョンを使い分ける
こんにちは、@yoheiMuneです。
PHPの開発ではプロジェクトによってPHPのバージョンが違うことがほとんど。ローカルでPHPのバージョンを気軽に切り替えられると開発が捗ります。今日はPHPBrewというツールで、それを実現する方法をブログに書きたいと思います。
利用可能なvariantsは以下で確認できます。
PHPBrewに"intl"拡張をインストール
PHPBrew - Github
PHPBrew - Wiki | Github
最後になりますが本ブログでは、PHP、フロントエンド、Node.js、Swift、Python、Linux、Java、インフラ、Go言語、機械学習、などの技術トピックを発信をしていきます。「プログラミングで困ったその時の、解決の糸口に!」そんな目標でブログを書き続けています。ぜひ、本ブログのRSSやTwitterをフォローして貰えたら嬉しいです ^ ^
最後までご覧頂きましてありがとうございました!
PHPの開発ではプロジェクトによってPHPのバージョンが違うことがほとんど。ローカルでPHPのバージョンを気軽に切り替えられると開発が捗ります。今日はPHPBrewというツールで、それを実現する方法をブログに書きたいと思います。
目次
PHPのバージョン切り替えツールは乱立状態
今回紹介するPHPBrew以外にもいくつも同様のツールが存在していて、乱立しているようです(参考→phpenvやphpbrewの雑な比較)。参考先の方のオススメとは別ですが、色々と試した結果、PHPBrewが一番使いやすい印象でした。PHPBrewの使えるOS
PHPBrewは以下の環境で利用可能です。Windowsはサポート対象外です。- Mac OS 10.5+
- Ubuntu
- Debian
- REHL / CentOS
PHPBrewのインストール
「依存ライブラリのインストール」と「PHPBrew本体のインストール」の2ステップを行います。依存ライブラリのインストール
公式ページのRequirementsを確認しながら、環境ごとに必要ライブラリをインストールします。例えばMacでHomeBrewを使う場合には、以下のコマンドでインストールできます。# MacのHomeBrewで依存ライブラリをインストールする xcode-select --install brew install automake autoconf curl pcre bison re2c mhash libtool icu4c gettext jpeg openssl libxml2 mcrypt gmp libevent brew link icu4c brew link --force openssl brew link --force libxml2
PHPBrew本体のインストール
公式のインストール手順も参考に、以下の手順でPHPbrewwをインストールします。# ダウンロード curl -L -O https://github.com/phpbrew/phpbrew/raw/master/phpbrew chmod +x phpbrew # $PATHにあるディレクトリに移動. sudo mv phpbrew /usr/local/bin/phpbrewインストール後に、以下のコマンドが動けばOKです。
$ phpbrew
PHPBrewのセットアップ
PHPBrewを利用するには、インストールに加えてセットアップも必要です。公式のセットアップも参考に、以下のコマンドを実行します。$ phpbrew init # vim .bashrc or .zshrc [[ -e ~/.phpbrew/bashrc ]] && source ~/.phpbrew/bashrc上記を設定後、ターミナルを再起動すればOKです。
インストール可能なPHPバージョンの確認
インストール可能なPHPバージョンを、調べることができます。$ phpbrew known 7.2: 7.2.3, 7.2.2, 7.2.1, 7.2.0 ... 7.1: 7.1.15, 7.1.14, 7.1.13, 7.1.12, 7.1.11, 7.1.10, 7.1.9, 7.1.8 ... 7.0: 7.0.28, 7.0.27, 7.0.26, 7.0.25, 7.0.24, 7.0.23, 7.0.22, 7.0.21 ... 5.6: 5.6.34, 5.6.33, 5.6.32, 5.6.31, 5.6.30, 5.6.29, 5.6.28, 5.6.27 ... 5.5: 5.5.38, 5.5.37, 5.5.36, 5.5.35, 5.5.34, 5.5.33, 5.5.32, 5.5.31 ... 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 ...
--more
オプションをつけると、さらに詳しく表示できます。$ phpbrew known --more
指定したバージョンのPHPをインストール
install
コマンドを使って、任意のバージョンをインストールできます。インストールには10〜20分ほどかかります。$ phpbrew install 7.2.3 +defaultここで
+default
は、Variantsというものを指定しています。variantはPHP拡張モジュールで、DB接続やマルチバイト処理など、必要なものを一緒にインストールすることができます。利用可能なvariantsは以下で確認できます。
$ phpbrew variants Variants: all, apxs2, bcmath, bz2, calendar, cgi, cli, ctype, curl, dba, debug, dom, dtrace, editline, embed, exif, fileinfo, filter, fpm, ftp, gcov, gd, gettext, gmp, hash, iconv, icu, imap, inifile, inline, intl, ipc, ipv6, json, kerberos, libgcc, mbregex, mbstring, mcrypt, mhash, mysql, opcache, openssl, pcntl, pcre, pdo, pgsql, phar, phpdbg, posix, readline, session, soap, sockets, sqlite, static, tidy, tokenizer, wddx, xml, xml_all, xmlrpc, zip, zlib, zts Virtual variants: dbs: sqlite, mysql, pgsql, pdo mb: mbstring, mbregex neutral: small: bz2, cli, dom, filter, ipc, json, mbregex, mbstring, pcre, phar, posix, readline, xml, curl, openssl default: bcmath, bz2, calendar, cli, ctype, dom, fileinfo, filter, ipc, json, mbregex, mbstring, mhash, mcrypt, pcntl, pcre, pdo, phar, posix, readline, sockets, tokenizer, xml, curl, openssl, zip everything: dba, ipv6, dom, calendar, wddx, static, inifile, inline, cli, ftp, filter, gcov, zts, json, hash, exif, mbstring, mbregex, libgcc, pdo, posix, embed, sockets, debug, phpdbg, zip, bcmath, fileinfo, ctype, cgi, soap, pcntl, phar, session, tokenizer, opcache, imap, tidy, kerberos, xmlrpc, fpm, dtrace, pcre, mhash, mcrypt, zlib, curl, readline, editline, gd, intl, icu, openssl, mysql, sqlite, pgsql, xml, xml_all, gettext, iconv, bz2, ipc, gmp
参考1:CakePHP3を動かすために必要なvariant
CakePHP3を動かすためには、intl
とmysql
というvariantが必要です。以下のように指定します。$ phpbrew install 7.2.3 +default +intl +mysql
参考2:インストール済の拡張機能の確認
インストール済の拡張機能は、以下のコマンドで確認可能です。$ phpbrew ext
ext install
やext enable
など拡張機能に関するコマンドがいくつか存在します。詳細はこちらの公式ページをご参照ください。参考3:Macでintlモジュールのインストールに失敗する
Macではintl
をインストール時にエラーが発生します。PHPをインストール後に、以下のコマンドでintl
が有効化されているかを確認できます。$ phpbrew ext | grep intl [*] intl 1.1.0
[*]
になっていたら有効化されていますが、なっていない場合にはインストールが失敗しています。その場合には、以下の記事を参考に頑張ってインストールします。PHPBrewに"intl"拡張をインストール
インストール済のPHPバージョンを確認する
list
コマンドで一覧を確認できます。$ phpbrew list
PHPのバージョンを切り替える
バージョン切り替えは、2種類の方法が存在します。# 一時的に切り替え $ phpbrew use 7.2.3 # 永続的に切り替える $ phpbrew switch 7.2.3
参考資料
公式ページのReadMEとWikiが詳しいので、そちらが参考になります。PHPBrew - Github
PHPBrew - Wiki | Github
最後に
インストールに時間がかかってしまうのが難点ですが、切り替えさえできてしまえば簡単に利用できるので素敵です。最後になりますが本ブログでは、PHP、フロントエンド、Node.js、Swift、Python、Linux、Java、インフラ、Go言語、機械学習、などの技術トピックを発信をしていきます。「プログラミングで困ったその時の、解決の糸口に!」そんな目標でブログを書き続けています。ぜひ、本ブログのRSSやTwitterをフォローして貰えたら嬉しいです ^ ^
最後までご覧頂きましてありがとうございました!