Composerでパッケージを入手しようとした場合、zip extension
が見つからないとのエラーが出た時の対処法を説明します。
以下の内容は、エラーが出たときの出力例です。
> composer update
...
Updating dependencies (including require-dev)
Failed to download composer/installers from dist:
The zip extension and unzip command are both missing, skipping.
The php.ini used by your command-line PHP is: /etc/php.ini
Now trying to download from source
これは、Composerがzipファイルを展開するときに、OSで提供されているunzipユーティリティかPHPのZipArchiveクラス(phpのzipエクステンション)を使用しているのですが、これらの機能が見つからなかったためです。LinuxやMacの場合unzipユーティリティが優先されますが、Windowsを使用している場合は、ZipArchiveクラスが優先されます。
Linuxの場合、phpのzipエクステンションのみをインストールしてcomposerを実行すると以下のメッセージが表示されます。zipの展開自体は行えるのですが"unzipコマンドをインストールするともっと速く処理できるよ"という警告です。
> composer update
...
To speed up composer installation setup "unzip" command with PHP zip extension https://goo.gl/sxzFcD
パッケージが無いの理由なであるため、インストール後にもう一度実行すればエラーは出なくなります。
Linux環境でzipパッケージのインストール方法
linuxの場合は、apt-getなどのパッケージマネージャを利用してzippackageをインストールすればよいです。
Ubnutu Linuxの場合
- unzipコマンドをインストール(php5.6)
sudo apt-get install zip unzip php5.6-zip
- unzipコマンドをインストール(php7.0)
sudo apt-get install zip unzip php7.0-zip
CentOSの場合
- phpのzipエクステンションをインストール
yum install php-zip
- unzipコマンドをインストール
yum install -y zip unzip
こちらもおススメ