5
5

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

More than 5 years have passed since last update.

ローカルのwordpressをxdomainの無料サーバに移行する!

Last updated at Posted at 2018-05-11

ローカルでwordpressの開発をして、無料のレンタルサーバーに移行するときに苦戦したので、移行の手順をメモしときます。

環境

  • macOS High Sierra
  • ローカルのwordpress環境があります
  • xdomainの無料レンタルサーバの環境をこれから構築します

※この情報は 2018/05/09 現在の情報です。

手順

  1. xdomainのアカウントを作る
  2. レンタルサーバ上で新たにデータベースを作成する
  3. ローカルのwordpressとデータベースを他の場所へコピーする
  4. search replace DBをローカルで実行し、文字列を置換
  5. ローカルのデータベースをエクスポートする
  6. エクスポートしたデータベースの内容を修正
  7. レンタルサーバにデータベースをインポート
  8. ローカルのwp-configを修正する
  9. FileZillaでローカルのwordpressのファイル群をアップロード

個々のステップはそこまで難しいわけではないので、1つずつ確実にやっていきましょう。

1. xdomainのアカウントを作る

まず、xdomainのアカウントを以下から作成します。
無料レンタルサーバー新規お申し込み | ドメイン取得&無料レンタルサーバー Xdomain(エックスドメイン)

アカウントを作ってログインできたら、左側の項目の「無料レンタルサーバー」をクリックします。

スクリーンショット 2018-05-09 9.09.47.png

次に、サーバーIDを入力します。サーバーIDはサイトのドメインの一部になるので、よく考えて付けましょう。
サーバーIDを「hogehoge」とした場合、初期ドメインは、「hogehoge.php.xdomain.jp」のようになります。

サーバーIDについては以下参照。
会員IDとサーバーID

サーバーIDの設定が終わって、再び左側のメニューの「無料レンタルサーバー」をクリックすると、以下のような画面に変わっていると思います。

スクリーンショット 2018-05-09 9.24.48.png

3つ選択肢がありますが、今回はローカルのwordpressをレンタルサーバーに持ってくるので、真ん中の項目の「PHP・MySQLサーバー」を使います。

「利用を開始する」を押すと、初期設定が完了します。もう一度「無料レンタルサーバー」に戻ると、「管理パネルログイン」というボタンがでできますので、それをクリックしましょう。

スクリーンショット 2018-05-09 9.31.33.png

2. レンタルサーバ上で新たにデータベースを作成する

管理パネルにログインできましたら、新規にデータベースを作成します。
以下の画面が出ていると思うので、「データベース」の項目の「MySQLの設定」をクリックします。

スクリーンショット 2018-05-09 9.33.34.png

MySQLの追加

次に上のメニューから、「MySQLの追加」を選択して、新しいデータベースをサーバ上に作ります。

スクリーンショット 2018-05-09 9.42.51.png

※ データベース名についてですが、アンダーバーは使用できないようですので、英数字だけで構成するようにしましょう。
文字コードはUTF8で構いません。

MySQLユーザーの追加

続いてMySQLにログインできるユーザーを追加します。上のメニューの「MySQLユーザー設定」をクリックして、任意のユーザー名を入力しましょう。

※データベースユーザ名は合計16文字以内

データベース名などをメモしておく

ここで設定したものは、後でwp-configを編集する時に必要となりますので、以下の画面から確認してどこかにメモしておきましょう。

メモが必要なもの

  1. データベース名
  2. データベースユーザー名
  3. データベースユーザーのパスワード
  4. MySQLのホスト名
スクリーンショット 2018-05-09 10.12.38.png

※データベース名はサーバーIDとアンダーバーを含めた文字列ですので注意してください。ユーザー名も同様です。

3. 先にローカルのwordpressとデータベースを他の場所へコピーする。

次はローカルでの作業です。
データのバックアップも含めて、wordpressとデータベースをコピーしていきます。

ローカルのwordpressを別の場所へコピー

まず、wordpressのデータを、MAMPのhtdocs内の他の場所にフォルダごとコピーしましょう。なぜMAMPのhtdocsn内かというと、次のステップでphpのスクリプトを実行する必要があるためです。
また、後からwp-configも書き換えるので、間違えて元々のファイルを編集しないように違う場所にコピーしましょう。

