【当ブログではアフィリエイト広告を利用しています】

[WordPress] WP-DBManagerでバックアップが動かない

attention この記事は2年以上前の投稿になります。
記載された情報が古くなっている可能性がございますので十分ご注意ください。

あるホスティングで「WP-DBManager」のバックアップが動かない現状に遭遇したので調査してみました。
WordPress:バージョン 3.1
WP-DBManager:バージョン 2.60

○症状
「Database Failed To Backup On … Backup File Size Is 0KB」で設定した場所に0Byteのファイルはできている。

WEBで調べたところ、主な原因は以下の2点のようだ。

  • PHPのSafeModeがONになっている
  • パスワードに特殊文字が含まれている

どれも該当しないので、実際にプラグインのソースを確認したところ・・・
ポート番号を標準から変更すると動作しないっということがわかりました。
WordPressのwp-config.phpには「DB_HOST」しか定義していないので、ポート番号を変更する場合には「ホスト名:ポート番号」をホスト名として指定する。
これでWordPress自体はMySQLに接続できてしまうのだが、「mysqldump」コマンドはポート番号を別に指定する必要があるため動作しないようだ。

結局、ホスティングなのでプラグインのソースに手を入れて対応します・・・(泣
変更したファイルは以下の通りです。

  • database-backup.php
  • database-manage.php
  • wp-dbmanager.php

「DB_HOST」をホスト名とポート番号に分割して、「mysqldump」コマンドを正しく生成するようにします。

list($backup['msqlhost'], $backup['msqlport']) = explode(":", DB_HOST);
$backup['msqlport'] = ($backup['msqlport'] == "") ? "3306" : $backup['msqlport'];

※下記はコマンド文字列生成の一部(変更した部分のみ)
 --host="'.$backup['msqlhost'].'" --port="'.$backup['msqlport'].'"

上記で無事に動作しました。

ご意見・ご感想をお待ちしております。

いただいた情報は一般公開されません。(入力いただいたメールアドレスにてご返信させていただきます)
また、* が付いている欄は必須項目となりますので、必ずご記入をお願いします。

内容に問題なければ、下記の「コメントを送信する」ボタンを押してください。