BackWPupがエラーになるから無理やりパッチをあてたゾ

screenshot-1WordPressのバックアップを取るのに便利なツールを探していて、BackWPup というプラグインを見つけた。さっそくインストールしてみたところ、評判通りなかなか良いのだが、肝心要なお仕事用のサーバでエラーが発生し、犬のおまわりさんみたいにわんわんわワンと泣くはめになった。

このサーバは、大阪の某レンタルサーバを使っている。2年ほど前に大チョンボをしてしまったアソコだ。だからよけいにバックアップをとりたい。

さて、調べてみると、MYSQL_SOCKET = /tmp/mysql.sock となっているのに、mysql.default_socket = /var/run/mysql/mysql.sock となっていて、これらが一致していないためにデータベースへ通信エラーとなっていることがわかった。

普通ならMySQLの定義ファイル my.cnf か、PHPの定義ファイル php.ini でこれらを一致させれば良いのだが、サーバ屋さんの運営方針でここらをいじらせてくれない。いけず。

ということでパッチを当てる

BackWPupはソースで提供されているので、中をごそごそと調べてみた。

inc/class-mysqldump.php の85行目付近

このように ini_get()mysql.default_socket の値を取り出し、強制的に dbsocket にセットしている。これで幸せになれた。

直前の部分を見ると、wp-config.php の DB_HOSTdbhost:port:socket の書式で与えてやれば良さそうだが、これではデータベース接続エラーになってしまい、うまく行かなかった。