複数バージョンのPHPを管理するツールphpenvですが、2024年10月以降は更新がされずに放置されており、PHP8.4のインストールができない状態です。

※2025/05/09追記: mzchさんがOpenしたプルリクエスト#785は、2025/05/06にmasterブランチへマージされました(by madumlaoさん)。
今後は、通常のアップデート方法で対応可能です。
phpenv update
追記編集時点(2025/05/09)では、本日リリースされたばかりのPHP8.4.7までインストール可能です。
もし、当記事の内容に従って、mzchさんのリポジトリから上書きした場合はエラーとなるので、次の手順でリポジトリをphpenv公式のmasterブランチに戻してください。
cd ~/.phpenv/plugins/php-build
git reset --hard origin/master
phpenv update
この手順を実行すれば、当記事の以降の内容は対応不要です。
それに伴い、mise、asdf、vfox 等、他ツールへの乗り換えをする記事を書いていました。
ところが、PHPが期待した状態でコンパイルされていない、またはバージョンの適用が不安定等の不都合があり、結局は動作が安定しているphpenvを使い続けたいと思ってしまったわけです。
前提条件
- Ubuntu上で作業しています
- Gitインストール済
- Githubアカウント取得済
- phpenvを ~/.phpenv/ にインストール済
注意事項
これから紹介する方法は正規の手順ではないため、実施に際しての事象については自己責任でお願いいたします。
mise、asdf、vfox等をインストールしている場合は、~/.bashrc の該当行をコメントアウトして無効にしてからターミナルを全て閉じ、シェル環境をリセットしてから phpenv を使用してください。

やることの概要
- mzch/php-build の UPDATE-XDEBUG ブランチをクローン
- クローンしたファイルを ~/.phpenv/plugins/php-build/ に上書きコピー
変更前の状態確認
正規のphpenvでインストールできるPHP8系の最新バージョンは、8.1.30、8.2.25、8.3.13 です。

当記事執筆時点(2025/03/30)でのPHP8系の最新バージョンは、8.1.32、8.2.28、8.3.19、8.4.5 です。
ブランチをクローン
執筆時点現在、phpenvでPHP8.4をインストールできる環境が維持されているのは、 mzch さんが Openしたプルリクエストの元ブランチである、mzch/php-build の UPDATE-XDEBUG ブランチです。
このブランチをローカルに「mzch-php-build」としてクローンします。
git clone -b UPDATE-XDEBUG https://github.com/mzch/php-build.git mzch-php-build

フォルダ「mzch-php-build」が作成されるので、中に入ります。
cd mzch-php-build

ブランチの内容を上書きコピー
上記のクローンしたブランチの内容を丸ごと「~/.phpenv/plugins/php-build/」に上書きコピーします。
cp -raf ./* ~/.phpenv/plugins/php-build/

PHP8.4をインストール
これでPHP8.4をインストールできるようになりました。
試しに、PHP8.4.5をimagick拡張付きでインストールしてみます。
PHP_BUILD_INSTALL_EXTENSION="imagick=@" phpenv install 8.4.5

PHP8.4.5のインストールが完了しました。
shimをリビルドしてからバージョンを確認してみます。
phpenv rehash

PHP8.4.5に切り替えてみます。
phpenv global 8.4

PHP8.4.5が使えるようになりました。
アップデートの仕方
今後、mzchさんがアップデートをやめない限りは、php-buildのリポジトリをwatchして、更新があったら内容を確認してから、
1.mzch-php-build フォルダ内で 「git pull origin」を実行する。
2.mzch-php-build の内容を 「~/.phpenv/plugins/php-build/」に上書きコピーする。
をすることでアップデートできます。
以上です。
- 0
- 0
- 0
- 0





コメント