ZipArchive クラスがサーバーで見つかりません。が出た時の対処は。

先日、WordPressでプラグインWP All Exportを使用しようとしたらこんなエラーが出ました。

ZipArchive クラスがサーバーで見つかりません。
Web ホスティング プロバイダーにお問い合わせください、インストールおよび ZipArchive をアクティブ化するように依頼してください。

ssh接続にてふつうに解凍してたのでなんら気にしていたかったが、phpと連携する時に出るみたいです。ZipArchiveと検索するとPHPの公式が一番上に表示されるのです。
ZipArchiveはPHPにてzipの圧縮・解凍等を行うものだということが判明しました。
OracleCloudにて自分で最初から仮想マシンを作成したので普通のレンタルサーバーみたいに最初からインストールしてあるわけではないのですね。
それでは問題を解決しましょう。
php関連のモジュールはなにがインストールされているか確認します。

yum list installed | grep php

php.x86_64 7.4.3-1.el7.remi @remi-php74
php-cli.x86_64 7.4.3-1.el7.remi @remi-php74
php-common.x86_64 7.4.3-1.el7.remi @remi-php74
php-fpm.x86_64 7.4.3-1.el7.remi @remi-php74
php-gd.x86_64 7.4.3-1.el7.remi @remi-php74
php-json.x86_64 7.4.3-1.el7.remi @remi-php74
php-mbstring.x86_64 7.4.3-1.el7.remi @remi-php74
php-mysqlnd.x86_64 7.4.3-1.el7.remi @remi-php74
php-opcache.x86_64 7.4.3-1.el7.remi @remi-php74
php-pdo.x86_64 7.4.3-1.el7.remi @remi-php74
php-pecl-apcu.x86_64 5.1.18-1.el7.remi.7.4 @remi-php74
php-pecl-mcrypt.x86_64 1.0.3-1.el7.remi.7.4 @remi-php74
php-pecl-mysql.x86_64 1.0.0-0.23.20190415.d7643af.el7.remi.7.4
@remi-php74
php-sodium.x86_64 7.4.3-1.el7.remi @remi-php74
php-xml.x86_64 7.4.3-1.el7.remi @remi-php74
php-xmlrpc.x86_64 7.4.3-1.el7.remi @remi-php74
php74-php-common.x86_64 7.4.3-1.el7.remi @remi-safe
php74-php-json.x86_64 7.4.3-1.el7.remi @remi-safe
php74-php-opcache.x86_64 7.4.3-1.el7.remi @remi-safe
php74-runtime.x86_64 1.0-1.el7.remi

上記のものにないですね。
php -mコマンドにてphpと連携しているリストをだしてもzipはありません。

yumを使ってphp-pecl-zipなるものをインストールすればよいことが判明しました。

yum install --enablerepo=remi-php74 php-pecl-zip

私の場合はInstalling for dependencies(依存関係)にlibzip5がありました。
php -mでzipが追加されたことが確認できました。
最後にphp-fpmを再起動します。
php関連を触ったら忘れずに。

systemctl restart php-fpm

これでエラーは消えました。

教育

Posted by admin