ローカルのデータベースをphpmyadminでコピー

localhost:8888/phpmyadminのように、phpmyadminにアクセスして、データベースを複製しておきましょう。

まず、以下の画面で、左側の項目からコピーするデータベースを選択します。

スクリーンショット 2018-05-09 7.13.19.png

選択したら、上の項目の「操作」を選択します。

スクリーンショット 2018-05-09 7.15.04.png

次に、下の方にある「copy database to」でデータベースを複製します。ここで注意したいのが以下の2点です。

  • 「構造とデータ」の両方をコピーする必要がある
  • データベース名は、レンタルサーバで新規に作ったデータベース名と同じにする
スクリーンショット 2018-05-09 10.46.37.png

4. search replace DBをローカルで実行し、文字列を置換

次に、localhost:ポート番号という文字列をレンタルサーバーのドメイン名に置換します。これをしないとページが表示されなくなってしまいます。
データベース内の文字列を正しく置換するために、Search Replace DBというphpのスクリプトを使います。

まずSearch Replace DBをダウンロードしてください。

ダウンロードしたら、wordpressのフォルダ内に入れます。

スクリーンショット 2018-05-10 20.50.56.png

そして以下のようなURLにブラウザからアクセスします。

http://localhost:ポート番号/(フォルダ名)/Search-Replace-DB-master/

すると以下のような画面が出てきます。データベースユーザーやパスワードはすでに表示されていると思います。

スクリーンショット 2018-05-10 20.54.48.png

注意点として、置換するデータベースはコピーしたデータベース名を入力してください。恐らく何も変更しないと元のデータベースが書き換えられてしまいます。

次に置換する文字列ですが、まず、「localhost:ポート番号/(フォルダ名)」から「レンタルサーバーのドメイン名」に置換します。

ドメイン名の確認方法は、「ドメイン設定」から以下のように確認できます。

スクリーンショット 2018-05-09 11.40.05.png

ここで注意ですが、http://と末尾のスラッシュはつけないでください
以下参照です。
WordPress移行時にURLをSQLで直接一括置換はダメ! 「Search and Replace for WordPress Databases Script」を使おう

入力ができたら、まず「dry run」で試しに実行してから「live run」で本当に書き換えをします。(live runをやってしまったら元には戻せません。)

スクリーンショット 2018-05-10 21.13.04.png

live runが実行し終われば、置換が完了です。

5. ローカルのデータベースをエクスポートする

続いて、編集したデータベースをエクスポートしましょう。phpmyadminから、コピーしたデータベースを選択してそれから上のメニューのエクスポートをクリックします。

スクリーンショット 2018-05-09 12.00.11.png

するとエクスポートの設定の画面が開かれます。ここではエクスポートの設定を細かく指定したいので、Export Methodのところは、「詳細」を選択します。

スクリーンショット 2018-05-09 12.03.39.png

出力のところは、「出力をファイルに保存する」を選択してください。

スクリーンショット 2018-05-09 12.03.56.png

次の設定が最も注意するべき設定です!!
「他のデータベースシステムまたは古い MySQL サーバとの互換性:」のところを「NONE」から「MYSQL40」に変更してください。これをしないと、レンタルサーバーのデータベースにインポートしようとした時に、「Unknown collation: 'utf8_unicode_ci'」のようなエラーが出ます。

スクリーンショット 2018-05-09 14.00.04.png

その他の設定はこのような感じです。

スクリーンショット 2018-05-09 12.04.11.png スクリーンショット 2018-05-09 12.04.24.png

あとは一番下の「実行」を押せば、無事エクスポートできたと思います。

6. エクスポートしたデータベースの内容を修正

エクスポートしたデータベースのこのままアップロードしてもいいのですが、恐らく以下のエラーになると思います。

スクリーンショット 2018-05-09 12.26.59.png

このエラーを回避するために、エクスポートしたデータベース中の「utf8mb4」という文字列を「utf8」に置換する必要があります。

エディタもしくはプログラムでその文字列を一括置換してあげましょう。
私はrubyを使って置換しました。(面倒だったので一行で書きました。。)

File.write("書き込むファイル.sql",File.read("読み込むファイル.sql").gsub("utf8mb4","utf8"))

