データベースのバックアップ [WP-DBManager]

 WordPressのバックアップを取るプラグイン。

 手動でも、自動でメールで定期的にバックアップファイルを送ってくれることもできる。DB最適化も自動でできる。

 このままだと、サーバーの仕様で、メール自動配信ができないので、ルートの .htaccess で、PHPファイルをCGIで動かす指定をする。

設定:XREA、CORESERVERの場合
mysqldumpのパス: /usr/local/mysql/bin/mysqldump
mysqlのパス: /usr/local/mysql/bin/mysql

ルートの.htaccessファイルに以下を追加


AddHandler application/x-httpd-phpcgi .php

サーバーを引っ越した

契約更新のタイミングで、XREA + から、CORESERVER に引っ越した。XREA + では、wordpressのバージョンアップが面倒で、2.9のままで放置していたのだが、いいタイミングなので、新サーバーに3.0の新しいwordpressをアップロードした。

プレーンなwordpressを新サーバーにアップロードした後、phpMyAdminを使ってデータベースをインポート。

ドメインを、旧サーバーに向けていたものを、新サーバーに向けて、引っ越し終了。

さすが、wordpressの引っ越しも慣れてくると手早いねえと満足していて、ついうっかり面倒な事をやってしまった。XREA +のサーバーも予備用としてキープするつもりなのだが、有料から無料にすると、容量が50MBまでしか使えなくなってしまう。それで、サーバーの中身を整理するつもりで、いらないファイルを削除していたのだが、その流れで、/public_html/log の中身を一瞥して、「ここのログ見ないし、削除」ということで、中身を全部削除したのだ。実は、phpMyAdminとかのデータも全部ここに入っていたのに。しかも 、消すつもりだった旧サーバーではなく新サーバーの方を削除してしまったのだ。アクセスできなくなって初めてこの事態に気がついた。しょうがないので、CORE SERVER 管理画面から、再インストールするも、アクセスできず。訳がわからず、データベースを削除して、また新規に作成(←この動きは全く意味がないどころか、余計な仕事を増やしてしまった)。

時間を置いて、何度アクセスしても、エラーメッセージが出るので、違うブラウザでやってみると、ベーシック認証まで聞いてくる始末。こんなこと今まで一度もなかったので、どうも、phpMyAdmin 以外にも大事なファイルを削除してしまったような気がした。それで、思い当たるパスワードを入れて、何度目かでアクセス成功。phpMyAdminにも無事アクセスできるようになりました。

一時は、もう手に負えないと思って、別のサーバーに移ってしまおうかと思ったのだが、いいサーバーの空きがなくて、というか、今回たまたま取得できたサーバーはかなり良さそうなので、引っ越すのが惜しかったのだ。もう満員で、このサーバーの別アカウントを取る事もできなかったわけで。それで、なんとかならないかと試行錯誤した訳なのだが、今にして思うと、大事なファイルを削除したというよりは、やっぱり時間の問題だったような気がする。じっと待っていれば、使えていたのではないかなと。

サーバージプシー

短期間に、2度サーバー移転をするはめになった。

最初はXREA Plus S266サーバーを利用していたのだが、負荷が急に高くなったので、負荷観測所で吟味して選んだのがS281サーバー。これなら快適だろうと思ったのもつかの間、このサーバーはデータベースに問題があるようで、頻繁にデータベースにアクセスできなくなった。いったいどれくらいの頻度でエラーになっているのか気になって、サーバーを監視してみると、日に何度もエラーメールが届く。だいたい一度のエラーで30分程度アクセス不能になっているようだ。

というわけで、またサーバー移転をすることに決めた。

WPのインポート機能は、やはりうまく動作しなかった。まったくしないのではなく、中途半端にインポートされるので、なにかこちらに問題があるような気がしないでもないが、もう面倒なのでphpMyAdminで直接やることにする。

まだドメインのDNSは書き換えていないので、事前に動作チェックするために、phpMyAdminを使ってインポートする場合、url指定の部分を書き換えておく必要がある。

wp_optionsのoption_nameのsiteurlを独自ドメインのものではないサーバーurlを入れておく。最終的には、ここは独自ドメインに変更。

