親バカエンジニアのナレッジ帳

webのエンジニアをやっており、日頃の開発で詰まったことや書き残しておきたいことを載せています。

WP All Exportのプラグインで、ZipArchiveクラスが見つからないよ〜

ZipArchiveクラスが見つからないよエラー

wordpressのプラグインで、WP All Exportを使用した時、以下のエラーメッセージが画面の上に表示されて困った人はいませんか?

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

どうやらこれ、PHPでzipのモジュールがない場合に出るエラーのようです。
php-pecl-zipというモジュールになります。

以下の環境でモジュールを入れてみましょう。
サーバ:EC2 (Amazon Linux 2)
PHPのバージョン:7.2

モジュールをインストール

以下のコマンドでインストールしましょう。
libzipが入っていたら削除します。

yum -y remove libzip
yum -y install --enablerepo=epel,remi,remi-php72 php-pecl-zip

これでモジュールの確認をします。

php -m | grep zip
zip

zipのモジュールは無事にインストールされましたね。
じゃあエラーは解決されているだろうと画面を見ると。。。
まだ同じエラーが。

モジュールはちゃんとインストールされているのになぜだろう。。。

php-gdをインストール

php-pecl-zipに加えて、php-gdもインストールする必要がありました。
以下のコマンドを実行してみましょう。

yum -y install --enablerepo=epel,remi,remi-php72 php-gd

これで画面を確認すると。。。
エラーが消えています!

これで無事にエクスポートができました。

まとめ

つまりは以下のコマンドを実行すればこの問題は解決します。

yum -y remove libzip
yum -y install --enablerepo=epel,remi,remi-php72 php-gd php-pecl-zip