システムエラー

【PHP】ZIP圧縮で「Uncaught Error: Class 'ZipArchive' not found」というエラーが!

【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

とすれば問題なくインストールまで完了です。
php-pecl-zipのインストール完了

あとは、
インストールしたモジュールを反映させるために、Apacheを再起動です。
# systemctl restart httpd.service

余裕のある方は、インストールしたモジュールが問題なく有効になっているかも確認してみて下さい。
phpinfo()で簡単に調べることができます。
PHP ZIPライブラリの確認
※Zipがenabledになっていれば有効になっています。

これで解決です!

この記事を書いている人
株式会社ディープ

名前ダッチ

メールアドレスadachi@deep-deep.jp

Twitterはこちら >>

関連記事

最近の記事

  1. VPSサーバー
  2. ブログのネタ探し
  3. プログラミング
  4. SSLとは
  5. 常時SSL通信設定後にやっておくべきこと
  6. 常時SSL通信設定方法
  7. htaccessとは
  8. WordPress
  9. WordPress
  10. 動的URLを疑似静的化

Twitter

ダッチ@職業ブロガー兼プログラマー
@gatsu0000

アーカイブ

PAGE TOP