ちなみにアップロードするときはファイル名はあまり考慮しなくていいので、適当な名前のファイルにしても大丈夫です。

7. レンタルサーバにデータベースをインポート

データベースの設定から、phpmyadminを開きます。

スクリーンショット 2018-05-09 12.14.21.png

次にデータベースを選択します。先ほどレンタルサーバー上で作ったデータベースをクリックします。

(※もしも、同じMySQLホスト名を複数使っている場合は、一回phpmyadminをログアウトする必要があります。)

スクリーンショット 2018-05-09 12.41.03.png

次に、上のメニューから「インポート」を選択します。

次の画面に行ったら、インポートするファイルを選択して、実行をクリックします。

スクリーンショット 2018-05-09 23.10.22.png

ここで注意したいのは、SQL互換モードをMySQL40にすることです!

これでインポートすれば、正常にインポートされるはずです。

8. ローカルのwp-configを修正する

wordpressからMySQLにアクセスできるように、ローカルのwp-config.phpを編集します。

データベース名などをメモしておく
のところでメモした4つの項目を以下のところに入れていきましょう。

/** WordPress のためのデータベース名 */
define('DB_NAME', 'xxxx_yyy');

/** MySQL データベースのユーザー名 */
define('DB_USER', 'xxx_zzzz');

/** MySQL データベースのパスワード */
define('DB_PASSWORD', 'oooooooo');

/** MySQL のホスト名 */
define('DB_HOST', 'mysql1.php.xdomain.ne.jp');

9. FileZillaでローカルのwordpressのファイル群をアップロード

最後に、ローカルのwordpressをレンタルサーバーにアップロードします。

レンタルサーバーのFTPの情報を確認する

レンタルサーバー内の左側のメニューにある、「FTPアカウント設定」をクリックします。
ここで、FTPにアクセスするために、FTPパスワードを設定する必要があるので、「編集」のボタンをクリックしてFTPパスワードを設定してください。

スクリーンショット 2018-05-10 7.37.55.png

なお、次のステップで以下の3つの情報を使うので、メモしておきましょう。

  1. FTPホスト
  2. FTPユーザー(アカウント名)
  3. FTPパスワード
スクリーンショット 2018-05-10 7.37.55--2.png

FileZillaのインストールと接続設定

パスワードが設定できたら、次は、ファイルを転送するためにFileZillaをローカルにインストールします。
以下のページからダウンロードしてください。
FileZilla - The free FTP solution

FileZillaをインストールして起動します。

次に、「ファイル」>「サイトマネージャー」をクリックするとウィンドウが表示されます。

スクリーンショット 2018-05-10 7.58.14.png

左の方にあるボタンの「新しいサイト」をクリックして、接続するFTPサーバーの情報を入力していきます。前のステップでメモした3つの項目をここに入力していきましょう。
また、「ログオンの種類」は「通常」を選択しましょう。

スクリーンショット 2018-05-10 9.25.07.png

これでレンタルサーバーに接続できたと思います。

ローカルのwordpressをアップロード

アップロードする前に、レンタルサーバー内にある「default_page.png」と「index.html」を削除しましょう。この操作はFileZilla内でできます。

スクリーンショット 2018-05-10 9.38.01.png

あとはローカルのwordpressをレンタルサーバー内にコピーしましょう。ローカルのwordpressのファイルを選択して、レンタルサーバーの方へドラック&ドロップします。ここで注意したいのが、「search replace DB master」フォルダは絶対にアップロードしないということです。これをアップロードしてしまうと、他の人にデータベースの内容を書き換えられてしまう恐れがあるので、絶対にアップロードしないように気をつけましょう。

(ちなみに.DS_Storeもアップロードする必要はないですね。)

スクリーンショット 2018-05-10 9.39.38.png

これでデータの移行が全て完了です!

ページを表示してみる

ページのドメインは、先ほど説明したように、ドメインの設定から見れます。

スクリーンショット 2018-05-09 11.40.05.png

このドメインにアクセスすれば、正しくページが表示されるはずです!

参考

あとがき

色々とググったり試行錯誤してやっとできました。上手くページが表示された時は、よっしゃ!って感じで嬉しかったです。次は、dockerでwordpressを使うのとかやってみたいです。

5
5
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
5
5

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?