【PHP】PHPからuizipコマンドを実行してzipファイルをサーバ上で展開する方法
2018/05/19
CMSのライブラリなど、結構な量のファイルをアップロードする場合などはどうやってアップロードしているでしょうか? 普通はディレクトリ(フォルダ)ごとアップロードするなどの手段を思いつきますが非常に時間がかかる上、必ずどこかで失敗するので私は好きではありません。
VPSや一棟借りサーバですと、puttyなどのSSHターミナルで接続できるので、UNIXのunzipコマンドを実行できるのですが、レンタルサーバではターミナル類が禁止されているところもあります。
そこでzip圧縮済みのファイルをアップロードし、PHPでunzipコマンドを実行してしまおうというのが今回の内容です。
PHPでunzipコマンドを実行する
2種類、ファイルを用意します。
ひとつは、アップロードするモノを圧縮したzipファイル。今回は hoge.zip とします。
もうひとつが展開用のPHPファイル。今回はわかりやすく unzip.php とします。
このふたつをアップロードします。
実行用PHPファイル(unzip.php)
1 2 3 |
<?php $zipfile = "hoge.zip"; return shell_exec("unzip $zipfile"); |
このファイルをアップロードし、ブラウザからアクセスするだけ。
わずか3行のスクリプトですが、効果は絶大。FTPの時間を圧倒的に短縮できます。
展開後に元のzipファイル(hoge.zip)と、unzip.phpを削除するのを忘れずに。