iMacを購入してから約2年、Laravelアプリのフロント開発に関わることになったのですが、そもそもPHPを入れていなかったことが判明。
PHPをそのまま入れてもいいのですが、anyenvも入っていることだし、PHPバージョンが固定されたプロジェクトに参画すると大変だし、ということでphpenvを使ってPHPを入れることにしました。
マシンが変わったときのために覚書しておきます。
環境
- macOS Ventura 13.3.1
- Apple M1
- zsh 5.9 (x86_64-apple-darwin22.0)
- anyenv 1.1.4
phpenvのインストール
phpenvをインストールします。
$ anyenv install phpenv
関連パッケージのインストール
他のサイトでもよく紹介されている内容ですが、libxml2
だけ省いているので注意です。
$ brew install curl autoconf bzip2 icu4c krb5 libedit libiconv libjpeg libpng libzip oniguruma openssl@1.1 pkg-config tidy-html5 gcc re2c bison openssl zlib
libxml2のインストール
brew installは最新のものをインストールしますが libxml2
を最新版で入れると後の工程でエラーになるので、バージョンを指定して個別にインストールします。
wget http://xmlsoft.org/sources/libxml2-2.9.4.tar.gz
tar xzvf libxml2-2.9.4.tar.gz
cd libxml2-2.9.4
LDFLAGS="-L$(brew --prefix xz)/lib" CPPFLAGS="-I$(brew --prefix xz)/include" ./configure --prefix=/opt/libxml2-2.9.4 //任意のフォルダパス
make
sudo make install
wgetコマンドが使えなかったらbrew install wget
を先に実行する。
ちなみにlibxml2を最新版で進めるとPHPのインストールでこういう感じのエラーが出ます。
/var/tmp/php-build/source/7.3.33/ext/dom/document.c:1659:4: error: use of undeclared identifier 'xmlSaveNoEmptyTags'
xmlSaveNoEmptyTags = 1;
^
/var/tmp/php-build/source/7.3.33/ext/dom/document.c:1664:4: error: use of undeclared identifier 'xmlSaveNoEmptyTags'
xmlSaveNoEmptyTags = saveempty;
^
9 errors generated.
make: *** [ext/dom/document.lo] Error 1
make: *** Waiting for unfinished jobs....
パスを通す
~/.zshrc
に以下を追記する。
## phpenv
export PATH="/opt/homebrew/opt/bison/bin:$PATH"
export PATH="/opt/homebrew/opt/libxml2/bin:$PATH"
export PATH="/opt/homebrew/opt/bzip2/bin:$PATH"
export PATH="/opt/homebrew/opt/curl/bin:$PATH"
export PATH="/opt/homebrew/opt/libiconv/bin:$PATH"
export PATH="/opt/homebrew/opt/krb5/bin:$PATH"
export PATH="/opt/homebrew/opt/openssl@1.1/bin:$PATH"
export PATH="/opt/homebrew/opt/icu4c/bin:$PATH"
export PATH="/opt/homebrew/opt/tidy-html5/lib:$PATH"
export PKG_CONFIG_PATH="/opt/homebrew/opt/krb5/lib/pkgconfig:$PKG_CONFIG_PATH"
export PKG_CONFIG_PATH="/opt/homebrew/opt/icu4c/lib/pkgconfig:$PKG_CONFIG_PATH"
export PKG_CONFIG_PATH="/opt/homebrew/opt/libedit/lib/pkgconfig:$PKG_CONFIG_PATH"
export PKG_CONFIG_PATH="/opt/homebrew/opt/libjpeg/lib/pkgconfig:$PKG_CONFIG_PATH"
export PKG_CONFIG_PATH="/opt/homebrew/opt/libpng/lib/pkgconfig:$PKG_CONFIG_PATH"
export PKG_CONFIG_PATH="/opt/homebrew/opt/libxml2/lib/pkgconfig:$PKG_CONFIG_PATH"
export PKG_CONFIG_PATH="/opt/homebrew/opt/libzip/lib/pkgconfig:$PKG_CONFIG_PATH"
export PKG_CONFIG_PATH="/opt/homebrew/opt/oniguruma/lib/pkgconfig:$PKG_CONFIG_PATH"
export PKG_CONFIG_PATH="/opt/homebrew/opt/openssl@1.1/lib/pkgconfig:$PKG_CONFIG_PATH"
export PKG_CONFIG_PATH="/opt/homebrew/opt/tidy-html5/lib/pkgconfig:$PKG_CONFIG_PATH"
export PHP_RPATHS="/opt/homebrew/opt/zlib/lib /opt/homebrew/opt/bzip2/lib /opt/homebrew/opt/curl/lib /opt/homebrew/opt/libiconv/lib /opt/homebrew/opt/libedit/lib"
export PHP_BUILD_CONFIGURE_OPTS="--with-bz2=$(brew --prefix bzip2) --with-iconv=$(brew --prefix libiconv) --with-tidy=$(brew --prefix tidy-html5) --with-external-pcre=$(brew --prefix pcre2) --with-zip --enable-intl --with-pear"
入力したらシェルを読み込む。
$ source ~/.zshrc
ここまでできればあとはPHPをインストールするのみです。
PHPをインストール
お好きなバージョンでインストールしてください。
$ phpenv install 8.0.30
# グローバルバージョンの切り替え
$ phpenv global 8.0.30
# プロジェクト単位でのバージョンの切り替え
$ phpenv local 8.0.30
# 更新
$ phpenv rehash
以上でインストール完了です!
0