WordPressのサーバ移行 (2)
WordPressのサーバを移行するため、データベース移行を実施しました。
WordPressの移行
ファイルの展開
データベースの移行が終わりましたので、その他のファイルをアップロードします。
使用するツールは、WinSCP。定番ですね。
http://club-cavalier.com のルートにあたる、/home/XXXX(登録ID)/club-cavalier.com/public_html/ に、ファイルバックアップから展開したファイルを、すべてアップロードします。
パーミッションの設定は、ひとまずは初期のままで良いかと思います。phpファイルなどは、604、ディレクトリは 705になっています。
変更が必要なもの
ここまでで、ファイルに関しては一通りの準備が出来ましたが、明らかに設定変更が必要な個所があります。
それは、「データベース名とデータベースユーザ名、パスワードが変わっている」ことをWordPressに認識させないと起動するはずがない、ということです。
そのために変更が必要なファイルが、ルートにある wp-config.php ファイルです。
DB_NAME = バックアップから展開済みのデータベース名です。
DB_USER = 作成したデータベースユーザ名です。
DB_PASSWORD = ユーザ名に紐づけられたパスワードです。平文での記載になります。
DB_HOST = localhost のままで良いホストもあるようですが、
上部の「サーバ:XXXX」にある XXXX 部分を記載しておくのが無難なのかと思います。public_html のあるサーバとデータベースのサーバが異なるなら必須ですね。
上記の変更を行い、ファイルを保存します。
気になる点が…
今回、元の環境(サーバ)と違う点がいくつかあります。
項番 | 旧(現行)サーバ | 新サーバ |
---|---|---|
1 | データベース名・ユーザ名(パスワード)が旧サーバ用 | データベース名・ユーザ名(パスワード)が新サーバ用 |
2 | サブドメインを使用 (WordPressのルートが、 next.club-cavalier.com) | サブドメインを使用せず (WordPressのルートが、 club-cavalier.com) |
3 | https での運用 | http での運用(ひとまず) |
1番目の問題は、wp-config.php の修正で問題ないと思っています。
2番目は、今回の移転を機に、安定しているWordPressでのサイトをトップレベルに据えたい、という思いでの変更です。なぜ、サブドメインでの運用をしているのかというと、ルートのSSLの取得が面倒だったから、という理由もありました。ホスティング会社の方で、ルートには独自に自己署名証明書を発行されていて、それとの競合の問題もありましたので。新サーバの方は、そのような問題もありませんので、素直にルートに置きたい、と。
ひとまず「http での運用」としたのは、実際にドメインを移管するまでは、Let’s Encryptによる無料独自SSLの設定が出来なさそうですので。もちろん、正式運用時には https での運用を行う予定です。
2番、3番が問題なく移行できるかは、データベースの内容次第でしょうか。データベースを移行したものの、 https://next.club-cavalier.com での運用を前提にしたものですから、そのまま動くかどうかは分かりません。
接続確認
というわけで、まずは、管理ツールで示されている「移転前動作確認URL」にて確認を行ってみます。
これですね、といってもモザイクで何が何だか…、という状態ですが。
ルートで動くように /public_html に配置していますので、このままのURLで接続。
ダメです。
ショックのあまり、画面のキャプチャを取り忘れていたのですが、「Error Establishing a Database Connection」というエラーが、画面上にどーんと居座ります。
この確認URLは、マニュアルにも
※設定URLにてリンクを生成する動的サイトや、設定ドメインへのリダイレクトを行うCMS等では、こちらの方法にて確認いただけない場合があります。
とありますし、動かない可能性があるのは、理屈でも理解できます。
hostsファイルの書き換えでドメイン誘導
とはいえ、何とか確認したい、と、次に考えたのが、hostsファイルの書き換えです。
世間一般のPCからは接続できなくても、自分のPCからだけでも、ドメイン名で新サーバにアクセスできれば状況が開けそうな感じがしたので、hostsファイルを書き換えます。
Windows10なら、C:\Windows\System32\drivers\etc\hosts ですね。
このファイルの最下段にXXX.XXX.XXX.XXX club-cavalier.com
と追記します。
もちろん、XXXは、新サーバのIPアドレスです。ping (確認URLのドメイン部) で確認しました。
若干の期待を抱きつつ、ブラウザで確認。
ダメですね。
管理ページを開く
そもそも、サーバの移転に伴って、いろいろと設定を変更しないといけないのは確かなので、管理画面を開いてみます。
一歩前進…、でもないですね。Google Chrome で赤表示なので https 接続になっていることに気付いてなかった、というのもありますが。。
データベースを直接触る
ちょっと禁断の手のようで、あまりやりたくはなかったんですが、phpMyAdminで、データベースを加工します。
サイトのURLを設定しているところがあるはずなので、それを探し出して、強制的に書き変えてみます。
これですね。 wp_option テーブルの、 option_id = 1(siteurl)の option_value 。
ここで、サイトのURLを指定しています。この https://next.club-cavalier.com を、 http://club-cavalier.com に書き変えて、「実行」をクリック。
で、改めて、管理画面にアクセス。
行けました。案外、あっけなかったようにも感じますが。。
その他の変更も
WordPressの [設定] > [一般] にある、WordPressアドレス(URL)は、データベース書き変えにより変わってましたので、サイトアドレスも変更しておきます。
これで、WordPressの最低限の変更は終わったようなもんです。
次に行ったのが、Search Regexというプラグインを使用して、旧(現行)サーバでのURLを、新サーバのURLに変更する対応です。
検索、置換の項目に、旧、新のサイト名を入れて置換。
この画像は、入力元が「投稿」「固定ページ」だけですが、「すべての投稿種別」「コメント」「ユーザー」「WordPress設定」を加えて、徹底的に変更した方がいいですね。
これで、変更が完了しました。
が、管理画面のダッシュボードから「サイトを表示」とすると、旧サイトに飛んでいくんですね。ブラウザでの表示では、「club-cavalier.com」なので、hostsが効いて、新サーバに行くように思うのですが。
投稿一覧などから「表示」とすると、「club-cavalier.com/xxxx(記事名)」と、正しく新サーバ内のデータにアクセスしてるんですけどね。
その謎が残っているのと、管理画面のダッシュボードを表示するとWarningが出るようになってしまったのと。
このあたりの究明(解決)が必要ですね。前者の方は、原因究明はともかく、現象としてはDNS切替で解消されると思いますが、後者は気になるところです。
旧サーバからの移行も、なんとかできそうな気がしてきたので、上記の調査をして、しばらく様子を見たら、実際にドメイン管理の移行とDNSの切替の手続きを進めていきたいと思います。