環境(ローカルサーバ)
ソフトウェア
- OS Ubuntu 18.04.1 LTS
- PHP PHP 7.2.10-0ubuntu0.18.04.1 (cli) (built: Sep 13 2018 13:45:02) ( NTS )
- MYSQL Server version: 5.7.24-0ubuntu0.18.04.1 (Ubuntu)
- HTTPサーバ Apache/2.4.29 (Ubuntu)
はじめに
PHP上でダウンローとしてきたZIPファイルを、サーバ上のテンポラリディレクトリに配置し、それを解凍するプログラムを書いていた。
http://php.net/manual/ja/ziparchive.extractto.php
このZIPArchiveクラスを使おうと思ったが、
$zip = new ZipArchive; $res = $zip->open('test_im.zip'); if ($res === TRUE) { $zip->extractTo('/my/destination/dir/', array('pear_item.gif', 'testfromfile.php')); $zip->close(); echo '成功'; } else { echo '失敗'; }
全く動きません。
~/デスクトップ$ sudo apt -y search php7.2-zip ソート中... 完了 全文検索... 完了 php7.2-zip/bionic-updates,bionic-security 7.2.15-0ubuntu0.18.04.1 amd64 Zip module for PHP ~/デスクトップ$ sudo apt -y install php7.2-zip パッケージリストを読み込んでいます... 完了 依存関係ツリーを作成しています 状態情報を読み取っています... 完了 以下のパッケージが自動でインストールされましたが、もう必要とされていません: ca-certificates-mono cli-common libgdiplus libglib2.0-cil libgtk2.0-cil libmono-addins-gui0.2-cil libmono-addins0.2-cil libmono-cairo4.0-cil libmono-corlib4.5-cil libmono-i18n-west4.0-cil libmono-i18n4.0-cil libmono-posix4.0-cil libmono-security4.0-cil libmono-sharpzip4.84-cil libmono-system-configuration4.0-cil libmono-system-core4.0-cil libmono-system-drawing4.0-cil libmono-system-security4.0-cil libmono-system-xml4.0-cil libmono-system4.0-cil mono-4.0-gac mono-gac mono-runtime mono-runtime-common mono-runtime-sgen これを削除するには 'sudo apt autoremove' を利用してください。 以下のパッケージが新たにインストールされます: php7.2-zip アップグレード: 0 個、新規インストール: 1 個、削除: 0 個、保留: 307 個。 20.3 kB のアーカイブを取得する必要があります。 この操作後に追加で 89.1 kB のディスク容量が消費されます。 取得:1 http://jp.archive.ubuntu.com/ubuntu bionic-updates/universe amd64 php7.2-zip amd64 7.2.15-0ubuntu0.18.04.1 [20.3 kB] 20.3 kB を 0秒 で取得しました (177 kB/s) y以前に未選択のパッケージ php7.2-zip を選択しています。 (データベースを読み込んでいます ... 現在 198760 個のファイルとディレクトリがインストールされています。) .../php7.2-zip_7.2.15-0ubuntu0.18.04.1_amd64.deb を展開する準備をしています ... php7.2-zip (7.2.15-0ubuntu0.18.04.1) を展開しています... php7.2-zip (7.2.15-0ubuntu0.18.04.1) を設定しています ... Creating config file /etc/php/7.2/mods-available/zip.ini with new version libapache2-mod-php7.2 (7.2.15-0ubuntu0.18.04.1) のトリガを処理しています ...
PHPのバージョンによってはremiリポジトリを使ったり面倒だが、吾輩のバージョンでは特に問題なさそうであった。