Web系備忘録

モートンファンサイト(Morten-Harket.jp)再構築の顛末 -10年分のデータ移設(復旧メモ)

前回、サーバを移転したらこのサイトのURLが変更になってしまい、色々大変だったと書きましたが、その翌日、今度はモートンサイト(Morten Harket.jp)が表示できなくなりました。なにやらデータベースが古いから危ないというエラーが出ていて、そのバックアップを取ろうとしていた矢先でした。「重大なエラー」としか出ず、ログも吐かないので、Wordpressのエクスポート機能を使って移転することにしましたが、これもまた、トラブル続きだったのでここにまとめておきます。

旧サイトからのエクスポートとインポート

当初の予定では、DBの移設だけで済まセル予定が、Hetemlで用意しているPHP My Adminでは実力不足(容量が大きくてDLできない)ため、諦め、同じサーバ内の別のディレクトリに再構築することにしました。

  • 同じサーバ内の別のディレクトリに移動させるために、別のフォルダを作成し、Wordpressをインストールする (この時点ではドメインは移転させない。基本は、このブログと同じサーバなのでそのURL設定でインストール)
  • 旧サイト管理画面の「ツール」からエクスポートを選択。全てを選ぶと、エクスポートエラーとなったため、投稿・ページ・メディアに分けてエクスポート
  • 新サイトの管理画面から、投稿・ページ・メディア毎にインポートする

メディアと新サイトの紐付け

インポートで、メディアが途中でエラーになったため、Tera TermからSSHログインし、旧モートンサイトフォルダから新モートンサイトフォルダへ画像データをコピーする(が、あとでフォルダ指定をミスって同じ構成になっていないことに気づいた)。ただし、この方法では、たとえ、フォルダ指定で同じ構成になっていたとしても、メディアは移行できても「構築したWordpressサイトとの紐付け」はされていない。紐付けるためには、Media From FTPというプラグインが必要だとわかり、インストールする。

  • Media From FTPというプラグインをインストールして、フォルダ毎に検索・登録していく。この時、メディアの日付は作業日になっているが、それをそのまま受け入れると、ブログとのリンクが全て切れてしまうので、最低でも「年月」と記事の「年月」は一致している必要がある。
  • 旧モートンサイトの管理画面の投稿一覧画面を年月で絞り込み、その中から「png」「jpg」などの文字検索をした一覧を表示させる。Media From FTPの検索画面では、年月単位のフォルダで検索し、その結果と旧サイトの管理画面をみて、旧サイトの管理画面にある記事のタイトルと検索された画像からどの画像がどの記事か見分けて、記事の日付とメディアの日付を合致させる。ファイルのリンクは「月日」フォルダで整理されているため、日付は一括でも良いかもしれない

ここまでで、出来たのは「上手くインポート出来たメディア」を含むブログと、「記事と紐付いてない画像がある記事」の混在したものとなる。Media From FTPで、年月を正しくしないと、フォルダ移動になってしまい、上手くインポート出来ていたメディアすら、記事との紐付けが壊れる可能性がある(実際、外れてしまったものもあった)ので、面倒だが、全ての画像に対して年月を紐付ける必要がありそうだった。

使用するプラグインと、テーマのダウンロード

旧サイトと同じ見た目にするために、同じテーマ「Hestia」をダウンロードしたほか、エディタで使用していたプラグインと、その他必要なプラグインを全て新サイトにもインストールした。見た目が一致した時点で、Hetemlのコントロールパネルで、ドメインの転送先を変更。また、新サイトのURLをインストール状態から、ドメインに変更した。なお、SiteGuardは、サイトのURLを変更するまではオフにしておくのが良い。(そうしないと、ログアウトさせられて混乱する)。ちなみに、以前にインストールしてそのまま使っていたものは、もうダウンロードできなくなっている場合もある。

カテゴリに注意

新たに構築したWORDPRESサイトでは、旧サイトとカテゴリIDが変更になる。このため、直接カテゴリにリンクしていたところは、リンク切れは起こすか、起こさなくても、クリックした先が違うリンクになっている場合がある。リンク切れはあとで述べるリンク切れチェッカーでチェック可能だが、リンク先違いは検出できないので自己チェックする必要があった。

