nmtysh.log

Tech系のネタや日々の独り言などを書いています。

macOS MontereyにphpenvでPHP 8.1.9をインストールする

以前、phpenvでPHPをインストールしましたが、PHPの新しいバージョンが公開されているので、コマンドの見直しを兼ねつつメモとして残します。

環境

  • macOS Monterey 12.5
  • zsh(Z shell)
  • Homebrew

前提

  • Homebrewがインストールされていること

ビルドに必要なパッケージは過去の記事を参照してください。

nmtysh.hatenablog.com

ビルド時のスレッド数を制限する

デフォルトだとCPUのスレッド数(論理コア数)を調べて全スレッドの数だけ並列してビルドが実行されます
それだと実行中はPCの動作が重くなってしまうため、 PHP_BUILD_EXTRA_MAKE_ARGUMENTS でオプションを上書きして並列数を制限します。

例)

export PHP_BUILD_EXTRA_MAKE_ARGUMENTS='-j4'

この記事を書いている最中に、並列数は「物理コア数(CPUコア数)+1」が良いという記事を見かけたので次回は -j5 で実行することにします。
-j4 だと大体半分ぐらいの負荷で4スレッド(論理コア)に負荷がかかっていました。
-j6 だと8割ぐらいの負荷で8スレッド(論理コア)全てに全体的に負荷がかかってました。

PHP 8.1.9のビルドとインストール

$ brew upgrade
$ phpenv update

$ PKG_CONFIG_PATH="/usr/local/opt/openssl@1.1/lib/pkgconfig" ¥
    PHP_BUILD_CONFIGURE_OPTS="--with-bz2=/usr/local/opt/bzip2 --with-iconv=/usr/local/opt/libiconv" ¥
    PHP_BUILD_EXTRA_MAKE_ARGUMENTS="-j4" ¥
    phpenv install 8.1.9
[Info]: Loaded extension plugin
[Info]: Loaded apc Plugin.
[Info]: Loaded composer Plugin.
[Info]: Loaded github Plugin.
[Info]: Loaded uprofiler Plugin.
[Info]: Loaded xdebug Plugin.
[Info]: Loaded xhprof Plugin.
[Info]: Loaded zendopcache Plugin.
[Info]: php.ini-production gets used as php.ini
[Info]: Building 8.1.9 into /Users/user/.phpenv/versions/8.1.9
[Downloading]: https://www.php.net/distributions/php-8.1.9.tar.bz2
[Preparing]: /var/tmp/php-build/source/8.1.9
[Compiling]: /var/tmp/php-build/source/8.1.9
[xdebug]: Installing version 3.1.5
[Skipping]: Already downloaded http://xdebug.org/files/xdebug-3.1.5.tgz
[xdebug]: Compiling xdebug in /var/tmp/php-build/source/xdebug-3.1.5
[xdebug]: Installing xdebug configuration in /Users/user/.phpenv/versions/8.1.9/etc/conf.d/xdebug.ini
[xdebug]: Cleaning up.
Makefile:243: warning: overriding commands for target `test'
Makefile:136: warning: ignoring old commands for target `test'
[Info]: Enabling Opcache...
[Info]: Done
[Info]: The Log File is not empty, but the Build did not fail. Maybe just warnings got logged. You can review the log in /tmp/php-build.8.1.9.20220811181411.log or rebuild with '--verbose' option
[Success]: Built 8.1.9 successfully.
8.1 => 8.1.9
$ php -v
PHP 8.1.9 (cli) (built: Aug 11 2022 18:18:59) (NTS)
Copyright (c) The PHP Group
Zend Engine v4.1.9, Copyright (c) Zend Technologies
    with Zend OPcache v8.1.9, Copyright (c), by Zend Technologies
    with Xdebug v3.1.5, Copyright (c) 2002-2022, by Derick Rethans

関連