WordPressを新サーバーへ移転させる際、FTP接続してファイル一式をダウンロードしようとすると、ファイル群が数千ある為に接続が頻繁に切れたり、ダウンロード自体に時間がかかったりします。新サーバーへファイル群をアップロードする時も同様です。
この作業を10分程で終わらせる方法について以下では書いています。
WordPressのファイル一式の圧縮
例えば、WordPressを設置しているフォルダーを開くと以下のようなファイル群があります。
ここに zip というフォルダーを作成してください。
このzip フォルダーへ、 以下のコードを書き込んで、zip.php などと記載して、 utf8の文字コードで保存してください。
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 |
<?php //圧縮保存するファイル名。a.zipなどとなる。 $name = "a"; // このフォルダ以下のファイルを圧縮します。最後に / $this_file_path = __FILE__; $this_file_path = preg_replace('@zip/zip.php@s','',$this_file_path); $tempDir = "$this_file_path"; /////////////////////////////////設定ここまで // このフォルダにzipファイルを作ります。zipフォルダーは予め作成する必要有り。最後に / $filepath = $tempDir . "zip/"; // コマンド // cd:ディレクトリの移動 // zip:zipファイルの作成 -Pオプションでパスワードを設定 $command = "cd " . $tempDir . "; zip -r ".$filepath.$name.".zip ."; // 実行します exec($command); header("Content-type: text/html; charset=utf-8"); print<<<EOD 実行ファイルへのフルパス: EOD; echo __FILE__ ; print<<<EOD <br /> 完了 EOD; ?> |
下のようになっているはずです。
「zip.phpの作り方が分からない」という方用に、サーバーへアップしておきましたので解凍してお使いください。zip.php.zip(圧縮ファイル)
その後、zip.phpファイルをブラウザで開いてください。下のURLのような感じになっているはずです。
http://<ドメイン>/zip/zip.php
実行が完了すると以下のような表示が出ます。
で、サーバーを見ると、 a.zip というファイルが生成されています。
a.zip の中に、WordPressのファイル一式が収納されているので、このファイルをダウンロードしてお使いください。
a.zip をサーバー上で解凍する方法
先ほど生成した a.zip をサーバーへアップします。
そして、同じフォルダーへ下のコードを書き込んだ unzip.php をアップして下さい。 utf8の文字コードで保存してください。
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 |
<?php $zipfilename = 'a.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"); } ?> |
unzip.php を作るのに不安がある方は、ダウンロードし解凍してお使い下さい。 unzip.php.zip(圧縮ファイルです)
サーバー上はこのようになっていると思います。
unzip.php をブラウザから開いて実行して下さい。
http://<ドメイン>/unzip.php
のようなパスになっていると思います。実行して以下のようなメッセージがブラウザーへ表示されれば成功です。
サーバーは、以下の図のようになっていると思います。
これで、新サーバーへファイル一式がアップ出来ました。
注意!!
旧サーバーで生成した&新サーバーへアップした、 a.zip は削除して下さい。外部からzipファイルのURLをたたかれると、一式ダウンロードされてしまいます。
旧サーバーの zip.php、unzip.php は削除して下さい。 特に a.zip がある状態で unzip.php のURLを外部から叩かれると、a.zip生成時点のファイルでWordPressが上書きされてしまいます。
最後に
如何でしたでしょうか?旧サーバーから新サーバーへファイル一式を移転する時だけでなく、WordPressのファイルのバックアップの際にも使える方法です。
FTP接続してダウンロードは、ファイルの欠損の可能性のみならず時間がかかるので避ける方が良いと思います。是非、この方法を活用下さい。
おまけ
おまけ1
zip.php が使えない場合は、こちらの zip_b.php をお使いください。
おまけ2
おまけ3
さくらインターネットでphpの実行時間を10分にする方法。
1.PHP設定の編集を開いてください。
右側の欄へ、
1 |
max_execution_time = 600 |
と書き込んで、「保存する」を押して下さい。
既に右の欄へ何か記述がある場合は、上の行を一番下へ「追記」してください。
出張ホスト募集要項