ここ2週間程、レンタルサーバーのWADAX から、エックスサーバーへサーバーを乗り換える作業をしていました。サーバー上にある容量が約9GB程もある上、色々想定外なことがあり大変でした。一言言えるのは、
WADAXを使うのは、マジ止めた方がいい!
ということです。この記事は、WADAXにフィーチャーしたものでは無いので詳しくは書きませんが、要約すると以下の通りです。
- サーバー上のファイルをユーザーがバックアップ保存する機能が無い
- unixコマンドが使えないから、無数にあるファイルを圧縮することも不可能
- よって、バックアップするには、FTP接続してファイルを落としてくるしか無い。しかし9GBものファイルがサーバー上にある場合は、6時間もかかる。そして、頻繁にFTP接続が切れるので、どこまでファイルを落としたかを確認出来る体制が無いと、延々に完璧なバックアップが取れない
- MySQLのバージョンが4までしか提供されていないので、最新のWordPressを使うことが不可能(現在のWordPressには、5.0以上のバージョンのMySQLが必要)
と言うわけで、WADAXにある約9GBのファイルをバックアップするのに、切れるFTP接続を何十回もつなぎ直して6時間以上かけて地道に行いました。
ここまでは余談です。本題はこれからです。
サーバー移転をする場合、通常、移転先のサーバー(今回はエックスサーバー)へ9GBもある無数のファイルをFTP接続してアップロードすることは無謀です。上記した通り、アップロードする際もFTP接続は頻繁に切れる為です。ではどうするか?と言えば、9GB のファイルを一括で圧縮して一つのファイルへまとめます。そうすると、容量が減りますし、FTP接続でアップロードする際も切れることがほぼ無くなります。
同じ9GBのアップロードでも、圧縮しない無数のファイル(今回は85,000ファイル)の場合は数時間かかる一方、圧縮すると数十分で完了します。
まず、zipファイルに圧縮してアップロードしました。で、以下の記事に沿って、unzip.php を実行しました。
【PHP】サーバー上で特定のフォルダーのファイルをzip圧縮したり解凍する方法
ところが、解凍されない!!
調べてみたところ、「サーバー上でzipファイルが解凍出来るのは、2GB以下のファイルのみ」 とのこと。これは困りました。色々調べてみたところ、.tar.gz ファイルであれば容量制限は無いとのこと。そこで、ファイル群を .tar.gz へ圧縮しなおしました。圧縮の際に使ったソフトは、 7-Zipです。一旦、ファイル群をtar ファイルへまとめてから、もう一度、 gzip で圧縮すると、 .tar.gz ファイルが出来ます。
.tar.gzとは?
.tar は、ファイル群を一つにまとめるアーカイブ形式の一つです。ひとつにまとめるだけで圧縮されません。 .gz は、一つのファイルのみを圧縮出来る形式です。二つ以上をまとめて圧縮出来ません。そこで、ファイル群を tar で一つにまとめ、それを gz 形式で圧縮する形式を .tar.gz として表します。
解凍
それを、フォルダーへアップロード(ファイル名は a.tar.gz )して、同じフォルダーにアップロードした以下のコードのファイル( untar_gz.php )を実行しました。
※文字コードはutf8 で、ファイル名は、 untar_gz.php として保存
すると、無事に解凍出来ました。
圧縮
因みに tar.gz へ圧縮するコードは以下の通りです。
http://hoge.jp/koko/
のフォルダー以下のファイルを圧縮する場合、
http://hoge.jp/koko/comp/
フォルダを作成して、その中に、圧縮プログラム( tar_gz.php )をアップします。圧縮ファイルは、a.tar.gz というファイル名で
http://hoge.jp/koko/comp/
に保存されます。
※文字コードは utf8 にして、ファイル名は、 tar_gz.php で保存して下さい
要するに、サーバー上の圧縮・解凍には、制限が無い .tar.gz がお勧めということです。