[WordPress] BackWPupでMySQLiエラーなら、WP-DBManagerと併用するといいかも

[WordPress] BackWPupでMySQLiエラーなら、WP-DBManagerと併用するといいかも

バックアップ方法を見直したので備忘録を兼ねて。BackWPupでファイルだけバックアップ、WP-DBManagerでDBを定期的に最適化したりバックアップしたり。Gmailの自動振分+削除のtipsなんかも。


バックアップ方法を見直す

今まで違うプラグインを使ってたのですが、BackWPup がアップデートで自分の環境でも使えそうになったので、乗り換えてみることにしました。

BackWPupを設定

こちらを参考にさせて頂きながらDropBoxへアップロードされるように設定しました。プラグインはリストだけ書き出しておくっていうのが目からウロコでした!いいかも!

ロリポではPHP5.4が必要

130527-01

しかし、MySQLiが存在しないよ!と怒られてしまう。調べてみたところ、BackWPupがver.3へアップデートしたときにMySQLiというものが必要になったらしいですね。で、ロリポップサーバがPHP5.4に対応できるようになったので、5.4にすればMySQLiが使えるようになるよ、と。

なるほど。問題はこのブログがPHP5.4でも大丈夫かということだ。

試してみたら、ダメだった。500エラー…。・゚・(ノД`)・゚・。

130527-02

というわけで、BackWPupでデータベースをいじるのは諦めて、ファイルだけバックアップすることにしました。データベースのほうは、今までも使っていたWP-DBManagerと併用することにしたので、こちらは後述します。

追記:こちらは2013年5月当時の環境で、現在はサーバ移転してPHPのバージョンも新しいもので運営しております。でもBackWPup + WP-DBManagerは便利だったので未だに併用してます。

BackWPupを走らせてみて

すごく定番のプラグインなので問題ないかと思ったんですが…。ちょっと苦戦したことをメモ。

規模が大きくなると安いサーバは厳しい…?

私が現在契約しているのがロリポプランで、WordPressでこのブログを始めるずっと前から契約していました。ベタ打ちHTMLのHPとかMTをちょっとカスタマイズした面白くない日記書いたりとかしてましたw

サービスいっぱいあるのに料金もすごくお手頃で、細々とやってるぶんには申し分なかったのですが、現在のブログでは記事数も250を超え、wp-content/uploadsの画像数も1,000を軽く超えてました…。それなりに容量もあるためか、DropBoxへのアップロードの最中にタイムアウトを起こすことが…。

現在は1日で最もPVの低い時間帯(朝方)にバックアップをとっており、問題なく動いているのですが、昼間検証したときに何度かタイムアウトで失敗しました。jobは終了するのですがDropBox側にファイルが出来ていないという。

いつかサーバの移転とかも考えなきゃいけないかなぁ…_(:3 」∠)_ 移転しました

容量を落とす

プラグインは、リストで

少しでも負担を減らそうと色々やってみました。先ほど触れた、プラグインはリストだけ.txtで書き出すっていうのも結構良いと思います。全てのプラグインへのURLも書いてあって、実際使ってるプラグイン、停止中のプラグインを別々にリスト化してあったりもあして想像以上にいい感じでした。

原因のほとんどは画像ファイル

とはいえ、ホント、真犯人は画像なんですよね。wp-content/uploads内のファイルだけで全容量の8割を占めてましたからね…。

こちらのツールを使ってjpgとpngをサイズダウンしてみました。結果は、平均でjpgが20%減、pngが60%減に。TinyPNGがすごすぎる。6割減て!!

ただ、最初の頃なんでもかんでもjpgにしてた時があって、そのおかげでjpgファイルが多くて全体的には25%減くらいでした。今では写真以外はpng使うようになったので、今後もTinyPNGにお世話になりそう…!

画像形式の適正についてはこちらがわかりやすいです! Windowsの方はこちらも良さげ!

JPEGminiのファイル名が…!

サイズダウンしたことだし上書きしようとしたらまさかの罠w TinyPNGは同じファイル名で出力してくれるのでスムーズに上書きできたのですが、JPEGminiは、○○.jpg → ○○_mini.jpg になってる…!ぜんぶ…!(白目)

数個なら手で直せるけど数百個は無理だよ!勘弁して!ってことで、ちょうど手元に使えそうなスニペットがあったのでExcelVBAで指定フォルダ内のファイル名全てを ○○_mini.jpg → ○○.jpg にリネームして切り抜けましたw エクセルは結構なんでも出来ちゃう子ですねw

データベースのバックアップ

長くなってきていますが、データベースのほうへ。WP-DBManagerというプラグインを使っています。バックアップはもちろん、定期的に最適化も補修もしてくれるし、動作も安定しているので気に入っています。

設定はこちらのサイトがわかりやすいです。

バックアップフォルダをWordPressのフォルダ内(私はwp-content内にしてます)に指定しておけば、このプラグインがデータベースのバックアップを作成して入れておいてくれるので、それをBackWPupがDropBoxへバックアップしてくれちゃいます。

これだけでもOKな気はするのですが、WP-DBManagerはデータベースのバックアップをメールで送信してくれる機能があります。データベースだけなら圧縮されてればメールで送れる容量だし、やっておいても損はないかなと思ってGmailに送ることにしました。

Gmailでストレスなく管理

送るのはいいんだけど、毎日メール開いて移動するのめんどい…っていうのを全部自動化しちゃいます。

このバックアップのメールだけは勝手に指定のフォルダ(Gmailではラベルという概念ですが)に入って、既読にしちゃって、一定期間より昔のものは自動で削除されちゃう、みたいな。

Gmailの設定

130527-03

こんな名前のラベルを新しく作ります。名前は例ですのでなんでも構いませんが、あとでプログラムで使うので英数半角で書いといたほうが変なエラーが出にくいんじゃないかなと推測。

130527-04

フィルタの設定をします。

130527-05

WP-DBManagerから送られてくるメールに必ず含まれている文字列を設定します。振り分けられたくないメールには絶対含まれてないような、ちょっと長めの文字列にしておかないと、関係ないメールまで入って来ちゃうので注意が必要です。

キャプチャの後に気づいたのですが、ダブルクォーテーションで括っておかないと、ただのand検索になっちゃいますね。私は”○○ Database Backup File For”にしています。

130527-06

さっきの続き。ご覧の設定にして、バックアップのメールが自動で振分けられるフィルタを作っておきます。

Google Apps Scriptsで削除機能をつける

Google Apps Scriptはクラウドベースの Javascript 実行プラットフォームで、Google Appsを拡張するために使えます。スクリプトはサイト上で作成して、実行はGoogleのサーバー上で行われるという特徴があります。

こちらの記事で紹介されている、Google Apps Scriptを使ってみます!

130527-07

まず、Google Apps Scriptのページでスタートボタンを。

130527-08

空のプロジェクトを作成します。

130527-09

このような画面が開きます。まずはタイトルをクリックして変更しましょう。ここも半角英数にしておいたほうが無難かもです。コードはこちらをコピペしてみてください。

function cleanUp() {
	var delayDays = 14 // Enter # of days before messages are moved to trash

	var maxDate = new Date();
	maxDate.setDate(maxDate.getDate()-delayDays);

	var label = GmailApp.getUserLabelByName("db-backup");
	var threads = label.getThreads();
	for (var i = 0; i < threads.length; i++) {
		if (threads[i].getLastMessageDate() < maxDate) {
			threads[i].moveToTrash();
		}
	}
}

さっきつくった「db-backup」というラベルがついているメールの、14日(2週間)以上前のものを削除するスクリプトです。期間を変えたい場合は2行目の数字を変更してください。

こちらのスクリプトの、日付とタグ名を変えさせて使わせて頂きました。ありがとうございます!

130527-10

タイトルとコードを入力したら、保存してから(1)、実行してみます(2)。

130527-11

1回目のときだけ、承認画面が出ます。大事なメールが消えないようにラベル名やフィルタの設定など、もろもろの確認を再度行ってからにしてください。自己責任でお願いしますー!

130527-12

今度はこのスクリプトをどんなタイミングで動かすかを設定しておきます。

130527-13

毎日、日付が変わったあたりで動くようにしておきます。(お好みの時間で構いません)

こちらのサイトも参考にさせて頂きました!

こんな感じで

だいぶ長くなってしまいましたが、自分の備忘録と共に、どなたかのお役に立てたら幸いです!

蛇足かもなんですが、どちらのプラグインでも使っている圧縮形式.gzの解凍がイマイチうまくいかなくて(Win7使ってます)、こちらのサイトで紹介されている解凍ソフトがいい感じでした。ご参考までにー。

公開日:2013/05/27
更新日:2014/02/26

コメントを残す

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

このサイトはスパムを低減するために Akismet を使っています。コメントデータの処理方法の詳細はこちらをご覧ください

コメントは承認制ですので、反映までしばらくお待ち下さい。(稀にスパムの誤判定にて届かないこともあるようですので、必要な際はお問い合わせからお願い致します。)

YouTubeでQ&Aコンテンツを企画しています

運営しているYouTubeチャンネルで、ご相談やご質問を募集しています。動画のコメントやお問い合わせページからお気軽にご相談をお寄せください。