T4g インスタンスで PHP8.1.0-dev をソースからビルドする

先日、投稿した通り、アマゾン ウェブ サービス(AWS)のAmazon EC2で t4g.micro が3月末まで無料で使えるので、EBSをgp3ボリュームにしてインスタンスを立ち上げました。
t3.nano のRI36か月分がもったいない話はおいておきましょう。
早速、PHP8.1.0-devをビルドしてみました。
PHP8の目玉機能でもある、JITでどれくらいパフォーマンスが向上するか楽しみです!

インスタンスはT4g.microで、EBSはgp3ボリュームで8GiBをアタッチ、OSはAmazon Linux 2 AMI 64bit(Arm)で立ち上げました。
基本的にはec2-userで作業して、/usr/local 以下にインストールします。
※それぞれ2020/12/28時点のバージョンとなります

■必要そうなパッケージをインストール(PHP7.4以降、libgd がソースに同梱されなくなったので別途ビルドする必要があります)

■libgdビルドに必要なライブラリをepelからインストール

■re2cをビルド(パッケージだとうまくいかない)

■libgdをビルド(PHPに同梱されなくなった)

PHP8をビルドするために、PKG_CONFIG_PATHを追加しておく。

■PHP8をビルド

※悔しいことに、またメモリが足りなかったので、一時的にt4g.smallでmakeしました。

確認する。

できたー。

■php.iniを作成

ソースに入っているテンプレをコピー。

主な変更点。

■php-fpmの設定

テンプレを元に php-fpm.conf と www.conf を作成する。
まずは php-fpm.confを作成。こちらはデフォルトのまま使ってます。

続いて www.confの作成。

主な変更点。h2oと連携するので、h2oユーザーで起動、socket接続にします。

■OS起動時にsocket用のフォルダを自動作成する

記述内容。

■php-fpmの起動設定

php-fpm を自動起動するよう設定します。

内容は以前と変わらず。

動作確認と自動起動設定。

startで起動確認できたら、enableしておく。
できたー。うれしー。

だが、悲しいことが判明。
どうやってもJITが有効にならない!どうしてもできない!

何回やり直してもできない!

configureのメッセージを見落としていたんだけど、ARMは対応してないらしい・・・。

おーまいが。
JIT楽しみにしてたのにー!
せっかくリザーブドインスタンスも残っているので、t3.nanoでやるか・・・。せつない。

ちなみに今契約しているt3.nanoは前払いなし36か月、Standardで$0.002/時間なので、約151円/月。コンバートできない。
t4g.nanoを前払いなし36か月、StandardでもConvertibleでも$0.002/時間なので、約151円/月。

負け惜しみではないが、全然悔しくないからね。
2020/3/31までは、t4g.maicroが無料。悔しくないからね。
悔しくない。

※2021/7/9 追記:この金額計算が間違いだと気づきました。t4g.nano のほうが安いです。

※2022/12/9追記:ARM系プロセッサでも JIT が有効になりました。

今度やるなら、Compute Savings Plans にしてみるといいのかも。

コメントを残す

メールアドレスが公開されることはありません。 が付いている欄は必須項目です

PAGE TOP