見出し画像

LOCAL環境で作成したwordpressサイトをプラグインを使わずに本番環境へ移行する方法

ポートフォリオサイトをLOCAL環境で構築したので、本番サイトに移行する際にこれまではいつもプラグインを使って移行を行っていたのだけど、プラグインを使わない・もしくは使えない環境での正規移行方法についても一度は経験しておく必要があると考え、その手順を記録していこうと思う。無事に移行が出来るのであろうか?

■現状について
・移行元:LOCALでwordpressサイトの構築が完了(SSL化も完了)した状態
・移行先:エックスサーバーにからのwordpressを簡単インストールでインストールした状態。(SSL化も完了させておく)


①まずは移行元(LOCAL)と移行先(エックスサーバー)のwordpressサイトのバックアップを取得しておく

移行元(LOCAL)のwordpressにプラグインの『All-in-One WP Migration』を入れて、サイトのバックアップを取得する。

サイトのバックアップが完了したら、念のため自分のPC上にエクスポートしておく。(念のためである。)


移行先側のwordpressのバックアップも念のため取得しておく。
エックスサーバーの管理画面で、手動バックアップで対象ドメインのデータのバックアップを取っておく。ファイルとデータベースでそれぞれバックアップを取っておく。



移行元サイト(LOCAL)データのダウンロード

次に移行元のLOCALから、wordpressの構成ファイルを全てダウンロードする。Localのダッシュボード画面の『Go to folder』をクリックする。

フォルダが開いたら、『app』を開く。

appを開くと、次の画面で『public』というフォルダがある。こちらの中にwordpressの構成ファイルが入っているので、こちらのpublicフォルダを丸っとコピーして、デスクトップ等分かり易い場所に複製する。

publicの中身はコチラ、index.phpとか、その他のフォルダ・ファイルが入っている⤵⤵

デスクトップ上に、サイト移行用のデータを格納するフォルダを作ってその中にpublicフォルダごとコピペしてしまうのが良い。


ローカルDBからsqlデータをエクスポート


次にローカルのSQLからデータベースの情報をエクスポートする。まずはローカルを立ち上げ、エクスポートしたいwordpressを選択した状態で、真ん中のタブで『Database』を選び、『Open AdminerEvo』を押す。


そうすると、以下のページが立ち上がる

左側のエクスポートを選ぶ。

画面が切り替わったら、下記項目をチェックしてエクスポートボタンを押す。通常はデフォルトのままエクスポートできる。

出力:保存
形式:SQL
データベース:ルーチン・イベント
テーブル:DROP+CREATE・トリガー
データ:INSERT

以下の様にダウンロードする。

以上でデータベースの情報のエクスポートは完了



移行元のwp-config.phpのデータベース情報の書き換え

移行元のファイルをダウンロードしたら、そのファイルの中から『wp-config.php』を探して開き、データベース情報を、これから移行する移行先(エックスサーバー)のデータベース情報に書き換えます。

移行先のデータベース情報は、エックスサーバーであれば、wordpressのインストール画面で見れます。

※Database hostnameの値が分からない場合は、エックスサーバーの場合は常に同じ値が入るので、他のwordpressサイトのwp-config.phpを参照に正しい値を入れると良い。


構成ファイルのアップロード(移行先)

移行先のサーバーにサイトwordpressの構成ファイルをアップロードします。

※ファイルの移行の手順について※
ファイル以降の際は必ずバックアップを取ってから作業に取り掛かってください。移行するファイルは基本的に『wp-content』だけ。

  1. wp-content フォルダ:

    • 移行元の wp-content フォルダの内容を移行先にアップロードします。

    • テーマ、プラグイン、アップロードされたメディアファイルが含まれます。

    • 移行先の既存の wp-content フォルダの内容は上書きしても構いませんが、念のためバックアップを取っておくことをお勧めします。

  2. wp-admin フォルダ:

    • 通常、wp-admin フォルダの内容は移行する必要はありません。

    • WordPress のコアファイルの一部であり、バージョンごとに異なる可能性があるため、移行先の既存のファイルをそのまま使用します。

  3. wp-includes フォルダ:

    • wp-admin フォルダと同様に、通常は移行する必要はありません。

    • これも WordPress のコアファイルの一部であり、移行先の既存のファイルをそのまま使用します。

  4. ルートディレクトリのファイル:

    • index.php, wp-config.php, .htaccess などのファイルがあります。

    • wp-config.php は移行先のデータベース設定に合わせて編集する必要があるため、移行しないでください。

    • その他のファイル(index.php など)は、カスタマイズしていない限り移行する必要はありません。


『wp-content』ファイル移行

まずは、FTPソフトを使って、移行先の『wp-content』フォルダに、移行元のwp-contentのデータを移行する。

今回は移行先のwp-contentデータを先に全部消した後に、移行元のwp-contentデータを移行した。
※FTP使うこ時はなるべくドラッグアンドドロップでの操作は避ける。
間違って、余計なファイルを消してしまったり、複製してしまったりするため!!

※※アップロードは結構時間がかかるので、焦らないように!!
※※アップロードを続けていると、ファイルを上書きするか聞かれるが、基本的に新しくアップロードするファイルの方が新しければそのまま上書きをしてしまって問題ない。


