Skip to content

サブドメインにWordPressを移行する

前書き

仕事で依頼された、ブログサイトのWordPressをテストサイト(Xserver)から本番サイト(Sakura)のサブドメインとして移行した手順です。

テストサイト
例:https://test.com

本番サイト(https://www.example.com)のサブドメイン
例:https://blog.example.com

手順

  1. ブログサイトのバックアップ
    • WordPressファイル
    • データベース
  2. サブドメインの追加
  3. サブドメインのAレコードの追加
  4. サブドメインのSSLの設置
  5. サブドメインのBasic認証をかける
  6. サブドメインのphpバージョンを指定する
  7. ブログのWPファイルをアップロード
  8. ブログのデータベースをアップロード
  9. 「Better Search Replace」というWPのプラグインで旧URLを一括で更新する

ブログサイトのバックアップ

  • WordPressファイル
    FTPからバックアップを取ります
  • データベース
    phpMyAdminからsqlファイルをエクスポートします

サブドメインの追加

blog.example.com を新規追加します。

左メニューにある ドメイン/SSL > ドメイン/SSL を選択します。
「ドメインを新規追加」ボタンを押します。

「さくらインターネットで取得の独自ドメインを使う」項目にある「サブドメインを指定する」チェックを入れます。サブドメイン名を入力したら「追加」ボタンを押します。

サブドメインの A レコードの追加

今回はドメインもさくらから取っているため、さくらインターネットのドメイン画面にログインします。

該当するドメイン(example.com)の「ゾーン」を選択します。
ゾーン情報画面にある編集を押して、サブドメインのAレコードを追加します:
エントリ名:blog.example.com
タイプ:IPアドレス(A)
データ:(IPアドレス)
DNSチェック:チェックしなくてもいい

サブドメインのSSLの設置

無料SSL(Let’s Encrypt)を設定します。

手順は下記サイトを参考にしてください。
作成したサブドメインに無料の独自SSL設定をする

  1. 左メニューにある ドメイン/SSL > ドメイン/SSL を選択します。
  2. 設定しているドメイン一覧からSSL設定するサブドメインの「SSL」を選択してください。
  3. 「登録設定を始める SSL証明書の種類を選択」をクリックしてください。
  4. 「Let’s Encryptの利用ポリシーに同意する」にチェックを入れ、「Let’s Encrypt (無料SSL)」の「利用する」をクリックします。
  5. これでサブドメインへの無料独自SSLの設定は完了です。

無料SSLについて詳しく知りたい場合、公式サイトからご確認ください:
無料SSLサーバー証明書 Let's Encrypt
無料SSL(Let’s Encrypt)を設定したい
無料SSL(Let’s Encrypt)のよくある質問

サブドメインのBasic認証をかける

移行作業中はBasic認証をかけておいて確認が取れた後に解除します。

※下記の手順は参考サイトから抜粋したもので、詳しい操作画面の画像はサイトからご確認ください。
さくらインターネットでコントロールパネルからベーシック認証を設定する

  1. 左メニューにある Webサイト/データ > ファイルマネージャー を選択します。
  2. 左のツリーからベーシック認証を設定したいフォルダを選択します。
  3. 上部メニューの 表示アドレスへの操作 > アクセス設定 を選択します。
  4. 「パスワード制限」タブで「パスワード制限を使用する」にチェックを入れ、パスワードファイルの編集をクリックします。
  5. ユーザの追加をクリックします。
  6. ベーシック認証で使用するユーザー名とパスワードを入力して、OKをクリックします。

これで一通りの設定ができたので、OKをクリックして設定完了します。
指定したディレクトリにアクセスして、ベーシック認証がかかっていることを確認できればOKです。

.htaccessは以下のような内容で生成されていました。

DirectoryIndex index.html index.htm index.shtml index.php index.cgi
Options -Indexes
AuthUserFile /home/【アカウント名】/www/【選択したフォルダ】/.htpasswd
AuthType Basic
AuthName "Web access"
Require valid-user
Satisfy all
Order deny,allow
DirectoryIndex index.html index.htm index.shtml index.php index.cgi
Options -Indexes
AuthUserFile /home/【アカウント名】/www/【選択したフォルダ】/.htpasswd
AuthType Basic
AuthName "Web access"
Require valid-user
Satisfy all
Order deny,allow

サブドメインのphpバージョンを指定する

ブログサイトと本番サイトとはWordPressのバージョンが違うため、別バージョンのphpを利用する必要があります。

さくらサーバーは管理画面からはドメイン毎のPHPバージョン切り替え設定ができませんが、.htaccessphp.cgiをサーバーにあげることで切り替えられます。
今回はサブドメインごとにphpバージョンを切り替えるので、サブドメインのディレクトリの直下に配置します。(例:/home/example/www/blog.example.com)

手順

.htaccessphp.cgiを作成して、サーバーにあげる

php.cgi

#!/bin/sh
exec /usr/local/php/7.4/bin/php-cgi
#!/bin/sh
exec /usr/local/php/7.4/bin/php-cgi

7.4の部分はphpのバージョンです。利用したいphpのバージョンを自由に変更してください。

.htaccess

Action myphp-script /php.cgi
AddHandler myphp-script .php .html
Action myphp-script /php.cgi
AddHandler myphp-script .php .html

php.cgiのパーミッションを「755」か「705」に変更します。

 

phpバーションの確認

シンプルにサブドメインにindex.phpを作成して、下記のコードを記述したら、確認できます。

php
<?php phpinfo();?>
<?php phpinfo();?>

注意点

  • php.cgiは必ず文字コードを「UTF-8」で、改行コードを「LF」で作成してください
  • cgiファイル名は何でもいいのでphp.cgiとしました。

参考URL

【さくらインターネット】PHPのバージョンをディレクトリごとに変更する
【さくらのレンタルサーバ】PHPバージョンを切り替える方法

WPファイルをアップロード

テストサイトからコピーしたWPファイルをFTPでサブドメインのディレクトリにアップします。

データベースをアップロード

  1. データベースの作成
    左メニューにある Webサイト/データ > データベース を選択します。 「新規追加」を押して、データベース新規作成します。

  2. sqlファイルのインポート
    phpMyAdminにログインしてして新規作成したデータベースにテストサイトからエクスポートしたsqlファイルをインポートします。

WPのプラグイン「Better Search Replace」で旧URLを一括で更新する

旧URLがデータベースに残るので、新しいURLを一括で更新します。

「検索」フィールド:test.com
「次と置換」フィールド:blog.example.com

※「ドライランとして実行する」のチェックを入れたら、変更が加えられないため、事前に結果を確認できます。

完了

確認が取れたら、Basic認証を解除します。