🐧

AmazonLinux2023を搭載したサーバーにphp-zipをインストール

2023/08/10に公開

AmazonLinux2023を搭載したサーバーにphp-zipをインストール

はじめに

初めまして。アイディオットDX開発部、インフラ担当の小野です。
AmazonLinux2023へphp-zipをインストールしようとした際に、
これまでのAmazonLinux2と同じ方法では上手く行かず、ハマりました。
対応方法などが日本語の記事ではあまりなかったので、本記事が同じように困っている方の参考になると幸いです。

前提

  • AmazonLinux2023でサーバを起動していること

AmazonLinux2023とは

AmazonLinux2023は、rpmベースの汎用Linuxディストリビューションで、AmazonLinux2の後継にあたります。
AmazonLinux2との変更点についてはこちらから確認ができます。

本記事では、EPELとremiの変更によりインストールが出来なかったphp-zipについて記載します。

インストール失敗

従来(Amazonlinux2)のphp-zipをインストールするためのコマンドを実行すると・・・

sudo yum install php-zip

下記画像のようになってしまいます。
logo

従来であれば、上記コマンドでインストールすることが可能なのですが、AmazonLinux2023ではインストールに失敗・・!
原因を探るためネットの記事を読み漁っても以下のような情報ばかり出てきます。

EPELリポジトリを追加:
    まだ追加していない場合は追加をしてください。

remiリポジトリを追加:
    多くのPHP関連のパッケージがremiリポジトリに含まれています。
    これをインストールすることで、php-zip が利用可能になるかもしれません。

基本的に上記はAmazonLinux2であればデフォルトで入っています。あまり気にしたことのない方もいらっしゃるかもしれません。

EPEL,remiとは?

EPEL,remiについて復習してみます。

  • EPELとは
EPEL (Extra Packages for Enterprise Linux) は、Enterprise Linux
(RHEL、CentOS、Scientific Linuxなど)のための追加パッケージを提供するリポジトリです。
これは、Fedoraプロジェクトによってメンテナンスされており、Enterprise Linuxのユーザーに、
Fedoraプロジェクトが提供するソフトウェアの多くを利用可能にします。しかし、これらのソフトウェアは、
RHELやCentOSのデフォルトのリポジトリには含まれていません。

EPELリポジトリを利用すると、数千もの追加のパッケージが利用可能になるので、一般的にはEPELを追加することで、多くの便益を得られます。
  • remiとは
remiリポジトリは、remi Collectがメンテナンスしているサードパーティのリポジトリで、
最新のPHPやMySQLなどのソフトウェアのパッケージを提供しています。
特に、デフォルトのRHELやCentOSのリポジトリでは、ソフトウェアの古いバージョンしか
提供されていないことが多いため、最新バージョンを利用したい場合に、remiリポジトリが非常に有用です。

例えば、CentOS 7にはデフォルトでPHP 5.4が含まれていますが、remiリポジトリを使用することで、
PHP 7.4や8.0などの最新バージョンを簡単にインストールすることができます。

AmazonLinux2023でのEPEL,remi

結論から言うと、AmazonLinux2023にはEPELがありません。
公式にもしっかりと記載がありました。

また、remiのインストールは以下の理由で導入が出来ない、もしくは難しいとのことです。(参考)

AmazonLinux2 は CentOS ベースだったので、EPELをインストールした後、
CentOS 7 向けの rpm を利用することで remi リポジトリがインストールできた。
しかし、AmazonLinux2023 は Fedora 34 ~ 36 および CentOS Stream 9 などを
フォークして独自に管理しているリポジトリとなるので、Fedora および 
CentOS Stream のいずれかの方法を対象として dnf でインストールしようとしたが失敗した。

php-zipのインストール

海外のGitHubに気になるやりとりがありました。(参考)
以下のコマンドを実行することによりインストールができるそう。

sudo yum install php8.1-devel php-pear libzip libzip-devel
sudo pecl install zip
echo "extension=zip.so" | sudo tee /etc/php.d/20-zip.ini

実行した結果、インストールすることに成功しました🙌

まとめ

AmazonLinux2とAmazonLinux2023には多くの違いがあります。
従来の手法が機能せず、日本語の情報も少ないため、公式や海外のサイトを参照することもあることでしょう。
特にAmazonLinux2ではEOL間近のミドルウェアのみがインストール可能な場合もあるので、注意が必要です。

あとがき

AI・データ利活用をリードし、世界にインパクトを与えるプロダクトを開発しませんか?

アイディオットでは、今後の事業拡大及びプロダクト開発を担っていただけるエンジニアチームの強化を行っております。
さらに会社の成長を加速させるため、フロントエンドエンジニア、バックエンドエンジニア、インフラエンジニアのメンバーを募集しております!
日本を代表する企業様へ自社プロダクトを活用した、新規事業コンサルティング、開発にご興味のある方はお気軽にご連絡ください。

【リクルートページ】
https://aidiot.jp/recruit/
【募集ポジション一覧】
https://open.talentio.com/r/1/c/aidiot/homes/3925
【採用についてのお問合せ先】
株式会社アイディオット 採用担当:大島
メールアドレス:recruit@aidiot.jp

Discussion