自分のPCに構築したWordpressのホームページをレンタルサーバーにアップロードする方法を説明します。
【事前準備】
- FTPソフトをインストールします。インストール方法は「https://blog123.tokyo/2017/10/02/filezillaclient_install/」をご参照ください。(xamppインストール時にインストールされるFileZillaServerとは別のソフトになります。)
- 「https://junjun-web.net/tool/search-replace-db-master/」を参考にして、「Search-Replace-DB-master」をというツールを自分のPCのwordpressフォルダに保存します。とりあえずはダウンロードのみ実施してください。(今回のケースでは「C:\xampp\htdocs\wp_ykplantech\Search-Replace-DB-master」に保存しています。)
- FileZillaClientを起動して、レンタルサーバーに接続します。接続後、以下にフォルダ移動します。
【自分のPC】
アップロード対象のwordpressフォルダ(今回は「C:\xampp\htdocs\wp_ykplantech\」)
【サーバ側】
ホームページを公開するドメインのpublic_htmlフォルダ(今回は「/ykplantech.site/public_html」)
- サーバー側のpublic_html以下のファイルを全て削除します。(ちなみにサーバ側にデフォルトで存在しているindex.htmlが残ったままだと、優先して表示されてしまうため、自分で構築したホームページが表示されない。)基本的に自分のPCでWordpressを管理する場合は、正式版ソースコードは自分のPCで管理することになるため、2重管理とならないようにサーバ側のデータファイルは一旦全て削除する必要があります。
※初回アップロードの時は、サーバー側のpublic_html以下のファイルを削除する必要がありますが、2回目以降、同じ構成のファイルをサーバー側にアップロードする場合は、サーバー側のファイル削除は必要ありません。
- ローカルサイト側のファイルを全選択して、ドラッグ&ドロップでリモートサイト側にコピーします。
※もし、失敗した転送がある場合は、「失敗した転送」タブを選択して、失敗したファイルを全選択した状態で、右クリック→「選択されたファイルをリセットして再度キューに入れる」を実行します。そのあと、メニューの「転送」→「キューを処理」を実行して、再転送を実施します。
- エックスサーバーのファイルマネージャにアクセスします。アクセス後、対象ドメインのpublic_html以下に移動します。「.htaccess」を選択し、編集を実行します。
- 編集画面にて、RewriteBaseを「/」、RewirteRuleを「. /index.php [L]」に変更します。(今回のケースではRewriteBaseを「/wp_ykplantech/」から「/」、RewirteRuleを「. /wp_ykplantech/index.php [L]」から「. /index.php [L]」に変更しています。)変更後、画面下に「編集」ボタンがあるため、それを押すと反映されます。
※まれに「編集」ボタンを押しても反映されていない場合があるため、念のため、再度開いて変更されていることを確認しましょう。
- 次に同じフォルダにあるwp-config.php選択し、編集します。(php拡張子の付いていない紛らわしいwp-configというファイルがあるため、気をつけてください)データベースのユーザ名、データベースのパスワード、MySQLのホスト名をサーバで設定されている値に変更します。
- xamppを立ち上げて、MySQLの「Admin」を選択します。phpMyAdminの画面にて、左のツリーから今回バックアップを取得するデータベースを選択し、「エクスポート」タブを選択します。エクスポート画面では「詳細」、「
CREATE DATABASE / USE
コマンドを追加する」を選択し、「実行」します。(残りの項目はデフォルトのままでOK)取得したバックアップはのちほど使用するので、任意の場所に置いておいてください。(今回はykplan_blog123.sqlというファイルを取得しました。)
- エックスサーバーのサーバーパネルを開いて、「MySQL設定」を選択します。
- MySQLデータベース名を自分のPCのデータベース名と同じ名前に設定し、「MySQLの追加」を選択します。選択後の確認画面でも、「MySQLの追加」を選択します。
※既に同名のDBを作成済の場合は、phpMyAdminを起動して、全テーブルを削除しておいてください。
- 続いて、「MySQL一覧」タブを選択し、アクセス権未所有ユーザにて、アクセス権を与えるユーザを選択し、「追加」を選択します。追加後はアクセス権所有ユーザに選択ユーザが追加されます。
※ここでアクセス権を与えるユーザは前段の手順で実施した「wp-config.php」で指定したユーザ名となります。もし、MySQLユーザを追加したい場合は、「MySQLユーザ追加」タブにてユーザを追加後、同じ手順を実施してください。
- サーバ側のphpMyAdminを立ち上げます。左ツリーから対象のDB(ykplan_blog123)を選択して、「インポート」タブ→「アップロードファイル」にて、さきほど取得したsqlバックアップファイルXXXXXX.sql(ykplan_blog123.sql)を選択します。選択後、他項目はデフォルトのまま「実行」を押します。実行後、「インポートは正常に終了しました。」の画面が表示されます。
- 「http://ドメイン名/Search-Replace-DB-master/」にアクセスします。(今回は「https://ykplantech.site/Search-Replace-DB-master/」にアクセス)表示される画面にて、replaceに「localhost/自PCのwordpressフォルダ(今回はwp_ykplantech)」、withに「ドメイン名(今回はykplantech.site)」を設定して、ページ下部の「dry run」を選択します。(replace、withに設定するURLは最後に「/」を付けないでください。DBの中に最後の「/」を付けずにURLが保存されている可能性があるからです。)
- 「dry run」を選択すると、データベースの変更箇所一覧が表示されます。変更箇所一覧が表示されたら、「live run」を選択して、実際に変更を実施します。(「live run」実行時は少し時間がかかります。少しずつ表が更新されるので、完全に表示されるまで待つ必要があります。途中でブラウザを閉じてしまうと不完全に終わります。)
※自PCのWordpressにスマホからアクセス試験を実施していた場合は、一部DBデータの「localhost」の部分が自PCのIPアドレスになっている可能性があります。その場合はReplaceを「自PCのIPアドレス/自PCのwordpressフォルダ」に変更して、もう一度「live run」を実施してください。(私の場合はスマホでも試験を実施しているため、「ykplantech.site」に変更して、「live run」を実施しました。)
※自PCのWordpress環境にスマホからアクセスする方法は「https://blog123.tokyo/2017/10/02/smartphone_localaccess/」をご参照ください。
- 処理が止まったら、「delete me」を選択して、「Search-Replace-DB-master/」フォルダを削除します。
- サイト(今回はhttps://blog123.tokyo/)にアクセスが出来ることが確認出来れば、完了です。
【2017/10/26追記】
「.htaccess」を「wp-config.php」を以下の方法で条件分岐しておけば、サーバ反映時に変更不要となります。
https://blog123.tokyo/2017/10/04/htaccess_wp-config-change/
【2018/07/30追記】
- FTPを使用する際に、プラグインでバックアップしているフォルダはコピーすると時間がかかるため、コピーしない方が早く移行が完了します。(updraftフォルダなど)
- sqlでデータをインポートする際に、「アップロードしようとしたファイルが大きすぎるようです。」のエラーが発生することがあります。その際はこちらを参考にしてインポート可能サイズを拡張しましょう。