Blogger からWordPress-Kusanagi への移転方法:同一ドメイン

Blogger to WordPress Kusanagi2

 

Blogger からKusanagi-WordPress への移転が完了し、一段落したので、これまでの経緯を振り返り、次回のためのマニュアルとして記す。

  1. BloggerからWordPressに移行決定。
  2. Bloggerでも独自ドメインで運用していた。
  3. WordPressでも同一ドメインで運用する。
  4. 使用中のお名前コムのVPSでセットアップ+インポートしてみたが、Blogger Importer Extended でのデーター削除+再インポートの試みが成功せず、Kusanagiサーバーを試してみる良い機会とした。
  5. Kusanagi-WordPressが使えるサーバーを探す。 システム構成: WordPress 4.3 (KUSANAGI専用プラグイン同梱) ・CentOS 7・Nginx 1.8・HHVM 3.9・MariaDB Galera Server 10.0・PHP 5.6・php-fpm 5.6
  6. AmazonAWSが1年間無料で使用できるので、それにしてみる。
  7. AmazonAWSの無料利用枠を確認
  8. 一ヶ月の転送量(送信)15 GB、ストレージ 20GB、を超えるならConohaにした方がいい。転送量15GBを超えたらどうなるのか未だ不明。
  9. AmazonAWSのサインアップ。「まずは無料で始める」
  10. Kusanagiの設定開始。この通りにすれば良い。
  11. AmazonAWSにログインして初期設定のリジョンが米國西部(オレゴン)になっているので東京に変更する。awsregion
  12. 「タイプ」から「t2.medium」を選択します。※KUSANAGIはメモリ4GiB以上を推奨していますので t2.medium を選んでいます。」とあるが、無料利用枠のメモリー1GBの t2.micro を選択する。
  13. 「1-7 ステップ6:セキュリティグループの設定」で、ポートが22(ssh)と80(httpd)しか開いていないことを確認する。https  でアクセスするなら、443を、FTPでアクセスするなら、ポート20を、メールサーバーも運用するなら、最初から全部のポートを開放しておいて、後で閉じるのも効率的。このポートの開放は後でwebmin1をインストールしてHTTPSでアクセスできなくて困ってから思い出してもよい。
  14. ログインすべきサーバーのIPアドレスを確認する
  15. poderosa か tera term を使用して、AWS+KUSANAGIサーバーにログインする。TeraTermをずっと使い慣れているのでTeraTermを使用する。
  16. ユーザー名は「centos」、鍵ファイルは「1-9 キーペアの作成とダウンロード」にてダウンロードしたキーペアのファイル  kusanagi_aws.pemを使用する。
  17. rootになるには、
     $ sudo su -
    [root@<ホスト名> ~]#
  18. このホスト名がむやみに長くて作業の目ざわりになるので早めにこのサーバーで運用するドメイン名に変更しておくと楽になる。ここでは例として、 ホスト名  blog.makotoiwasaki.com を設定する。
  19. [root@<ホスト名> ~]# hostname blog.makotoiwasaki.com
    root@blog/#
  20. このドメインblog.makotoiwasaki.com (Bloggerで運用中のドメイン名 www.makotoiwasaki.com とは異なるが、後で変更する)でこのサーバーにアクセスできるようにするためには、DNSサーバーの設定を追加する。
  21. Value-Domain の無料ネームサーバーを使用することもできる。次のように自分の新規サーバーのIPアドレスを設定する。約30分でこのドメイン名で kusanagi サーバーにアクセスできるようになる。
    a blog 303.202.101.5
  22. KUSANAGI の初期設定WordPressのプロビジョニング(インストール) を進める。
  23. WordPressの管理画面にアクセスしたら、Blogger からデーターをインポートするためのプラグインをインストールする。次のプラグインを使用した。最初に全部インストールしておくのもよい。
    Blogger Importer Extended
    Import External Images
    Simple Image Sizes
    Redirection
    Blogger To WordPress
    (これは必要ないかも、同一ドメインの移転の場合) Taxonomy Converter  (タグをカテゴリーに変換)
    Batch Cat  (カテゴリーの一括変換)
    UpdraftPlus - Backup/Restore (バックアップツール)
  24. インポートする前に、やるべきことは、パーマリンクの設定である。 設定」→「パーマリンク設定」で、カスタム構造 を選択し、  /%year%/%monthnum%/%postname%.html
    と入力する。これでBloggerのパーマリンク構造と同じになる。
  25. インポートする前に、取り込むべき画像のサイズ、自動的に作成されるサムネイル画像のサイズを決めておくには、Simple Image Sizes が有効。 設定→メディアで設定可能。
  26. Blogger Importer Extended を有効化し、インポートを完了する。テーマはまだ標準のままインポートする。これで、画像も取り込まれるが、画像をクリックした時に表示される元画像(リンク画像、blogspot.jp,googleusercontent.comに保存されている画像)は取り込まれないので注意。リンク画像は、後で、Import External Images で取り込むことができる。
  27. Theme テーマ(テンプレート)を決める。ここでは Simplicityと Simplicity child を採用する。
  28. 「テーマ」、「カスタマイズ」でカスタマイズする。Simplicity child でカスタマイズする。
  29. スタイルシート、CSSは「テーマ」→「テーマの編集」→ style.css で編集できるようにするためにファイルのパーミションを666(書き込み可能)に変更する。 そのためには、SSHでログインし、 /DocumentRoot/wp-content/themes/simplicity-child/style.css を、変更
    # cd /DocumentRoot/wp-content/themes/simplicity-child/
    # chmod 666 style.css
  30. style.css を編集し、好みのデザインに変更する。 cssを扱い慣れていないと、どの要素を変更すればよいのかわかりづらいが、 Chrome の 要素を検証 機能を利用するとよい。 Firefox でも同様機能がある。
  31. モニターのサイズが大きくて、テーマの編集の入力フォームのサイズが縦に小さいのが気になる場合は、 /DocumentRoot/wp-admin/theme-editor.php の199行目を次のように編集する。
    diff theme-editor.php theme-editor.php.org
    199c199
    < <div><textarea cols="100" rows="56" name="newcontent" id="newcontent" aria-describedby="newcontent-description"><?php echo $content; ?></textarea>
    ---
    > <div><textarea cols="70" rows="30" name="newcontent" id="newcontent" aria-describedby="newcontent-description"><?php echo $content; ?></textarea>
    

    tinymceこのように画面が縦に広がる。

  32. いろいろいじっているうちに、全部の記事を削除して再インポートしたいと思い、Blogger Importer Extended でインポートしようとしてもできない。失敗する。その場合は、データーベースから、「インポート完了」のデータを削除する必要がある。

  33. PHPmyadmin をインストールして、作業する。次のコマンドを実行する。 参照:https://wordpress.org/support/topic/re-import-failed
      DELETE FROM wp_options WHERE option_name LIKE 'bie_status_%';

    phpmyadminこれで再インポートできるようになる。

  34. 新サイトを公開してよい段階になったら、DNSの設定変更にとりかかる。
  35. 設定→一般」で、サイトアドレスを仮ドメイン名 blog.makotoiwasaki.comから、Bloggerから移転するドメイン名 www.makotoiwasaki.com に変更する。 WordPress アドレス (URL)は、まだ変更しない。これを変更すると、DNS設定が完了するまでWordpress管理画面にアクセスできなくなるので注意。
  36. これだけで、データベース内の全ドメイン名が移転ドメイン名に変更されるのかと思ったらそうではなかったので、それを書き換える作業が必要になる。
  37. Search-Replace-DB-master をダウンロードし、/DocumentRoot/以下に配置し、ブラウザーでアクセスする。
  38. Search forに、blog.makotoiwasaki.com  Replace withに www.makotoiwasaki.com (Bloggerから移転させるドメイン) と記入し、データーベース名、パスワードを記入する。 table は、all table actions  は、 dry run がテストのみで置換はしない。 live run で全置換を実行。searchreplace
  39. live run で全置換に成功したら、すぐにこのツールを削除しておくこの置換で、WordPress アドレス (URL)も変換されている。
  40. DNSの設定を変更する。Value-Domain の無料ネームサーバー
     a blog 303.202.101.5
     a www 303.202.101.5

    これで30分以内にBloggerのサーバーではなく、kusanagi wordpress の新サーバーにアクセスされるようになる。Blogger 側では何もする必要はない。

  41. Google検索で自分のサイトを検索して、検索結果のリンクから新サーバーにアクセスできるかどうか確認する。 月別のアーカイブのトップページ、ラベル(タグ)のトップページ 個別ページ /p/page.html 等 mobile用ページ  、html?m=1   ?m=0 は404 NOT Found エラーになる。
  42. Redirection プラグインをインストールし、リダイレクトの設定をすることでエラーがでないようになる。
    ソース URL: /(.*)?m=[0-9]
    ターゲット URL: /$1
  43. redirection
  44. アーカイブとラベルのトップページのリダイレクト設定は、/etc/nginx/conf.d/www-mydomain.conf  に次のように設定したら成功した。Redirection プラグインを発見する前の試みを残しておく。 Server {   内の適当なところ、 rewrite /wp-admin$ $scheme://$host$uri/ permanent; の行の後ろにでも挿入すると機能する。
    rewrite ^/([0-9][0-9][0-9][0-9])_([0-9][0-9])_([0-9][0-9])_archive.html$ "/$1/$2" permanent;
    rewrite ^/search/label/(.*)$ "/category/$1" permanent;

    xmlsitemap XML Sitemap Generator プラグインをインストールし、設定すると、Nginxには次のコードを設定せよ、との説明があったので、sitemap.xml で404エラーが出ている場合はついでに挿入する。

    rewrite ^/sitemap(-+([a-zA-Z0-9_-]+))?\.xml$ "/index.php?xml_sitemap=params=$2" last;
    rewrite ^/sitemap(-+([a-zA-Z0-9_-]+))?\.xml\.gz$ "/index.php?xml_sitemap=params=$2;zip=true" last;
    rewrite ^/sitemap(-+([a-zA-Z0-9_-]+))?\.html$ "/index.php?xml_sitemap=params=$2;html=true" last;
    rewrite ^/sitemap(-+([a-zA-Z0-9_-]+))?\.html.gz$ "/index.php?xml_sitemap=params=$2;html=true;zip=true" last;
  45. Nginxでは、Apache でお馴染みの .htacces ファイルでリダイレクトの設定はできない。サーバー設定ファイルを編集する必要がある。Reweite 構文もApache とNginxは異なる。 .htacces RewriteRule NginxのRewriteに変換するにはこのツールが便利。  *  Convert apache htaccess rewrite rules to nginx rewrite rules automatically
  46. 404エラーログを見ると、URLページの最後の1文字から2文字が脱落しているケースがあった。t 等の1文字が脱落していて .html で404見つからないエラーが8件ぐらいあった。個別にリダイレクト設定する。

後で、Import External Images で外部リンク画像をインポートすると、スラッグ中の_- ハイフンに勝手に置き換わっていた。 全部ではなく半数ぐらいが。 この問題の対処法はこちら。 結局ファイル名が変わるのであれば、最初からファイル名の変更を伴うパーマリンク設定をしておくことも可なり。 WordPress の困りごとは、勝手にファイル名が変更されることである。 過去に遡ってファイル名が全部変更される。 記事のタイトルが変更されたりすると、ファイル名=スラッグも日本語に知らぬ間に変わってたりする。 記事を更新するたびにこんなことが発生するリスクがある。 せめて過去記事のスラッグ名は勝手に変更されないようなシステムでありたいものである。 パーマリンクの最後の文字でt が脱漏していたりすることも多い。

  • GCPからGCPへの移転方法AWS, Azure 等の他のクラウドサーバーからGCP(Google Cloud Platform)に移転する方法はよく論じられているが、GCPのAアカウントからBアカウントに移転するにはどうしたらよいのだろうか? Compute Engine のVMインスタンスを、他のGCP アカウントのCompute Engine に移転又はコピーするにはどうしたらよいのだろうか? プロジェクトの共有 試行錯誤の上、たどり着いたのがプロジェクトの共有であった。GCPのトップページ、ダッシュボードの最初にプロジェクト情報のカードがあり、其の中に「このプロジェクトにユーザーを追加」という項目がある。そこをクリックして、他のGCPアカウントのGma...
  • またまたこのサイトのSSL証明書が期限切れになった。 Kusanagi の自動更新ができていない。 それで手動であれこれしてみても、こんなエラーが出る。# kusanagi update cert Challenge failed for domain makotoiwasaki.com Challenge failed for domain www.makotoiwasaki.com Attempting to renew cert (makotoiwasaki.com) from /etc/letsencrypt/renewal/makotoiwasaki.com.conf produced an unexpected error: Some challenges hav...
  • Google の Indexing API を使うと、新しい投稿記事を瞬時にGoogleの検索エンジンに登録できる。 WordPress のプラグインとしてインデックスAPIが利用できる。使い方は英語だが、この通り: ⏱️ Get Google To Index Your Website Instantly Using the Indexing API ⚡Take a look at how you can use Google's new indexing API & to get your website's pages and content crawled instantly instead of waiting for Google to...
  • Yoast SEO を停止して、Rank Math SEO プラグインを使ってみたらGoogle の検索結果に表示される記事抜粋スニペットの文字数が短過ぎに見えてびっくりした。#1 Yoast Alternative You Deserve - Rank Math SEO vs. Yoast SEORank Math SEO plugin for WordPress is hands down the best Yoast alternative WordPress plugin. And the best thing is, Rank Math is completely FREE!Rank Math
  • WP_CRON を停止して、Linux の crontab に移行する設定をこれまでに何度も試みたがうまくいかなかった。 毎日バックアップされるはずの、UpdraftPlus プラグインのクロンが動いていない。やっと成功した設定方法を記録しておく。wp-config.php に次の行を追加する。define('DISABLE_WP_CRON', true);/var/spool/cron  に、  httpd という名前のファイルを作成し、次の1行を追加する。 所有者を httpd.www など、httpd nginx サーバーの稼働ユーザー名と同じにする。nginx.conf に書いてある。root@s4:/v...
  • Kusanagi WordPress プラットフォームでは Fcache とBcache がある。 Fcache とはNginx ヱブサーバーのキャッシュ機能であり、Kusanagi の独自機能ではない。Nginx のアクセスログを眺めていると、  BYPASS MISS EXPIRED のみで、HITが殆どない。 トップ頁、アーカイブリストの頁ではHIT、 個別投稿頁では、BYPASS MISS EXPIRED ばかりでHITがない。Kusanagi fcache on とすると、fcache は有効になったかのように思えるが、本当にキャッシュが効いているのかどうかはログで確認しないとわからない。まず、Wordpressの編集画面にログインし...
  • HTTPD アクセスログの日本語化 Nginx,  Apache ヱブサーバーのアクセスログを見ると、日本語URLはエンコードされていて読めない。 そこで、デコードして表示させる。 ログのファイル名が ssl_access.log だとすると、tail -f ssl_access.log| perl -ne 'use URI::Escape; print uri_unescape($_);' tail -f access.log | php -R 'echo urldecode($argn)."\n";'で、日本語URlが読める状態で出力される。 Apacheのログをデコードする方法 - Life with ITプログラマ x ...
  • ヱブサイトの再構築中には、スタイルシート、style.css を頻繁に調整更新する。 CSSを追加、編集する度に再読み込みを繰り返して、変更の反映を確認していた。 これで編集者は反映を確認できるのだが、一般閲覧者はわざわざ再読み込みしたり、キャッシュを削除したりするはずはないので、変更が反映されていない崩れたデザインを見ているかもしれない。わざわざリロードしたりキャッシュを削除したりしなくても変更が確実に反映されるような設定方法を発見した。wp_enqueue_scripts で CSS、JS の読み込みを管理している場合には、次のようにfunctions.php に記述する。// 子テーマのstyle.cssを最後に読み込む add_acti...

WordPress カテゴリ人気記事 Views most

タグ関連記事

閲覧履歴