wp-config.phpファイルの移行

wp-contentのファイルの移行が完了したら、次は先ほどデータベースの情報を移行先のエックスサーバーの物に更新した、移行元の『wp-config.php』ファイルの移行を行います。こちらも移行先のファイルは不要になるので、削除していいのですが、念のため移行先のwp-config.phpはバックアップとしてダウンロードしておきます。

ファイルの場所は、wp-contentsの一つ上の階層にあります。


※wp-config.phpを移行したら、パーミッションを600→644に更新する。更新時にちょっと時間がかかるが気にしない。


※ちなみに、パーミッションの600と644の違いは以下の様です。

wp-config.phpファイルのパーミッションについて、600と644の違いを説明します:600のパーミッション:
所有者: 読み取りと書き込み可能
グループ: アクセス不可
その他: アクセス不可
644のパーミッション:
所有者: 読み取りと書き込み可能
グループ: 読み取りのみ可能
その他: 読み取りのみ可能


主な違い:600は非常に制限的で、所有者以外はファイルにアクセスできません。
644は所有者以外にも読み取り権限を与えますが、書き込みは所有者のみに制限されます。


セキュリティの観点:600は最も安全ですが、一部のサーバー設定では問題が生じる可能性があります。
644は一般的に推奨され、多くのWordPressインストールで使用されています。


選択の基準:サーバーの設定と要件に応じて選択します。
600で問題が発生する場合は644に変更してみてください。
644でも十分なセキュリティを提供しつつ、必要な機能性を確保できます。


結論:
wp-config.phpファイルには重要な情報が含まれているため、可能な限り制限的なパーミッションを使用することが望ましいですが、サーバーの要件とサイトの機能性とのバランスを取ることが重要です。600で問題がなければそのままで構いませんが、問題が発生する場合は644に変更することを検討してください。


データベースのインポート

続いてデータベースの移行を行っていく。
移行先のエックスサーバーの管理画面から、※を立ち上げます。
※phpMyAdminに入る際のログイン情報は、MySQLユーザー名、
MySQLパスワード を使うので、メモ帳にメモっておくこと

管理画面にログインが出来たら、該当するデータベースを選択する。

移行を始める前に、移行先のデータベースのバックアップを取っておく。

続いて、移行元のデータベースをインポートしていきます。

移行元のLOCAL環境からダウンロードした、sqlファイルを選択してインポートを押します。

インポートが無事に完了すると、インポートが完了したというコメントが出てきます。


【2024/8/1追記】逆パターンの場合(本番環境→LOCAL環境)

逆パターンで、本番環境からLOCAL環境に移行する際、基本的な手順は同じだが、データベースそのままインポートするとエラーが出やすい。そのため一度LOCAL環境のデフォルトのデータベースを一度削除して、再度「local」という名まえのデータベースを作ってから、データベースのインポートを行ったところ問題なくインポートが出来ました。



※これで無事に本番環境のデータベースの移行が完了です。データベースの移行が完成したら、サイトURLの移行を行います。※データベースのオプションのサイトURLの変更をしないと、LOCAL環境のwordpressに接続できません。



サイトURLの更新

データベース内のサイトURLを新しいURLに更新します。これを行わないと、サイトが正しく表示されない場合がある。

方法1: phpMyAdminを使用する

  1. phpMyAdminにログインし、インポートしたデータベースを選択します。

  2. wp_options テーブルを開きます。

  3. option_name が siteurl と home の2つのレコードを見つけます。

  4. それぞれの option_value を新しいサイトURL(例:https://your-new-domain.com)に更新します。


  1. wp_options テーブルを開く

2.option_name が siteurl と homeの二つのURLを、移行先のドメインのURLに変更する。

データベースのURLの更新が完了したら、wordpressの管理画面にログインが出来るか確認します。
※この時点でどこかが間違っていると、以下の画面の様にエラーになり、入れません。


上記の様なエラーが出た場合は、大抵はデータベースの情報の記入間違いが主な原因だと思うので、そちらを修正すればログインできるようになると思います。また、データベースを更新すると以下の様な画面が出てくるので、この画面が出てきたら、データベースの更新ボタンを押します。

更新が完了すると以下の画面に代わります。続行を押します。

上記の更新が完了すると、ログイン画面になりますので、ユーザー情報を入れてログインします。

 パーマリンク設定の更新

  1. WordPressの管理画面にログインします。

  2. 「設定」→「パーマリンク設定」に移動します。

  3. 設定を変更せずに「変更を保存」をクリックし、パーマリンク構造を再生成します。

wordpressにログインが出来たら、パーマリンクの確認をします。

プラグインと設定の確認

  1. 必要なプラグインが有効化されているか確認します。

  2. テーマの設定や各種オプションを確認します。

次にプラグインの確認を行います。


サイトの表示崩れ等が無いか確認

  1. サイト全体の動作を確認し、問題があれば修正します。

  2. リンク、画像、機能が正しく動作しているか確認します。


ここまでで、問題なく表示されているようでしたら移行が完了です。
お疲れさまでした!!




この記事が気に入ったらサポートをしてみませんか?