このたび約12年使った dolls.orz.hmからドメインを変更し、新しく徒労日記 – dolls.tokyoとなりました。変わらぬご愛顧をよろしくおねがいします。
ここに至るまでの過程、手順を自分への備忘録を兼ねてながながと書き記します。
dolls.orz.hmを捨てる決心
前にも少し書きましたが改めまして。
これまで使っていた徒労日記のドメイン名(dolls.orz.hm)は、ieServer.Net様が無償提供されているDDNSサービスを使ったサブドメインでした。十数年もの長い間の提供、感謝の言葉もありません。
しかし2月26日に名前解決出来なくなるトラブル発生。
管理人様は別サーバにて翌日サービスを再開されたそうですが、dolls.orz.hmへのアクセスはそれを境に悪化。名前解決に長時間がかかったり、NotResolve→NotResponseが返ってきたり、アクセス数にも支障が出るようになりました。
dolls.orz.hmには借り物ながら愛着があります。
でも今後の改善が見込めない事、将来性を考え新ドメインに引っ越す事を決めました。
初の自分ドメイン
突然のことで希望のドメインなんて思いつきませんが、
- 今までと似ている事
- 文字数は同等あるいはもっと減らす
- 年額負担が少ない事
を重視して有名なお名前.comで取得しました。
レジストラで他に検討したのはGoDaddy JPとGoogle Domains – Google。GoDaddyは初回が安いものの年額は軒並み3,000円↑と高くつきます。Google Domainsは初回も年額も変わらないシンプルさですが、安価なgTLDは5文字からと長く、また少しだけ高め(1文字幾らで比較した場合)でした。
そうして決めたのが
dolls.tokyo
です(ババーン)。
なんで東京?と思わないでもないけれど、「日本であること」を示し、「年額960円と激安」で選びました。覚えやすさ、入力しやすさも抜群です。
引っ越し作業
ここから先は作業メモなので興味のない方は読む必要はありません。
今回ドメイン名を新しくはしますが、Wordpressを設置するサーバ(VPS|さくらインターネット)そのものは変わりません。そこで同じサーバ上にもう一つバーチャルホストを増やし、サーバ内で引っ越しする形にしました。
現在の構成のドメイン名だけ上書きしてしまうと、旧ドメイン名でのアクセスを処理できなくなりそうだからです。
またリフレッシュのチャンスなので以下の処理も合わせて行っています。
- dolls.orz.hmからdolls.tokyoへ
- パーマリンクを記事ID(?p=123)からスラッグ(%postname%)へ
- DB内リンクの完全SSL化
作業フロー
行った作業をシートにまとめてあります(クリックすると全文が表示されます)。
★マークは今回のポイントとなる部分。順に補足していきます。
新ドメインとVPSの結びつけ
手順はほぼリンク先の通り。
独自ドメインの設定 | さくらインターネットのVPS設定マニュアル
お名前.comのドメイン管理画面にて「ネームサーバの変更」を実施。[その他のネームサーバを使う]を選んで2つを指定。
- ns1.dns.ne.jp
- ns2.dns.ne.jp
さくらではVPSコントロールパネルを開いてAレコードにホストのIPアドレスを設定します。
手順は以下を参考に。
さくらのVPSに独自ドメインを設定してみた – VPS比較 – Webkaru
DNSの反映は数十分で完了。手元のPCから名前解決が行えるようになりました。
nginxへのvirtualhost追加
/etc/nginx/site-available/dolls.orz.hm.confからdolls.tokyoを作成、以下の行を修正します。
server { root /usr/share/nginx/xxxxxx; access_log /var/log/nginx/dolls.tokyo/access.log; error_log /var/log/nginx/dolls.tokyo/error.log; } location ^~ /.well-known/acme-challenge/ { default_type "text/plain"; root /usr/share/nginx/xxxxxx; }
また、/etc/nginx/site-enableディレクトリにdolls.tokyo.confのシンボリックリンクを貼っておきます。
この時点ではLet’s Encryptが追加したlisten 443 ssl以下は一度コメントアウト。
アクセスログ用の/var/log/nginx/dolls.tokyoディレクトリを作っておきます。
service nginx restartしたらブラウザ経由でnginxのデフォルトページが表示されるかテスト実行。
Let’s Encryptで証明書再発行
過去を参考に./letsencrypt-autoを再実行。
お金をかけずに常時SSL対応完了!Let’s Encryptでnginx上のWordpressを常時SSLに対応させる。 | 徒労日記
実行すると対象に新ドメイン名が増えており、特に問題なく完了します。
cronの方はまとめて実行されるので定義変更はなし。
dolls.tokyo.confを書き換えてくれるのでまたservice nginx restartします。
今度は外部からのhttpsアクセスが問題ないことを確認し、Really Simple SSLプラグインを無効化します。
データベースの移行と変換
今回の作業の山場、データベースの移行です。
- <h3>タグを<h2>へ。<h4>タグを<h3>へ
- http://のリンクをhttps://へ
- dolls.orz.hmをdolls.tokyoへ
最初は単純にテキストエディタで置換するつもりでした。でもどうやらそれだけでは済まない部分もあるらしく、以下のツールでの処理が推奨となっています。
Database Search and Replace Script in PHP | interconnect/it
このページのフォームに答えるとダウンロードリンクがメールで届きます。そのzipを公開サイト配下の特定フォルダに展開し、ブラウザでアクセスします。
1列目に置換文字列、2列目にDB情報を入れて[update details]→[dry run](テスト実行)の順にクリック。
どのDBテーブルにどのくらい対象があるか表示される他、[view changes]を押せば目で変換内容を確認できます。
問題なければ[live run]を押して変換開始。
1.は見出しタグの整理。
blog初期の悪い流れを引きずってしまい、これまでH3を大見出し、H4を小見出しとして使ってきました。これでは構造的におかしいため、今回全体的に置き換えています。どうやらH1は本文では使わず記事タイトルに。H2を本文中の大見出しにするというのがSEO的主流のようです。
2.は正式なhttps化。
これまでReally Simple SSLプラグインで変換していたアドレスをDBから書き換えます。http://の文字列を全部置換してしまうと問題がありそうなのでドメイン名がついたものだけ置換。
3.ドメイン名書き換え
一番大事な作業。
終わったらツールは悪用されないように消しておきます。
パーマリンクとスラッグ
設定>パーマリンク設定にて「基本 http://dolls.tokyo/?p=123」から「カスタム構造 http://dolls.tokyo/%postname%」に変更します。
しかしやった途端トップページ以外の全てのページが404 not found.
なんでー?としばらく悩んだけれど、リダイレクトが動いてないからだとわかりました。
nginxの場合、.htaccess & mod_rewriteの代わりに.confで定義が必要だそうです。
try_files $uri $uri/ /index.php?q=$uri&$args;
本来index.phpの後ろにスラッグを書く長いURLになるところ、リダイレクトが変換してシンプルなURLになります。
Nginx + php-fpm でWordPressを動かしてみる | レンタルサーバー・自宅サーバー設定・構築のヒント
「要求されたファイルやディレクトリが存在しないなら/index.phpを処理しなさい。」
ということで、これをnginxでは、以下の1行で実現することができます。try_files
最後のパラメータ(ここでは、/index.php?q=$uri&$args;)以外のパラメータ( ここでは、$uri $uri/)が存在するかどうか確認します。
存在しない場合は、最後のパラメータで指定した処理を実施しなさい。
という意味になります。
$uri
URLのホスト名以降(パラメータ情報を除く)の情報
$args
URLに指定されたパラメータ情報
これで記事のURLがhttps://ドメイン名/スラッグに。
そのスラッグはというと、これまで何もしてこなかったのでグチャグチャ。
本来はポストIDが付与されるようですが、テーマに変換するコードが入っていて統一されていない状態でした。
Google指導は「スラッグはシンプルに。英語で。」らしいので2017年くらいの記事まで手作業で直しました。でもそれ以上はやる気が起きずギブアップ。
実際スラッグは日本語でも実害ないらしので、これからの記事だけ注意することにしました。
旧ドメインの転送
最後の手順です。
新ドメインの構築がおおよそ済んだところで、旧ドメインのアクセスを転送する設定にします。「301リダイレクト」というやつで、「恒久的な移動であることを示すHTTPステータスコード」。これをすることでdolls.tokyoはdolls.orz,hmの正当な移設先であり、過去の評価を引き継ぐことができるそうな。
旧ドメインにRedirectionプラグインを入れ、ルートはまるごと転送にしました。
今後の課題は検索で飛んでくる各記事への直接アクセスです。トップの301リダイレクトを読んでGoogleが全てdolls.tokyoにすげ替えてくれたらいいのだけど・・・。
今構想としてあるのはすべての記事をリスト化し、一対一でリダイレクトする方法。果たしてそんな事ができるのか。今調べ中です。
- 過去:http://dolls.orz.hm/?p=123
- 現在:http://dolls.tokyo/hogehoge-news
スラッグもURLも変わってしまっているから、記事IDかタイトルかでマッチさせてCSVにできればインポートできる・・・かも。
心機一転
以上、色々悩みつつも無事に新しいドメインに移転完了です。
ここ数日はサイトの応答なし報告も来なくなり、やっと落ち着いた気がします。
もし不具合を見つけた方は@guys_dollsまでお知らせください。
今しばらくGoogleの検索結果などにも注視するつもりです。