2019の16日目の記事です。devblog.thebase.inエンジニアの田中(@tenkoma)です。あなたのマシンにインストールされているPHPのバージョンは何ですか?仮想マシンやコンテナで開発環境を作ることが増えているので、ホストOSにはPHPが入ってない・気に掛けたことがない、ということも多いかもしれません。僕は、新しいバージョンを試すためにphp-buildを使ってmacOSでビルド・インストールしています。(また、プロジェクト毎にバージョンの切り替えがしやすいようdirenvを使っています)今回はphp-buildを使った複数バージョンビルドを、コードを書いて少し省力化してみたので紹介します。多くのバージョンのPHPをそろえてみました。Catalinaでは7.0.19未満の動作が実現できていません前提この記事で紹介するコードは以下の環境で実行しています。Catalina依存ライブラリのインストールはHomebrewphp-buildはmotemen/ghqでローカル環境にclonephp-buildの導入・トラブルシュートは以下の記事が参考になります。Qiita作った理由php-buildを使うと、自分でソースコードをダウンロードしてビルドするよりは楽に、ビルド・インストールができます。(ただし、ビルドエラー時に必要な依存ライブラリについて調査したりするので、導入時にある程度の知識や調査の時間が必要です)例えば、以下のようなコマンドでビルド+インストールします。アップグレードしていくと、なぜか依存ライブラリが見つからなくなるようになってきたので、ビルドのためのオプションを付けて以下のように実行しています。新しいバージョン(ポイントリリース)はだいたい1〜2ヶ月に1度リリースされているようですが、このとき、7.3と7.2と7.1の新しいバージョンがほぼ同時にリリースされるという感じなので、そのたびに以下のようなコマンドを実行することになります。コマンドを打つこと自体は対して大変ではありませんが、マイナーバージョンごとの最新バージョン番号を確認するのが面倒ですし、自動化出来そうだったのでやってみました。複数のPHPバージョンをビルドするスクリプト以下のスクリプトを作りました。"$INSTALL_ROOT_PATH"/@/使い方ですが、引数でPHPバージョンを指定すると、まとめてビルドしてくれます。Plugin.(以下略)すでにインストール済みのバージョンがあれば、ビルドはスキップされます。オプションを付けます。コマンドを並列実行させるのが最大の特徴でした。PHPビルド後のXdebugビルドは、同じディレクトリで実行されるので、複数のXdebugビルドを1ディレクトリで同時にやってしまい、エラーになってしまったのでその機能を削除しています。新しいポイントリリースが出たときにまとめてビルドしたいときに使います。そこで、最新のポイントリリースバージョンを列挙するスクリプトを別途作りました。PHP_EOL;実行すると、各マイナーバージョン毎の最新バージョンを列挙します。未満のバージョンはビルドエラーになったので、列挙しないようにしています。オプションを使います。組み合わせて、「マイナーバージョン毎の最新バージョンをまとめてビルド」、が実現できます。Plugin.(以下略)2つのスクリプトを作った結果、PHPのバージョンアップ時の作業は以下のように単純化できました。./php-build-auto.sh今回実装したスクリプトはtenkoma/php-build-toolsにて公開しています。まとめ複数のPHPバージョンを手元にそろえるときに使えるphp-buildの運用を多少楽にするためにコードを書き、バージョンアップ時に考える要素を減らしました。最初やりたかった複数バージョンの並列ビルドはできていません。ビルドしたPHPが動作しなくなることもあります。ビルドができていません。使った方がいいかもしれません。Strategyの杉さんです。)の開発チームによるブログです。Groupの大木です。Developerをしている東口です。Groupのマネージャーをしている山田です。12/1から始まっ...Archiveスターをつけました引用をストックしましたストック一覧を見る閉じる引用するにはまずログインしてくださいログイン閉じる引用をストックできませんでした。再度お試しください閉じる限定公開記事のため引用できません。