php-zip のインストールで少しハマったのでシェアします。
composer で Craft CMS をインストールしようとしたら下記のエラーが表示されてインストールできませんでした(今回の話は Craft CMS に限った話ではありません)。
craftcms/cms バージョン requires ext-zip * -> the requested PHP extension zip is missing from your system.
環境は PHP 7.4 です。PHP 7.4.0 以降、バンドル版の libzip が削除されたのが原因だと思いますが、この場合は自分で php-zip をインストールする必要があります。
CentOS であれば、下記のコマンドでインストールできます。
$ sudo yum install php-zip
しかし、ここで注意が必要で、サーバーに PHP がいくつか入っているときは、利用している PHP に合わせたものをインストールする必要があります。
まずは下記のコマンドでインストールされている PHP のバージョンと、どのリポジトリからインストールしたのかを確認します。
$ sudo yum list installed | grep php
oniguruma5php.x86_64 6.9.7.1-1.el7.remi @remi-safe
php-cli.x86_64 7.4.23-1.el7.remi @remi-php74
php-common.x86_64 7.4.23-1.el7.remi @remi-php74
php-json.x86_64 7.4.23-1.el7.remi @remi-php74
php-mbstring.x86_64 7.4.23-1.el7.remi @remi-php74
php-pear.noarch 1:1.10.13-1.el7.remi @remi-php74
php-pecl-zip.x86_64 1.19.4-1.el7.remi.7.4 @remi-php74
php-process.x86_64 7.4.23-1.el7.remi @remi-php74
php-xml.x86_64 7.4.23-1.el7.remi @remi-php74
php-zipstream.noarch 0.2.2-6.el7 @epel
php74-php.x86_64 7.4.22-1.el7.remi @remi-safe
php74-php-cli.x86_64 7.4.22-1.el7.remi @remi-safe
php74-php-common.x86_64 7.4.22-1.el7.remi @remi-safe
php74-php-devel.x86_64 7.4.22-1.el7.remi @remi-safe
php74-php-gd.x86_64 7.4.22-1.el7.remi @remi-safe
php74-php-json.x86_64 7.4.22-1.el7.remi @remi-safe
php74-php-ldap.x86_64 7.4.22-1.el7.remi @remi-safe
php74-php-mbstring.x86_64 7.4.22-1.el7.remi @remi-safe
php74-php-pdo.x86_64 7.4.22-1.el7.remi @remi-safe
php74-php-sodium.x86_64 7.4.22-1.el7.remi @remi-safe
php74-php-xml.x86_64 7.4.22-1.el7.remi @remi-safe
php74-runtime.x86_64 1.0-3.el7.remi @remi-safe
今回は利用している PHP が 7.4.22
だったので、上記の中だと php74-php.x86_64 7.4.22-1.el7.remi @remi-safe
に合わせたものをインストールします。
その場合、下記のコマンドでインストールすることになります。
$ sudo yum install --enablerepo=remi-safe php74-php-zip
あとはサーバーを Apache などのサーバープログラムを再起動すればOKです。
php-zip をインスト−ルしたのにエラーが消えない!というときはこの点を確認してみると良いかもしれませんね。僕はそこそこ時間を浪費してしまいましたので。。。