レンタルサーバー上でzipファイルを解凍するには

大量のファイルをアップロードする際、
zipしてサーバ上で展開できればどんなに楽か。

さくらサーバのように、シェルが使えるサーバなら何も問題ないが、
多くの格安サーバではシェルは開放されていない。

でも、単にunzipを走らせればいいだけなので、
何とかやりようはありそうなもの。

と思って探すとやっぱあった。

サーバ上でZIP展開
http://www.cubic4.net/blog/34-site/68-server-unzip.html

手法としては、PHPでunzipを起動するというもの。

ここからunzip.zipをダウンロードして、展開すると、
unzip.phpというスクリプトが出てくる。

この中で、先頭の方にある、

< ?php
// インストールに先立ってZIPファイルをサーバー上で展開するスクリプト。
// ZIPファイルとこのファイルを同じディレクトリにアップ。
// アップ先ディレクトリにそのまま展開されます。
// 展開される際にこのファイルと同じ名前のファイルが有る場合は予めこのファイル名を変えておく。
$zipfilename = 'filename.zip'; // 展開するzipファイルを指定。

の最後の部分で目的の展開すべきzipファイルを指定しておく。
例えばこんな感じで(wordpress-3.0-ja.zipの場合)。

$zipfilename = 'wordpress-3.0-ja.zip'; // 展開するzipファイルを指定。

この準備ができたら、このunzip.phpと
目的のzipファイル(wordpress-3.0-ja.zip)をサーバにアップロードする。

あとは、Webブラウザでこのunzip.phpをアクセスすればOK。
http://www.example.com/unzip.php

てな感じ。実に簡単。

最後に、unzip.phpとzipファイルを削除。
これをやっとかないと、間違えて再アクセスするとまた展開(上書き)してしまう。

なお、エックスサーバーの場合は、
スクリプトの一部を書き換えないと上手く動かなかった。

具体的には、内部で起動するunzipをフルパス(/usr/bin/unzip)にする。
これ
function unzip($zip_file){
  return shell_exec("unzip $zip_file");
}


function unzip($zip_file){
  return shell_exec("/usr/bin/unzip $zip_file");
}

こうする。


スクリプトを作ってくださった方に感謝。

参考: エックスサーバーのコマンドパス一覧
http://www.xserver.ne.jp/man_program_soft.php



このエントリをはてなブックマークに追加このエントリをdel.icio.usに追加このエントリをLivedoor Clipに追加このエントリをYahoo!ブックマークに追加このエントリをFC2ブックマークに追加このエントリをNifty Clipに追加このエントリをPOOKMARK. Airlinesに追加このエントリをBuzzurl(バザール)に追加このエントリをChoixに追加このエントリをnewsingに追加

スポンサードリンク
関連する記事はこちら
コメント
  • 初めまして
    unzipのパスはphpのバージョンの違いでしょうか?
    うちもエックスサーバですがphp5ではあれで動いてます。


    2010/07/16 (金) 09:35:55 | cubic4

  • わざわざコメントありがとうございます。

    こちらもPHP 5です。

    どうしても動いてくれなくて悩んだ挙句、
    パスが通っていないんじゃないかと
    unzipをフルパスで試したら動いたという次第です。

    同じエックスサーバーでも
    個々のサーバごとに微妙に設定が違うのかもしれません。
    はっきりしたことは言えませんが。


    2010/07/16 (金) 12:40:03 | k1

  • 使用方法記載有難うございます。

    スクリプトを公開している元サイトでは、unzipファイルをそのまま上げるような事しか書いておらず、使用方法がわからず困っておりました。
    解凍した、phpファイルを使用するんですね。 たしかにzipファイルだと接続してもDLするか、開くかしか選べませんもんね。
    無事unzip出来ました。
    助かりました、有難うございます。


    2010/11/2 (火) 16:33:59 | 助かりました

  • 役に立ったようでよかったです。
    サーバー上で展開するとものすごく楽です。
    もう、いちいちアップロードなんてやってられなくなります。


    2010/11/3 (水) 00:58:25 | k1

  • 困っていたので、大変助かりました。

    記事にさせて頂いたのでお礼を兼ねてご報告です。

    宜しくお願いします。


    2012/01/15 (日) 21:14:58 | 喜田真太朗

  • 役に立ったとのこと、嬉しく思います。


    2012/01/15 (日) 22:22:24 | k1

トラックバック

コメントをどうぞ

メールアドレスが公開されることはありません。 * が付いている欄は必須項目です

*

次のHTML タグと属性が使えます: <a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <cite> <code> <del datetime=""> <em> <i> <q cite=""> <strike> <strong> <img localsrc="" alt=""> <pre lang="" line="" escaped="" cssfile="">

トラックバックURL

  • ブログ内検索

  • 月間アーカイブ