そのための時間の確保は人生における重要課題の一つだ。備忘録を書く手間より書かなかったことによってかかる手間のほうが大きいのだ。よってこれからはしょうもないことでもちょくちょくブログに上げていこうと思う。元サーバーでWordpressのバックアップWrodPressのDBは定期的にバックアップしておくと安心だ。容量の関係で泣く泣く削除しなければならない過去記事があったとしても、DBのバックアップとしてとっておけばいつでもリストアできるという安心感を以てバッサリと本番環境から削除してしまうことが可能だ。ホスティングサービス上のサーバー容量は有料で有限だが、ローカル環境ならば潤沢なストレージが安価にそろえられる。RaidでミラーリングされたNASを自宅に2台用意して冗長化しておけば、よほどのことが無ければデータが全て失われることはない。いうことで個人のWordPressによるブログでもDBのバックアップを取るスクリプトを夜中にCronで回して3世代くらいとっとけばいいんじゃないだろうか。下のコマンドで移行元サーバー上のDBをバックアップする。./wordpress$これで、dbdump_DB名_YYYYMMDD-HHMMSS.gzというファイル名でDBのバックアップが取れた。ついでにwordpressのインストールディレクトリをtar.gzで固めてみた。これを移行先のサーバーへ持って行って展開していく。ドメイン変更のみの場合はこの手順をすっ飛ばしてDBの中身をいじるところまで読み飛ばしてほしい。移行先サーバーでのリストアここからは移行先サーバーでの作業となる。移行先サーバーでwordpressディレクトリをWebサーバーの公開ディレクトリに展開。その後、ここでは割愛するがwp-config.phpを編集する。-$次に、MySQLのコマンドラインに入ってリストアするための空っぽのDBを作る。DB名;作ったDBに、持ってきたDBのバックアップをリストアしてみる。./dbdump_DB名_YYYYmmDD-HHMMSSこれで、移転元サーバーと同じ環境が移転先サーバーで出来上がった。移転してもドメインに変更がない場合、これでうまく動くと思われる。移転元と移転先でURLに変更がある場合、次の手順へ進む。移転元サーバーから持ってきたデータの展開が終わったので、wp-config.phpを編集してDBの中身をいじっていく。wp-config.phpの変更箇所はファイルの中を見ればわかると思うので割愛し、DBの中身を更新するのだが何を更新するかというと公開したサーバーのドメインを旧ドメインから新ドメインへ置換する。DBのすべてのテーブルに検索をかけるのは面倒だが、phpMyadminからDBを指定してすべてのテーブルを指定して検索すると、DB内のすべてのテーブルに一遍に検索をかけることができる。GUIで検索結果を表にしてくれるのでとても見やすい。phpMyAdminにログインして、DB名を選択。“検索する単語”に旧ドメインを指定して、”検索するテーブル”で”全選択”をクリックしたのちに、実行ボタンをクリックする。これでDB内の全テーブルに一遍に検索がかかる。これで、どのテーブルに旧ドメインを含んだデータがあるかわかった。テーブルはわかるが、どのカラムにあるかまではわからないので、表示をクリックして中身を確認してみるといい。DB値の置換そんなこんなで、置換すべきデータの位置が分かったのでMySQLのコマンドラインに入ってUPDATEをかけていく。だいたい、こんな感じになると思う。リプレイス関数を使うと、値の置換ができる。旧ドメインが”http://old-domain.unko”、新ドメインが”https://new_domain.chinko”であるとするとこんな感じ。SEOというお行儀の悪いプラグインが勝手に作ったテーブルなのでこのプラグインを入れていなければ無い。これでめでたく移行完了だ。再度phpmyadminから検索してみると旧ドメインではヒットがないことが確認できるだろう。やってることは単純だが、入れているプラグインやWordPressのバージョンによって更新すべきテーブルやカラムが変わってくるのでなかなかスクリプト書いて自動化とかやりにくいのでめんどくさい。自分でやるのめんどくさい!無理!という方はお問い合わせフォームからご依頼いただければ、お安く請け負っているのでお問い合わせいただきたい。これで次回からはこれを見ながらスムーズに作業できそうだ。WordPressのサーバー移行をなさる方の健闘を祈る。例のAT-X510-28GTXのスタックで遊ぶYAMAHAルーターNVR700Wと小型ONUがやってきた!翔んで西日本!例のAT-X510-28GTXで10GbEのファイル転送をしてみる。Replyメールアドレスが公開されることはありません。