php-zip のインストールで少しハマったこと

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 をインスト−ルしたのにエラーが消えない!というときはこの点を確認してみると良いかもしれませんね。僕はそこそこ時間を浪費してしまいましたので。。。

Published 2021-09-07
Updated 2023-03-17