hypermkt blog

平日はとあるホームページ作成サービス、週末はとあるレビューサイトの開発・運営。

素のEl CapitanにPHP 5.6.0をインストールする方法

time 2016/08/28

素のEl CapitanにPHP 5.6.0をインストールする方法

素のMac OSX El CapitanにPHP 5.6.0をインストール機会があったので手順をまとめます。予想通りいろいろつまづきまして・・・。

準備

Xcode Command Line tool

  • gitコマンドを利用するために必要です

Brew

  • PHPビルド時に必要な各種パッケージをインストールするために必要です

phpenv, php-build

PHPのビルド&インストールに必要です

以下を~/.bash_profileに追記

~/.bash_profileを再読み込み

php5.6.0のインストール

実行するコマンドはこれだけなのですが、この後いろんなエラーが出てインストールに失敗します。エラーの内容ごとに解決方法を追記します。

bisonバージョン問題

configure:5267: WARNING: This bison version is not supported for regeneration of the Zend/PHP parsers (found: 2.3, min: 204, excluded: 3.0).

El Capitanにインストールされているbisonが2.3と古いため起きる問題です。2.7以上が必要な為下記コマンドを実行してインストールします。

参考: homebrew で標準のバージョンよりも古い bison をインストールする - Sarabande.jp

またそのままだと2.3側を利用してconfigureしてしまうので下記ファイルの冒頭に YACC=/usr/local/opt/bison27/bin/bison を追記することで 2.7 のbisonを利用するように指定します。

~/.phpenv/plugins/php-build/share/php-build/default_configure_options

参考:phpenvでphp5.5.7とかビルドするとbisonとかでおこなので、brewでどうにかするつもりが結局bison27のFormulaかく羽目になったやつ - uzullaがブログ

OpenSSL問題

configure: error: Cannot find OpenSSL's <evp.h>

素のEl Capitanではopensslがインストールされていないため発生します。必要パッケージをインストールします。

が下記のようにlinkに失敗します。

コンパイル時にパスを渡せばビルドすれば解決します。

$ PHP_BUILD_CONFIGURE_OPTS="--with-openssl=$(brew --prefix openssl) --with-libxml-dir=$(brew --prefix libxml2)" phpenv install 5.6.0

パッケージ不足

configure: WARNING: You will need re2c 0.13.4 or later if you want to regenerate PHP parsers.
これは単純に re2c がないとの事なのでインストールすれば解決。

こちらも同様に下記をインストールして解決。

参考:Homebrewでphp-build及びphpenvインストール後に5.5系をインストールするための手順 - Qiita

 

次のエラーは長いのでgist

参考:phpenv+php-build環境によるphpバージョン管理~Mac(Yosemite)編~ - Qiita

エラーログを眺めるとmacro周りでwarningが発生している。ここからconfigureが正常に実行できないことが分かりautoconf, automakeが推測できるとのこと(友人談)。またEl Capitanには初期ではそれらが未インストール状態につき、ビルドに失敗する。なるほど・・・。

これでビルドが通ります。

PHP 5.6.0への切り替え

下記でEl Capitanに標準でインストールされているPHP 5.5からPHP 5.6.0に切り替えができます。

いや〜。なかなかしんどかった・・・。


down

コメントする