インポートは無事に成功したようだったが、「ダッシュボード>設定>ブログのアドレス (URL)」に該当する箇所がphpMyAdminで見つけられなかったので、独自ドメイン(旧サーバー)へ飛んでしまう。
そこで、「http://新サーバードメイン/wp-admin/」でなんとか新サーバーのダッシュボードへログインしてこの部分を修正した。

無事、移転手続きも終わったが、リンクが全て切れてしまった。パーマリンクも前に使っていた「/%category%/web%post_id%.html」はきちんと入っている。ただ、なぜかWordPressを新サーバーにインストールした際に、勝手に.htaccessファイルが作られていてその中身がデフォルトを指定する記述になっていた。そこで、パーマリンク指定をデフォルトにしてみる。これだとリンクが効いている。そこで、新規に空の.htaccessファイルを設置し、改めてカスタム構造を指定した。無事リンクが効くようになった。これでやっとサーバー移転完了。WordPressのサーバー移転の勉強にはなったが、当分移転作業はしたくないな。

サーバー移転の手順

XREA Plusの場合

  1. 新サーバーに「web.level-k.jp」のディレクトリを作成する。これは、DNSの割当てがまだ旧サーバーに向いているためで、手動で行う。
  2. 「web.level-k.jp」内にWordPressデータをアップロードする。
  3. 現在使用しているテーマとプラグインも追加でアップ。空の.htaccessファイルもアップしておく(パーミッションは「666」)。
  4. 新サーバー用のwp-configファイルを作成しアップする。
  5. 新サーバーのWordPressにIPアドレスでアクセスする。URLをindex.phpまで含めないと認識しなかった。
  6. 旧サーバーのWordPressからエクスポートしたWXRファイルを新サーバーにインポートする。
    ダッシュボードにログインし、「管理>インポート」で、エラーが発生しました。アップロードしたファイルを…に移動できませんでした。というメッセージが出た。
    このエラーはパーミッションの問題かと思い、変更すると、次の画面「投稿者の割り当て」に進めた。ここでは、インポートした投稿や下書きの編集/保存を簡単にするために投稿者名を変更することができるようだ。添付ファイルののインポートはないので、チェッックしない状態で、「実行」。「実行」ボタンを押してから結構時間がかかった挙句にうまくいかない…
    が、何度か試したところ、インポートできたようだ。何度もボタンを押したせいだと思うが、サブカテゴリーが重複しまくっていた。手動で削除。サイドメニューとお問い合わせフォーム、パーマリンク設定もなぜか反映しなくて、面倒だから手動で再作成した。
    後記:他の問題解決の際に気がついたが、これは適切な場所にアップロードができなかったからかもしれない。「設定>その他の設定>アップロードするファイルの保存場所」が「wp-content/uploads」になっているか確認すること。また、「uploads」フォルダは最初から入っているが、これを削除してから、同じものを作成しパーミッションを適切に割り当てる。

画像のアップロード

む、画像がアップロードできない!
調べてみると、XREAのPHPはSAFE MODEで動いているということがわかった。

このサイトを参考に、.htaccessファイルを追加したが、それでもアップロードできない。サーバー内を覗いてみて分かったのだが、本来格納されるべきuploadsフォルダではなく、一つ上の階層にアップロードされていた。
これは…もしかしたらインポートがうまくいかなかったのと同じ問題なのではなかろうか?
というのも、画像がアップロードされてしまった場所に、インポートのファイルらしきものもあったからだ。

設定を見直してみることにする。
すると、「設定>その他の設定>アップロードするファイルの保存場所」が「wp-content」になっていたので、「wp-content/uploads」に変更した。これで解決だと思ったのだが、やはりアップロードできない。前とは違って、uploadできないというエラーメッセージが出るのだ。パーミッションも問題ないのに。そこで、元々入っている「uploads」フォルダを削除し、自分で同じファイル名でフォルダを作り、パーミッションを設定してみた。

すると! 無事アップロードが出来たのだ。なぜこの作業で出来るようになるのかはサッパリ分からないが、とりあえず問題は解決。