PowerCMS X ブログ
2022-01-25
やさしい日本語の情報をやさしい日本語で発信するオウンドメディア「やさにちウォッチ アイコン別ウィンドウで開きます」のURLを https://tsutaeru.cloud/watch/ から https://watch.tsutaeru.cloud/ アイコン別ウィンドウで開きます へ変更しました。
やさにちウォッチは PowerCMS Xで運用されています。同一サーバー内での移行作業でしたが、ドメイン変更だけではなく、パスの変更も伴う作業となりましたので、環境移行や設定変更の手順のチェックリスト的にこの記事にてまとめておくことにします。
サブドメイン watch.tsutaeru.cloudをDNS設定して、Apacheのバーチャルホスト設定を追加します。今回、(自動生成された音声ファイルや字幕用ファイルなどがCMSのアセット管理されていないため)ファイルの移動をしたくなかったので、ドキュメントルートをこれまでの /watch/ ディレクトリに設定しました。
<VirtualHost *:80>
ServerName watch.tsutaeru.cloud
DocumentRoot /tsutaeru-website/html/watch
RewriteEngine On
<Directory /tsutaeru-website/html/watch>
Require all granted
AllowOverride All
</Directory>
</VirtualHost>
何はともあれ、バックアップが重要です。問題が発生したときの切り戻し手順を検討しておくこともお忘れなく。バックアップ対象は下記2点です。
PowerCMS X では、アップロードファイルを含むすべてのデータをデータベース管理していますので、移行後に再パブリッシュすればそれで済むのですが、今回はパスの変更を伴いますので、何かあった時に戻せるようにバックアップを行ってから作業を行いました。
テンプレート・タグで出力されている URLは設定変更後の再構築で正しく置き換えられますが、リッチテキストエディタに貼り付けられたサイト内のリンクやビューに直に書かれた「/watch/」URLは置き換えられません。移行作業の間にリンク切れを起こさないようにするために、これらを相対パスに変換します。一覧画面で検索後にアクション「置換」機能を使うと便利です。相対パスにすることで、どちらのURLでアクセスしてもリンクが切れなくなります。
PowerCMS X のスペースの設定で「サイトURL」と「ドキュメントルート」「プレビュー URL」を変更します。サイトURLを変更した時、URLオブジェクト(urlinfoテーブルのレコード)は自動的に置き換えられます。注意点としては(PowerCMSとの違い)「サイト・パス」を置き換えたときはデータベースのレコードが置換されるだけでなく、実際のファイルも移動してしまう点です。今回はサイト・パスの変更は行いませんでした(※ 環境変数「reset_url_method」に「copy」を指定するとファイル移動ではなくコピーとなります。初期値は「rename」です)。
変更後にURLオブジェクトの置換が正しくできていることを確認してから、サイト全体を再構築して、新しいURLにて表示と動作の確認を行います。
表示と動作の確認ができたら、Apacheにて恒久的リダイレクト(301リダイレクト)の設定を行います。適切に設定することで、検索エンジンの評価などをそのまま引き継ぐことができ、外部からリンクされている場合にもリンク切れを起こさなくて済みます。尚、再構築してからこの設定を行うまでの間、新URLでのアクセスについては一部の表示崩れが出ます(今回はその前提で移行を行いました)。
RewriteRule ^/watch/(.*)$ https://watch.tsutaeru.cloud/$1 [L,R=permanent]
やさにちウォッチでは、アクセスランキングの構築用に AccessAnalyticsプラグインによるアクセストラッキングを行っています。この機能で保存される mt_activity テーブルのデータには、アクセスされたURLがそのまま入っているため、この部分については設定変更や再構築で置き換わりません。この部分については、SQLによってデータの置換を行いました。
mysql> UPDATE mt_activity SET activity_url = REPLACE( activity_url, "https://tsutaeru.cloud/watch/", "https://watch.tsutaeru.cloud/" ) WHERE activity_workspace_id = 5;
※ どのように設定、分析されているかはサイトごとにそれぞれ違いますし、正解があるものではありません。上記は今回の例となります。
SNSアカウントなどに設定しているURLを変更しました。
以上が実際の作業手順で、およそ1.5時間程度で完了しましたが、残念ながら想定しきれていなかった手順がありました。後学のために記しておきます。
やさにちウォッチではUDデジタル教科書体を利用しています。サブドメインではありますが、ドメインが変更されたものとされ、Webフォントが有効にならなくなりましたので、設定を変更しました。
AccessAnalyticsプラグインによるアクセストラッキングプログラムを Ajaxで読み込んでいますが、こちらもドメインが変更されたことによって、ブロックされていました。トラッキングのURLは <mt:accesstracking /> タグで出力されますが、このURLはプラグイン設定で変更できます。こちらも変更して再構築することでエラーにならなくなり、正常に取得できるようになりました。