mac(apple silicon m2)にhomebrew + anyenv + phpenv + php8.0.29をインストールする

最近はmac内に環境を作るよりもdockerで個々に環境を用意するほうが多いので、最低限のphpやpythonが入っていれば事足りるようになりました。

その場合は、homebrew で php等をインストールするほうが早いですね。

それ以外のケースでは以下を利用するといいかもです。

新しいmacに変わり、OSもventura、CPUをintelからapple siliconへ・・・仕様やパスなども諸々変わったためバックアップからリカバリーせずに、PCをゼロから再セットアップしました。

その際、php周りのインストールでこれまでと色々違いが出てきましたので、メモを残しておきます。

homebrewのインストール

https://brew.sh/index_ja

まんまこの通りです。

/bin/bash -c "$(curl -fsSL https://raw.githubusercontent.com/Homebrew/install/HEAD/install.sh)"

インストール後、zprofileなどで以下のパスを通すこと。

eval "$(/opt/homebrew/bin/brew shellenv)"

anyenvをインストール

brew install anyenv
anyenv install --init

でインストールを行った後、こちらもzprofileに以下を記載。

export PATH="$HOME/.anyenv/bin:$PATH"
eval "$(anyenv init -)"

phpenvのインストール

anyenv install phpenv

でphpenvがインストール。

phpenv install -l

でいつも通り、利用可能なphpの一覧が表示されます。

php 8.0.29のインストール

まずは必要なライブラリをインストール

brew install curl autoconf bzip2 icu4c krb5 libedit libiconv libjpeg libpng libxml2 libzip oniguruma openssl@1.1 pkg-config tidy-html5 re2c

次にphpをインストール(ライブラリのパス指定が大変。。)

PKG_CONFIG_PATH="/opt/homebrew/opt/krb5/lib/pkgconfig:/opt/homebrew/opt/icu4c/lib/pkgconfig:/opt/homebrew/opt/libedit/lib/pkgconfig:/opt/homebrew/opt/libjpeg/lib/pkgconfig:/opt/homebrew/opt/libpng/lib/pkgconfig:/opt/homebrew/opt/libxml2/lib/pkgconfig:/opt/homebrew/opt/libzip/lib/pkgconfig:/opt/homebrew/opt/oniguruma/lib/pkgconfig:/opt/homebrew/opt/openssl@1.1/lib/pkgconfig:/opt/homebrew/opt/tidy-html5/lib/pkgconfig" PHP_RPATHS="/opt/homebrew/opt/bzip2/lib /opt/homebrew/opt/curl/lib /opt/homebrew/opt/libiconv/lib /opt/homebrew/opt/libedit/lib" PHP_BUILD_CONFIGURE_OPTS="--with-bz2=$(brew --prefix bzip2) --with-iconv=$(brew --prefix libiconv) --with-external-pcre=$(brew --prefix pcre2) --with-tidy=$(brew --prefix tidy-html5) --with-pear" phpenv install 8.0.29

あと、m1以降のAppleシリコンでpearライブラリを組み込むと、JIT未対応のために以下のエラーが出ていました。

PEAR package PHP_Archive not installed: generated phar will require PHP's phar extension be enabled.

次の指定でJITを使わないpearライブラリを指定し、エラーを回避してあります。

--with-external-pcre=$(brew --prefix pcre2)

インストール後は

phpenv global 8.0.29

などでphpをセットします。

grepでエラーが出た場合

grep: invalid option -- 'p'

このエラーが出た場合は、brew版のgrepが必要でした。

brew install grep

でインストールを行い、zprofileに以下を記載。

export PATH="/opt/homebrew/opt/grep/libexec/gnubin:$PATH"

これで既存のgrepを置き換えて利用できます。