【PHP ZipArchive】ZIPへの圧縮でエラー
今日は久しぶりにPHPのエラーの投稿です。
ファイルをZIPに固めてダウンロードさせるシステムを作成しようと、
$zip = new ZipArchive(); //オープン
$rs= $zip->open("パス", ZIPARCHIVE::CREATE | ZIPARCHIVE::OVERWRITE);
if($rs!== true) exit("圧縮エラー[" . $rs . "]");
・
・
$zip->close(); //クローズ
とったコードを書いていたのですが、
Uncaught Error: Class 'ZipArchive' not found
というエラーが出てしまいました。。。
ZipArchiveというクラスが無いです!と言っているだけなので、
php-zipを入れてやればOKなはずです。
利用しているサーバのPHPのバージョンはPHP7.1.6と少し古めですが、
PHP7.1を利用している場合には「php71-pecl-zip」というモジュールをインストールするようです。
サーバは、CentOS7です。
なので、
# yum -y install php71-pecl-zip
とすればいいはずが、
今度は、
No package php71-pecl-zip available.
というエラーが!!
WEB環境を構築したのがかなり前なのですっかり忘れていたのですが、
こちらのサーバはRemiリポジトリを追加してPHP7.1をインストールしていました。
この場合には、Remiリポジトリから該当のモジュールをインストールします。
ということで、
# yum -y install --enablerepo=remi-php71 php-pecl-zip
とすれば問題なくインストールまで完了です。
あとは、
インストールしたモジュールを反映させるために、Apacheを再起動です。
# systemctl restart httpd.service
余裕のある方は、インストールしたモジュールが問題なく有効になっているかも確認してみて下さい。
phpinfo()で簡単に調べることができます。
※Zipがenabledになっていれば有効になっています。
これで解決です!
この記事へのコメントはありません。