トップ / コーディング / 【時短】WordPressなどファイル数が多いデータをサーバーにあげるときはzipで上げてunzipしよう!

2018.12.05

【時短】WordPressなどファイル数が多いデータをサーバーにあげるときはzipで上げてunzipしよう!

みなさん、こんにちは。

サーバー移転や本番サーバーにWordPressをアップする時ってファイルの数が多くて時間がかかってしまいますよね。
そんな時におすすめなのがアップするデータをzip化してからアップロードし解凍する方法です。

zip化するとアップロードするファイルが1つになるのでアップロードの時間が短縮出来ます。

ここではphpを使ってサーバー上でzip解凍する方法をご紹介します。

Contents

サーバー上でzipを解凍する方法

サーバーにアップしたいフォルダをzip圧縮して名前を「wp.zip」に変更します。
次に下記のコードをコピペして「unzip.php」を作成します。

unzip.php

<?php
$zipfilename = 'wp.zip'; // 展開するzipファイルを指定。
$zip_file = getcwd().'/'.$zipfilename;

if (!is_file($zip_file)) {
header("Content-type: text/html; charset=utf-8");
print<<<EOD
{$zip_file}がサーバー上にありません。
EOD;
exit;
}

if ($zip = unzip($zip_file)) {
header("Content-type: text/html; charset=utf-8");
print<<<EOD
<p>{$zipfilename}は正常に解凍されました。</p>
EOD;
} else {
header("Content-type: text/html; charset=utf-8");
print<<<EOD
<p style="color:red;">{$zipfilename}が解凍出来ませんでした。</p>
EOD;
}

function unzip($zip_file){
return shell_exec("unzip $zip_file");
}
?>

「wp.zip」と「unzip.php」をサーバー上の任意の場所にアップロードします。
その後ブラウザで「unzip.php」にアクセスするとphpの処理が走ります。

「wp.zipは正常に解凍されました。」のメッセージが表示されたらzip解凍完了です。
成功しているのを確認出来たら「wp.zip」と「unzip.php」をサーバー上から削除してください。

これで完了です。

サーバー上でzipを圧縮する方法

サーバーからダウンロードするときも大変ですよね。
そんなときはさっきとは逆にサーバー上でzip圧縮してダウンロードするのがおすすめです。

サーバー上の「wp」ディレクトリをダウンロードしたい場合、まずサーバー上の「wp」内に「zip」フォルダを作成します。
次に下記のコードをコピペして「zip.php」を作成します。

zip.php

<?php
$name = "wp"; //圧縮するzipファイルを指定。
$this_file_path = __FILE__;
$this_file_path = preg_replace('@zip/zip.php@s','',$this_file_path);
$tempDir = "$this_file_path";
$filepath = $tempDir . "zip/";
$command = "cd " . $tempDir . "; zip -r ".$filepath.$name.".zip .";

exec($command);

header("Content-type: text/html; charset=utf-8");
print<<<EOD
<p>{$name}は正常に圧縮されました。</p>
EOD;
?>

サーバー上に作成した「zip」フォルダ内に「zip.php」をアップロードします。
その後ブラウザで「zip.php」にアクセスするとphpの処理が走ります。

「wpは正常に圧縮されました。」のメッセージが表示されたらzip圧縮完了です。
「zip」ディレクトリ内にある「wp.zip」ダウンロードしましょう。

これで完了です。

参考サイト

https://pct.unifas.net/programming/php/387/

この記事が気に入ったらいいね!で
最新記事をお届けします

記事が気に入ったらシェアしよう