公式ナレッジベース
[ec2-user ~]$ sudo dnf install -y httpd wget php-fpm php-mysqli php-json php php-devel
公式だと上記のようになっているんだけど、実際に収録されているパッケージを確認すると、 php8.1-*
php8.2-*
という感じのプレフィクスが付与されている。
なので、実質 php8.1, php8.2 から選択制になる。 デフォルトは 8.1。
PHP 8.1
[ec2-user ~]$ sudo dnf install -y httpd wget php8.1-fpm php8.1-mysqli php8.1-json php8.1 php8.1-devel
PHP 8.2
[ec2-user ~]$ sudo dnf install -y httpd wget php8.2-fpm php8.2-mysqli php8.2-json php8.2 php8.2-devel
サポートバージョンの問題
https://github.com/amazonlinux/amazon-linux-2023/issues/573#issuecomment-1979881124
8.1 is out of active support, has security support until Nov 2024. 8.2 has active support until Dec 2024, security support until Dec 2025. 8.3 has active support until Nov 2025, and security support until Nov 2026.
8.1 はアクティブ サポートが終了し、2024 年 11 月までセキュリティ サポートが提供されます。 8.2 のアクティブ サポートは 2024 年 12 月まで、セキュリティ サポートは 2025 年 12 月までです。 8.3 のアクティブ サポートは 2025 年 11 月まで、セキュリティ サポートは 2026 年 11 月までです。
手動でビルドすりゃええんやんけ! といっている人がいるが、以下の様な具体的な反論が出ている。
https://github.com/amazonlinux/amazon-linux-2023/issues/573#issuecomment-2002632003
Example: staying with PHP 8.2,
xdebug
as an example you can't install it directly from thednf
packages you must compile it usingphp-pear
which is make the build process longer and you consume more resources comparing to directly install it from the packages manager. If you check how many package request issues are open you will understand how poor is this AL2023 distro in my opinion tbh.
「AWS 様が厳選したパッケージ郡だから、ビルドに必要なパッケージが足りねえんだわ」
ということらしい。 はえー……コンテナにしろってことですかね? (しろめ
Nix
全然知らなかったんだけど、 Nix というパッケージマネージャを使えば PHP に関してはなんとかなるらしい。
Steps:
Install Nix: curl --proto '=https' --tlsv1.2 -sSf -L https://install.determinate.systems/nix | sh -s -- install Use PHP83: nix shell nixpkgs#php83
Nix とは
全然しらなかったんだけど、日本語で解説を書いてくれている人がいた。
php モジュール足りない問題
php8.2 には php-zip が存在するけど、 php8.1 には php-zip が存在しないという謎の……なんだそれ!?
一応回避する workaround が共有されているけど pecl からもってこい、とのことで「うん、うん……?」という感じ。 共有してくれた兄貴には感謝しかないけどこれ Amazon 側の保守チームの考えがよくわかねえ。