ディレクトリまるごとZIP圧縮するphpプログラム!SSH接続なしでダウンロードファイル数多い時便利!

ディレクトリ(フォルダ)まるごとZIP圧縮すると、時間が短縮できる!

レンタルサーバーから、データをバックアップしたい時、大規模なサイトやワードプレスを使っている場合などでは
ファイル数がとんでもない量になったりしますよね。画像やプラグイン、設定ファイルなど…

そんな時は、ディレクトリ(フォルダ)まるごと圧縮してからFTPでダウンロードすると時間が短縮できます。

ディレクトリ(フォルダ)をまるごと圧縮する方法としては、サーバーにSSH接続を使って
アクセスして、cdを使って圧縮したいディレクトリ(フォルダ)のあるところまで移動し、
zipコマンドを使うことで行います。

しかし、このSSH接続、いろいろ設定が面倒であったりします。そんな時に試していただきたいのが、
この【ディレクトリまるごとZIP圧縮ダウンロードするphpプログラム】です。

SSH接続なしでディレクトリ(フォルダ)まるごとZIP圧縮ダウンロードするphpプログラム!

SSH接続なしでディレクトリ(フォルダ)まるごとZIP圧縮ダウンロードするphpプログラムはこちらです。
PHPプログラムが実行できるように設定をしてからご利用ください。
(サーバーによって設定方法が異なります)

【使い方】
1、テキストエディターを開き、下の内容をコピペします。
2、「$compressDir=”2020″」の「2020」の部分を、圧縮したいディレクトリ(フォルダ)名に修正。
3、適当なファイル名(zip.phpなど)をつけて保存してください。
3、2のファイルをFTPソフトを使ってアップロードします。
4、IEやChromeなどのブラウザにて、アップロードしたファイルにアクセスします。
(httpで、public_htmlにアップしたなら「http://ドメイン名/zip.php」)
(httpsで、public_html/wp-content/uploadsにアップしたなら「https://ドメイン名/wp-content/uploads/zip.php」)
5、通常、自動でファイルがダウンロードされます。されない場合はFTPまたは、IEやChromeなどのブラウザから圧縮したファイル名にアクセスしてダウンロードします。

<?php

// 圧縮を行うフォルダ名…要編集
//(設置のディレクトリからのパスを書く。失敗時はホームディレクトリからのフルパスを記載)
$compressDir="2020";

// 圧縮ファイル名…必要に応じて編集して下さい。
$compressfileName = "$compressDir.zip"; //この場合はフォルダ名.zipになります。
//(上でフルパス記載の際は$を消して名前変更)

// コマンド
// cd:ディレクトリの移動
// zip:zipファイルの作成 下記ではzipファイルが作成されるのは、フォルダと同じ場所です。
$command =  "cd ". $compressDir .";".
	    "zip -r ". "../" . $compressfileName ." .";

// Linuxコマンドを実行します
exec($command);

// 圧縮したファイルをダウンロードさせる。
header('Pragma: public');
header("Content-Type: application/octet-stream");
header("Content-Disposition: attachment; filename=". $compressfileName);
readfile($compressfileName);

?>

ディレクトリまるごとZIP圧縮するphpプログラム!SSH接続なしでダウンロード1

ディレクトリまるごとZIP圧縮するphpプログラム!SSH接続なしでダウンロード2

うまく動かない!時のチェック次項

★ファイル名を確認してみて下さい。

★文字コードを変えてみましょう。保存する時UTF-8にするとよいかもしれません。

★Warning: exec() has been disabled for security reasons in ・・・が出てしまった。
→execコマンドが許可されていますか?>されていない場合、サーバーにログインして「PHP関数制限設定」など(サーバー設定やセキュリティ関連などで見つかると思います)の項目を探し、execのチェックを外して、設定変更をして下さい。セキュリティが気になる方はこのZIP圧縮PHPファイルを使用後に、execのチェックを元通りにして設定を戻してください。

wpxサーバーの場合はこんな感じです。
execコマンドを許可する(PHP関数制限設定を変更する。wpxサーバーの例)


このZIP解凍phpプログラムコードがお役に立ちましたら幸いです。

コメント

タイトルとURLをコピーしました