MacのMojave環境にphpenvでphpをインストールしようとしたら何回か躓いたのでその記録です。
phpenvのインストール
anyenv経由でnodenvとrbenvを使用してる環境からのスタートです。
今回はphpのバージョン管理をしたかったのでphpenvをインストールします。
$ anyenv install phpenv
.
.
.
Install phpenv succeeded!
Please reload your profile (exec $SHELL -l) or open a new session.
インストールできました!
exec $SHELL -l
でシェルを再起動するか、新しくセッションを始めろとメッセージがあるのでシェルを再起動します。
$ exec $SHELL -l
これでphpenvのインストールは完了です!
phpのインストール
phpenvのインストールができたので、phpのインストールに入ります。
今回、利用したいバージョンは5.6.40です。
まず、使用可能なバージョンを表示します。
$ phpenv install -l
Available versions:
.
.
.
5.6.40
.
.
5.6.40があることが確認できましたので、インストールします。
$ phpenv install 5.6.40
.
.
-----------------
| BUILD ERROR |
-----------------
Here are the last 10 lines from the log:
-----------------------------------------
configure: WARNING: This bison version is not supported for regeneration of the Zend/PHP parsers (found: 2.3, min: 204, excluded: 3.0).
configure: WARNING: You will need re2c 0.13.4 or later if you want to regenerate PHP parsers.
configure: error: Cannot find OpenSSL's <evp.h>
-----------------------------------------
.
.
エラーでした。
エラーへの対応その1
エラーメッセージを読むとbison、re2c、opensslに問題がありそうです。
調べてみると下記の記事を見つけました。
Macにanyenv, phpenv, php-builderでPHP7.1.6をインストールしたときのメモ
Mac に phpenv を利用して PHP をインストールする
opensslはインストール済みだったのでbrewで入れた方を認識させるようにします。
$ which openssl
/usr/bin/openssl
$ echo 'export PATH="/usr/local/Cellar/openssl/1.0.2s/bin:$PATH"' >> .zprofile
$ exec $SHELL -l
$ which openssl
/usr/local/Cellar/openssl/1.0.2s/bin/openssl
$ openssl version
OpenSSL 1.0.2s 28 May 2019
その他の必要なものをインストールします。
$ brew install re2c bison libxml2 autoconf automake icu4c libjpeg libpng libmcryp
もう一度phpのインストールを試します。
$ phpenv install 5.6.40
-----------------
| BUILD ERROR |
-----------------
Here are the last 10 lines from the log:
-----------------------------------------
configure: WARNING: This bison version is not supported for regeneration of the Zend/PHP parsers (found: 2.3, min: 204, excluded: 3.0).
configure: error: Cannot find libz
-----------------------------------------
bisonの警告消えないし、configure: error: Cannot find libz
というエラーが増えました。
エラーへの対応その2
新しく増えたエラーを調べると下記の記事が見つかりました。
Mojave固有の問題のようです。
mojaveアップデート後にconfigure: error: Cannot find libz が解決されない問題の解決法
記事と同じようにまずはxcode-select --install
とbrew upgrade
を試します。
$ xcode-select --install
xcode-select: error: command line tools are already installed, use "Software Update" to install updates
$ brew upgrade
$ phpenv install 5.6.40
-----------------
| BUILD ERROR |
-----------------
Here are the last 10 lines from the log:
-----------------------------------------
configure: WARNING: This bison version is not supported for regeneration of the Zend/PHP parsers (found: 2.3, min: 204, excluded: 3.0).
configure: error: Cannot find libz
記事と同様に解決しないので、記載の解決法を実行します。
$ installer -pkg /Library/Developer/CommandLineTools/Packages/macOS_SDK_headers_for_macOS_10.14.pkg -target /
installer: Must be run as root to install this package.
root権限が必要とのことですので
$ sudo installer -pkg /Library/Developer/CommandLineTools/Packages/macOS_SDK_headers_for_macOS_10.14.pkg -target /
Password:
installer: Package name is macOS_SDK_headers_for_macOS_10.14
installer: Installing at base path /
installer: The install was successful.
それではあらためてphpのインストールを試します。
$ phpenv install 5.6.40
[Success]: Built 5.6.40 successfully.
無事インストールできました。
毎度のことですが記録を残して頂いている方々に助けられました。感謝感謝。