/php-install

makefile for building php binary

Primary LanguageMakefile

hirak/php-install

俺の俺による俺のためのphpビルド用Makefile

  • macOSのみサポートしてます

なぜ作ったのか

  • php-buildの追従速度が物足りない
    • 7.1.0が出たその瞬間にビルドしたい
  • ビルドオプション覚えるのはしんどい

いつものファイルダウンロード、./configureオプション、ビルドと言った手順をmakefile化しました。 汎用性は低い、、です。

$ make help

セットアップ

$ git clone git://github.com/hirak/php-install.git path/to/your-favorite-dir
$ cd path/to/your-favorite-dir/php-install

動くかどうかよくわからないセットアップスクリプトがあります。

$ make setup
  • $HOME/.php/ というディレクトリがある
  • makeに必要なライブラリがhomebrewでインストールされている

であればOKです

ローカルに入ってるPHP一覧

$ make ls

リリースバージョン一覧 (RC含まない)

$ make ls-remote

ビルドしてインストール

$ make install version=7.1.0

デフォルトで使うPHPにする

$ make use version=7.1.0

PATHの通った ~/.php/current/bin にシンボリックリンクを張るだけです。

アンインストール

( ~/.php/から消すだけ )

$ make uninstall version=7.1.0

キャッシュ含めて全部消す

$ make fullclean version=7.1.0

ありそうな質問

extensionは標準で何がインストールされるんですか

Makefile読んで。

xdebug入れたい

公式ビルドなのでpeclコマンドがインストールされています。が、pecl installしたあとのecho extension=〜を打ち込むのが面倒くさくなってきたので、ターゲット作りました。 先にuseを実行してからお願いします。バージョン指定はできません

$ make use version=5.6.29
$ make xdebug

xdebugはzend_extensionなので特別コマンドにしてあります。

peclライブラリ入れたい

pecl installを行う、peclというターゲットを作りました。php.iniへの書き込みもやってくれるので便利。 インストール済みのリストは pecl-ls で取得。

$ make use version=5.6.29
$ make pecl-ls
opcache.so
$ make pecl pecl=igbinary

peclライブラリ消したい

$ make pecl-uninstall pecl=igbinary

pecl-build

peclライブラリの中には、独自コンパイルオプションを持つものがあるそうです。 pecl installだとそういったオプションはサポートできないので、自前でphpize & makeするpecl-buildというターゲットも用意しました。

peclターゲットの代わりにはなりますが、peclコマンド管理外になります。

optionsという環境引数に、configureに渡すオプションを指定してください。

$ make use version=5.6.29
$ make pecl-ls
opcache.so
$ make pecl-build pecl=memcached options="--enable-memcached-igbinary"