[PHP] Amazon Linux に ZipArchive をインストール

2019-09-05PHPAWS,Linux

Amazon Linux 上の PHP 7 で ZipArchive を使ったら 「 Error – Class 'ZipArchive’ not found in ・・・」 というエラーが発生。
ZipArchive クラスを使うため、 Amazon Linux に zip 拡張モジュールをインストールする。

zip があるか確認

phpinfo で ZIP っていう項目があるか確認。

zip on phpinfo
zip on phpinfo

または、コマンドで確認。

$ php -m
・
・
・
xsl
zip
zlib

ここでなければインストールする。

zip のインストール

yum で利用可能な zip のパッケージを確認する。

$ yum list available | grep zip
・
・
・
php-pclzip.noarch                      2.8.2-1.el6                  epel
php-zipstream.noarch                   0.2.2-1.el6                  epel
php70-zip.x86_64                       7.0.33-1.32.amzn1            amzn-updates
poco-zip.i686                          1.4.2p1-3.el6                epel

| grep php で探してもいい。

使っている PHP のバージョンが 7.0 なので、 php70-zip.x86_64 をインストールする。
あれば(remi レポジトリとかからインストールする場合とか)、 php-pecl-zip をインストールしても ZipArchive クラスを使うことができる。

$ sudo yum install php70-zip.x86_64
・
・
Installed:
  php70-zip.x86_64 0:7.0.33-1.32.amzn1
Complete!

httpd 再起動

$ sudo service httpd restart

zip モジュールがインストールされたことを確認

$ php -m

※ 必要であれば、 php.ini に extension=zip.so を追記する。

$ sudo vi /etc/php.ini
・・・
;
; ... or with a path:
;
;   extension=/path/to/extension/msql.so
;
; If you only provide the name of the extension, PHP will look for it in its
; default extension directory.
extension=zip.so  ← これを追記

php70-zip.x86_64 をインストールしたときはこの追記がなくても問題なかった。

Posted by Agopeanuts