Macにphp-buildでPHP環境を作る手順 #mac #php version 16

2017/04/17 01:05 by hiro_y hiro_y
  :追加された部分   :削除された部分
(差分が大きい場合、文字単位では表示しません)
Macにhomebrewでphp-buildを導入する手順 #mac #php
phpenvに頼らずにphp-build単体でがんばる場合に。

1. 忘れずに: `xcode-select --install`
1. 入ってるかもだけど一応: `brew install autoconf automake bison re2c libjpeg libpng libmcrypt libxml2 igbinary imagemagick`
1. ひょっとして: `brew link --force bison libxml2`
1. `brew install php-build --HEAD`
   - gitで入れてもよいけど、そこは好みで。
   - homebrewで入れるなら`--HEAD`つけないと新しいバージョンが入らない
1. `vim /usr/local/share/php-build/default_configure_options`
   - 追記: `--with-pdo-pgsql`
1. `vim /usr/local/share/php-build/extension/definition`
   - CSVファイル。
   - PECL::redis入れるには以下を追記: `"redis","http://pecl.php.net/get/redis-$version.tgz","https://github.com/phpredis/phpredis.git",,,"extension",`
   - PECL::apcu_bc入れるには以下を追記:
   - 必要があってPECL::apcu_bc入れるには以下を追記:
`"apcu_bc","http://pecl.php.net/get/apcu_bc-$version.tgz","https://github.com/krakjoe/apcu-bc.git",,,"extension",`
1. まだディレクトリー作ってなかったら: `mkdir -p ~/.php/versions`
1. `php-build --definitions` で導入可能なパッケージ確認
1. ビルド例
   - PHP70: `PHP_BUILD_INSTALL_EXTENSION="apcu=@ apcu_bc=@ redis=@ memcached=@ imagick=@" PHP_BUILD_EXTRA_MAKE_ARGUMENTS=-j2 php-build -i development {,~/.php/versions/}7.0.17`
   - PHP70: `PHP_BUILD_INSTALL_EXTENSION="apcu=@ redis=@ memcached=@ imagick=@" PHP_BUILD_EXTRA_MAKE_ARGUMENTS=-j2 php-build -i development {,~/.php/versions/}7.0.17`
   - PHP56(memcached 2系を利用): `PHP_BUILD_INSTALL_EXTENSION="redis=@ memcached=2.2.0 imagick=@" PHP_BUILD_EXTRA_MAKE_ARGUMENTS=-j2 php-build -i development {,~/.php/versions/}5.6.30`
   - `PHP_BUILD_KEEP_OBJECT_FILES=on`を付けると`make clean`しなくなる
   - apcu_bcをインストールすると`apcu_bc.so`が見つからないエラーになるが、`apc.so`という名前でインストールされているので`apcu_bc.ini`に書かれているパスを書き換えればOK
1. `ln -nfs ~/.php/versions/7.0.17 ~/.php/php70` とかすると便利
1. direnvで `PATH_add $HOME/.php/php70/bin` とかしてバージョン固定
1. `<?php phpinfo();` を書いたファイル用意して`~/.php/php70/bin/php -S localhost:8070` とかするとphpinfoが簡単に見られる      

phpenvに頼らずにphp-build単体でがんばる場合に。

  1. 忘れずに: xcode-select --install
  2. 入ってるかもだけど一応: brew install autoconf automake bison re2c libjpeg libpng libmcrypt libxml2 igbinary imagemagick
  3. ひょっとして: brew link --force bison libxml2
  4. brew install php-build --HEAD
    • gitで入れてもよいけど、そこは好みで。
    • homebrewで入れるなら--HEADつけないと新しいバージョンが入らない
  5. vim /usr/local/share/php-build/default_configure_options
    • 追記: --with-pdo-pgsql
  6. vim /usr/local/share/php-build/extension/definition
    • CSVファイル。
    • PECL::redis入れるには以下を追記: "redis","http://pecl.php.net/get/redis-$version.tgz","https://github.com/phpredis/phpredis.git",,,"extension",
    • 必要があってPECL::apcu_bc入れるには以下を追記:
      "apcu_bc","http://pecl.php.net/get/apcu_bc-$version.tgz","https://github.com/krakjoe/apcu-bc.git",,,"extension",
  7. まだディレクトリー作ってなかったら: mkdir -p ~/.php/versions
  8. php-build --definitions で導入可能なパッケージ確認
  9. ビルド例
    • PHP70: PHP_BUILD_INSTALL_EXTENSION="apcu=@ redis=@ memcached=@ imagick=@" PHP_BUILD_EXTRA_MAKE_ARGUMENTS=-j2 php-build -i development {,~/.php/versions/}7.0.17
    • PHP56(memcached 2系を利用): PHP_BUILD_INSTALL_EXTENSION="redis=@ memcached=2.2.0 imagick=@" PHP_BUILD_EXTRA_MAKE_ARGUMENTS=-j2 php-build -i development {,~/.php/versions/}5.6.30
    • PHP_BUILD_KEEP_OBJECT_FILES=onを付けるとmake cleanしなくなる
    • apcu_bcをインストールするとapcu_bc.soが見つからないエラーになるが、apc.soという名前でインストールされているのでapcu_bc.iniに書かれているパスを書き換えればOK
  10. ln -nfs ~/.php/versions/7.0.17 ~/.php/php70 とかすると便利
  11. direnvで PATH_add $HOME/.php/php70/bin とかしてバージョン固定
  12. <?php phpinfo(); を書いたファイル用意して~/.php/php70/bin/php -S localhost:8070 とかするとphpinfoが簡単に見られる