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