[PHP] Amazon Linux に ZipArchive をインストール
Amazon Linux 上の PHP 7 で ZipArchive を使ったら 「 Error – Class 'ZipArchive’ not found in ・・・」 というエラーが発生。
ZipArchive クラスを使うため、 Amazon Linux に zip 拡張モジュールをインストールする。
Contents
zip があるか確認
phpinfo で ZIP っていう項目があるか確認。
または、コマンドで確認。
$ 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
をインストールしたときはこの追記がなくても問題なかった。