[Server & Network General] 新生さくらのレンタルサーバへ WordPress を引っ越すための手順 (3)
つづき。
Contents
データベース内で保存されている URL の書き換え
ドメインやインストールパスの変更がある場合に行う。
データベース内にデータとして書き込まれている URL を移行先にあわせて書き換える。
例えば以下の通り。
- HTTPS対応に伴い、データ内のURLを書き換える。
http://www.example.com
をhttps://www.example.com
に置換する。
- WordPress インストールパスの変更を行う(画像などがインストールパス配下の wp-content を参照している)。
https://www.example.com/wordpress
を移行先のパスへ置換する。
その昔は「ダウンロードしたsqlをエディタで開いて(あるいはphpMyAdmin上で)URLを検索置換」という方法が推奨されていましたが、Codexから記載が削除されたとおり、現在ではおすすめされる方法ではありません。 その理由が 「データベース内で保存されている内容がシリアライズされている可能性」 があるからです。
http -> https
wp
コマンドは wp-config.php
のあるディレクトリで実行する。
格納されている値を確認してみる。
$ wp db search 'http://www.example.com' | less
http -> https に書き換える。
$ wp search-replace 'http://www.example.com' 'https://www.example.com'
+-----------------------+-----------------------+--------------+------+
| Table | Column | Replacements | Type |
+-----------------------+-----------------------+--------------+------+
| wp111111commentmeta | meta_key | 0 | SQL |
| wp111111commentmeta | meta_value | 0 | SQL |
| wp111111comments | comment_author | 0 | SQL |
| wp111111comments | comment_author_email | 0 | SQL |
| wp111111comments | comment_author_url | 104 | SQL |
| wp111111comments | comment_author_IP | 0 | SQL |
| wp111111comments | comment_content | 1 | SQL |
| wp111111comments | comment_approved | 0 | SQL |
| wp111111comments | comment_agent | 0 | SQL |
| wp111111comments | comment_type | 0 | SQL |
| wp111111links | link_url | 0 | SQL |
| wp111111links | link_name | 0 | SQL |
| wp111111links | link_image | 0 | SQL |
| wp111111links | link_target | 0 | SQL |
| wp111111links | link_description | 0 | SQL |
| wp111111links | link_visible | 0 | SQL |
| wp111111links | link_rel | 0 | SQL |
| wp111111links | link_notes | 0 | SQL |
| wp111111links | link_rss | 0 | SQL |
| wp111111options | option_name | 0 | SQL |
| wp111111options | option_value | 0 | PHP |
| wp111111options | autoload | 0 | SQL |
| wp111111postmeta | meta_key | 0 | SQL |
| wp111111postmeta | meta_value | 282 | PHP |
| wp111111posts | post_content | 397 | SQL |
| wp111111posts | post_title | 0 | SQL |
| wp111111posts | post_excerpt | 0 | SQL |
| wp111111posts | post_status | 0 | SQL |
| wp111111posts | comment_status | 0 | SQL |
| wp111111posts | ping_status | 0 | SQL |
| wp111111posts | post_password | 0 | SQL |
| wp111111posts | post_name | 0 | SQL |
| wp111111posts | to_ping | 0 | SQL |
| wp111111posts | pinged | 0 | SQL |
| wp111111posts | post_content_filtered | 0 | SQL |
| wp111111posts | guid | 789 | SQL |
| wp111111posts | post_type | 0 | SQL |
| wp111111posts | post_mime_type | 0 | SQL |
| wp111111term_taxonomy | taxonomy | 0 | SQL |
| wp111111term_taxonomy | description | 0 | SQL |
| wp111111termmeta | meta_key | 0 | SQL |
| wp111111termmeta | meta_value | 0 | SQL |
| wp111111terms | name | 0 | SQL |
| wp111111terms | slug | 0 | SQL |
| wp111111usermeta | meta_key | 0 | SQL |
| wp111111usermeta | meta_value | 0 | PHP |
| wp111111users | user_login | 0 | SQL |
| wp111111users | user_nicename | 0 | SQL |
| wp111111users | user_email | 0 | SQL |
| wp111111users | user_url | 0 | SQL |
| wp111111users | user_activation_key | 0 | SQL |
| wp111111users | display_name | 0 | SQL |
+-----------------------+-----------------------+--------------+------+
Success: Made 1573 replacements.
stg -> www
格納されている値を確認してみる。
$ wp db search 'stg.example.com' | less
本番化に向けて stg -> www に書き換える。
$ wp search-replace 'stg.example.com' 'www.example.com'
+-----------------------+-----------------------+--------------+------+
| Table | Column | Replacements | Type |
+-----------------------+-----------------------+--------------+------+
| wp111111commentmeta | meta_key | 0 | SQL |
| wp111111commentmeta | meta_value | 0 | SQL |
| wp111111comments | comment_author | 0 | SQL |
| wp111111comments | comment_author_email | 0 | SQL |
| wp111111comments | comment_author_url | 0 | SQL |
| wp111111comments | comment_author_IP | 0 | SQL |
| wp111111comments | comment_content | 0 | SQL |
| wp111111comments | comment_approved | 0 | SQL |
| wp111111comments | comment_agent | 0 | SQL |
| wp111111comments | comment_type | 0 | SQL |
| wp111111links | link_url | 0 | SQL |
| wp111111links | link_name | 0 | SQL |
| wp111111links | link_image | 0 | SQL |
| wp111111links | link_target | 0 | SQL |
| wp111111links | link_description | 0 | SQL |
| wp111111links | link_visible | 0 | SQL |
| wp111111links | link_rel | 0 | SQL |
| wp111111links | link_notes | 0 | SQL |
| wp111111links | link_rss | 0 | SQL |
| wp111111options | option_name | 0 | SQL |
| wp111111options | option_value | 4 | PHP |
| wp111111options | autoload | 0 | SQL |
| wp111111postmeta | meta_key | 0 | SQL |
| wp111111postmeta | meta_value | 0 | PHP |
| wp111111posts | post_content | 59 | SQL |
| wp111111posts | post_title | 0 | SQL |
| wp111111posts | post_excerpt | 0 | SQL |
| wp111111posts | post_status | 0 | SQL |
| wp111111posts | comment_status | 0 | SQL |
| wp111111posts | ping_status | 0 | SQL |
| wp111111posts | post_password | 0 | SQL |
| wp111111posts | post_name | 0 | SQL |
| wp111111posts | to_ping | 0 | SQL |
| wp111111posts | pinged | 0 | SQL |
| wp111111posts | post_content_filtered | 0 | SQL |
| wp111111posts | guid | 137 | SQL |
| wp111111posts | post_type | 0 | SQL |
| wp111111posts | post_mime_type | 0 | SQL |
| wp111111term_taxonomy | taxonomy | 0 | SQL |
| wp111111term_taxonomy | description | 0 | SQL |
| wp111111termmeta | meta_key | 0 | SQL |
| wp111111termmeta | meta_value | 0 | SQL |
| wp111111terms | name | 0 | SQL |
| wp111111terms | slug | 0 | SQL |
| wp111111usermeta | meta_key | 0 | SQL |
| wp111111usermeta | meta_value | 0 | PHP |
| wp111111users | user_login | 0 | SQL |
| wp111111users | user_nicename | 0 | SQL |
| wp111111users | user_email | 0 | SQL |
| wp111111users | user_url | 0 | SQL |
| wp111111users | user_activation_key | 0 | SQL |
| wp111111users | display_name | 0 | SQL |
+-----------------------+-----------------------+--------------+------+
Success: Made 200 replacements.
本番化
Basic 認証の解除
認証を解除する。
WordPress 設定の変更
本番運用ドメインに siteurl
と home
を書き換える。
$ wp option update siteurl 'https://www.example.com/wordpress'
$ wp option update home 'https://www.example.com/wordpress'
ドメイン/SSL設定
さくらのコントロールパネルで作業する。
ドメインと DNS は他社のサービスで管理している。
(新規の開設であれば、以降の手順で完了するはず)
「新しいドメインの追加 > 他社で取得したドメインを移管せずに使う > 他社で取得された独自ドメインのサブドメインを追加」を選択する。
example.com
「ドメイン詳細設定」を行う。
- 「マルチドメインとして使用する(推奨)」を選択する。
- 「マルチドメインの対象のフォルダをご指定ください」に
com.example.www
を設定する。 - 「SSLの利用をお選びください」は「共有SSL、SNI SSLを利用しない」としておく。
また、必要に応じて stg.example.com
の設定は、変更か削除する。
コントロールパネルに戻り、「ドメイン/SSL設定」の一覧より「SSL証明書 > 登録」を選択する。
ステージング用に「無料SSL証明書」を設定する。
DNS の切り替え
他社の DNS 管理サービスでの作業
- サブドメイン
www
の A レコードに「新しいさくらのレンタルサーバの IP アドレス」を登録する。
以上で終了。
なのだが、今回の「旧さくらのレンタルサーバから新生さくらのレンタルサーバへの移行」にあたって、以下の点について苦労したので投稿を分ける。
- 「ドメイン/SSL設定」に旧サーバと同じサブドメイン設定を行うと「指定されたドメイン名は登録されています」というエラーが発生する。
- 「ドメイン/SSL設定」で「DNS の切り替え」前に「SNI SSL」の設定・有効化ができない。
ToDo
次稿に譲る。
- 「ドメイン/SSL設定」に旧サーバと同じサブドメイン設定を行うと「指定されたドメイン名は登録されています」というエラーが発生する。
- 「ドメイン/SSL設定」で「DNS の切り替え」前に「SNI SSL」の設定・有効化ができない。
ここまでの積み残しは以下の通り。
- 「Webアプリケーションファイアウォール」の設定を保留。
- 「バックアップ & ステージング」の設定を保留。
確認
- WXR のインポート で改行が詰められてしまうので markdown が壊れた。
- カテゴリの親子関係が壊れた(ex. WordPress > WordPress の親と子がマージされ子がなくなった)。
つづく。