photo credit: EMMEALCUBO
wordpress のプラグイン、WP-DBmanager は自動でデータベースをバックアップしてくれる便利なプラグイン。
なのですが、バックアップされたファイルが、文字化けする。やがていつの間にか、バックアップすら出来なくなる。
と言う現象にハマりました。やっと最近解決したのですが、結論から言うとチカッパの方に要因が。
お仕事一号WebSiteは、二つのデータベースにwordpressを一つずつ接続して構築していました。
で、両方にWP-DBmanagerを入れていたのですが、一方のは最初から文字化け。もう一方はちゃんと文字化けせずにバックアップできるし、バックアップファイルのメールもちゃんと定期的に送信されていました。
それが、いつ頃か(wpもバージョンアップしたし、色々いじってるので……)、どちらもバックアップ出来なくなっていました。
mysqldump、mysqlのパスが見つからない、とエラーが出て。その設定箇所はいじってないのに。
念のためチカッパにパスを問い合わせたら、
「チカッパ!レンタルサーバー」では「MySQL」の絶対パスについてはご提供がございませんので、その点ご了承下さい。
教えてくれないし。
色々調べた結果、バックアップ出来なくなった原因は、チカッパ契約時はVer4だったPHPがVer5に移行できるようになり、ウハウハと移行したら、デフォルトのphp.iniのsafe modeがONになっていたこと。
これをOFFにしたら、mysqldumpのパスは、WP-DBmanagerのデフォルト設定のままでちゃんと動作するようになりました。
ちゃんと動作するようになりましたが、文字化けしてた方は、文字化けしたまま復活。
これの原因は、MySqlサーバでした。
MySQL5サーバーにおけるcharactersetの設定を教えてください。
僕が使っていたのは、「mysql15およびmysql16 2008年9月2日以降」。このcharactersetのバラバラ感はなに? 😯
チカッパではこのcharactersetを変更する方法はないらしいので、MySqlサーバを代えるしかないようです。
ので、このブログで実験。
- phpMyAdminでWPのテーブルを全部エクスポート。(参照)
- チカッパのコンパネで、問題のデータベースを削除。(あっさり消える)
- 新しいサーバを選んで、データベースを作る。
- 1でエクスポートしたファイルを、phpMyAdminでインポート。
- 新しいデータベース情報で、wp-config.phpを書き換えてアップロード。
こんな感じで、あっさり乗り換えられました。
さっそく本番、 4MB程のデータでしたがすんなりきました。
データの文字化けが消えた!
ついでに、自動で送られてくるバックアップメールの文字化けも直すことに。
こちらを参考にしました。
これでヘッダの文字化けは直りましたが、僕が使っているWZ-Editorのメーラーでは本文が文字化けしたままです。
のでdatabase-manage.php(2.50)だと、88行目の$mail_messageの代入が終わったところ(96行目)で、$mail_messageをmb_convert_encodingでSJISにエンコードするようにしました。
ついでに要らない行も削って、
[php firstline=”88″]
$mail_message = __(‘Website URL:’, ‘wp-dbmanager’).’ ‘.get_bloginfo(‘siteurl’)."\n".
__(‘Backup File Name:’, ‘wp-dbmanager’).’ ‘.$database_file."\n".
__(‘Backup File Date:’, ‘wp-dbmanager’).’ ‘.$file_date."\n".
__(‘Backup File Size:’, ‘wp-dbmanager’).’ ‘.$file_size."\n\n";
$mail_message = mb_convert_encoding($mail_message,"SJIS");
[/php]
これですっきり。
お仕事二号WebSiteとこのブログにも変更したdatabase-manage.phpとwp-dbmanager.phpをいれて、快適!ステキ! 😀
長いこと悩んだものです。
ってことを書いておかないと、うっかり自動アップデートで修正箇所を失いそう。
north へ返信する コメントをキャンセル