テーマエラーの確認

今回、旧サイトで使用していた「Hestia」をダウンロードしたところ、カテゴリ表示などで、ヘッダが出力されてないことがわかった。投稿者の名前をクリックしたら、スタイルシートがまるで効いていないことから判明した。旧バージョンから使っていたために、これまでは上手くいっていた可能性がある。なので、私はテーマを変更した。同じようにゼロから構築しなおす場合、チェックが必要。

メディアと記事の紐付け

全ての記事の画像チェックをするのは不可能なので、「Broken Link Checker」をインストールする。有効化し、ツールの「リンクチェックエラー」で検索すると、リンクを裏でチェックしてくれ、ツールの「リンクチェックエラー」に結果が表示されるようになる。(すぐには表示されない)

  • 一覧では、全てのチェック結果が表示されているので絞り込むために、「検索」から「ステータス」で「リンクエラー」、「リンクの種類」で「HTML画像」を選んで検索する。「検索を保存する」というボタンが現れるので「画像」という名前にすると、「エラー画像一覧」が一覧に表示される。これが、紐付けの第一歩。
  • アイキャッチ画像も外れているので「XO Featured Image Tools」をインストールする。これで、これまでアイキャッチ画像がない記事については、自動的にアイキャッチ画像を追加可能となる。(リンク修正と同時にアイキャッチ画像を復活させられる可能性がある)
  • Gutenberg適用以前の記事は、クラシックブロックに全ての記事内容が入っているため、画像データのリンク(リンク切れファイル)がわからない。クラシックブロックを「ブロックに変換」すると、画像は画像ブロックとしてリンク切れファイルがわかるようになる。
  • エラー画像一覧から編集画面に飛び、修正する。パターンがあるようなら、プラグイン「SearchRegex」で一括変換する。私の場合は、なぜかリンク切れが「OriginalFileName-600×450.jpg」で、本来が「OriginalFileName.jpg」というパターンが多かったので、-600×450.jpgを.jpgに置き換えた。他にも、いくつかのパターンを置き換えたことで、手で修正する画像はかなり減らせることができた。
  • 記事によってはアイキャッチ画像が迷子のまま読み込めないでいるため、アイキャッチ画像を削除して新たに指定する
  • 殆どのデータはフォルダさえ合っていれば「OriginalFileName」の後のハイフン移行を消して拡張子を残しておけばオリジナルファイルに辿り着くが、Media From FTPでの指定で年月を間違えると、それが出来ない場合がある。その場合は、メディアライブラリからオリジナルファイル名で検索して、指定する。

大量のリンク切れをどうするか

リンクチェッカでエラーになった外部へのリンクは、取り消し線で表示されるようになっていた。なので、そのままでも問題ないとは思うが、こちらは時間があるときにでも、「リンク解除」して、リンクを消していこうかと思う。ただ、サイトによっては、サーバの変更に伴いドメインが変わっただけの場合もあるので(まさにこのブログのように)、サーバエラーについては確認して、必要に応じて新サーバのURLに修正をしていくつもりだ。たとえば、Gaffaは、Gaffa.comからGaffa.noに変更になっている(修正済)。

おまけ:個別投稿画面にアイキャッチ画像が出ないようにする

「Hestia」では、個別投稿画面にアイキャッチ画面がでなかったものの、「Hestia」のエラーにより乗り換えた「Blossom Pinit」によって、個別投稿画面にアイキャッチ画像が出るようになった。これを修正するために、「Hide Featured Image」をインストール。「設定」の「Hide Featured Image」で、「Hide Image From All Posts」「Hide Image From All Pages」の両方を「Yes」に。これで、カテゴリ表示ではアイキャッチ画像が出るけど、個別画面ではタイトル上にアイキャッチ画像がでないようになった。

Morten Harket.jp (http://www.morten-harket.jp/)の中の人。 二児の母で、フルタイム勤務しつつ、ノルウェー語の勉強をしています。 現在、NORLAからサポートを受け、ノルウェー語の詩の翻訳を実施中。

コメントを残す

このサイトはスパムを低減するために Akismet を使っています。コメントデータの処理方法の詳細はこちらをご覧ください