WordPressの移行メモ

日記

レンタルサーバーを変えたときにWordPressを引っ越した時のメモ。

FTPで旧サーバーからWordPressを含むウェブデータ一式をダウンロード

データが多いので頑張る。私は切断されても自動で再接続してくれるWinSCPを使っている。

WinSCPとは :: WinSCP
WinSCP is a free file manager for Windows supporting FTP, SFTP, S3 and WebDAV.

旧レンタルサーバーのphpMyAdminからWordPressのデータベースをエクスポート

たいていのレンタルサーバーにはphpMyAdminがあるはずなので(あるよね?)、ログインしてデータベースを選んでから[エクスポート]→[実行]して、エクスポートしたファイルをダウンロードしておく。

データベース情報がわからなくなったら、wp-config.phpに記載があるはず。

万一phpMyAdminが無いようなら、「Adminer」というツールが便利。php1ファイルのみでありながら、簡易phpMyAdminのように動作する。こいつをFTPでアップロードして、設置した場所のURLにブラウザでアクセスするとログイン画面が表示されるので、データベース情報を入力してログインできる。

Adminer - Database management in a single PHP file
Adminer (formerly phpMinAdmin) is a full-featured database management tool written in PHP. Conversely to phpMyAdmin, it ...

個人的には [English only] を使うことをお勧めする。通常版だと文字化けすることがあるため。

データベース操作については別記事を書いた。

旧サーバーのドキュメントルートを確認

旧サーバーのPHPから見たドキュメントルート(FTP上のそれではない)を確認する。私の場合は、旧サーバーの管理画面上から「フルパス」の名前で記載がされていた。もしわからない場合は、以下のようなphpをアップロードして、ブラウザで表示させ、[DOCUMENT_ROOT]の行をチェックする。

<?php
phpinfo();
?>

新レンタルサーバーのphpMyAdminからWordPressのデータベースをインポート

レンタルサーバーによっては、あらかじめデータベースが用意されているところもあれば、まず空のデータベースを作成する必要があるところもある。

phpMyAdminにログインして新しいデータベースを選び(ここで中身が空っぽであることを再確認する)、[インポート]→先にエクスポートしたデータをアップロード→[実行]

さすがにphpMyAdminが利用できないサーバーをこれから使い始めるということはないだろうが、万一無いようならAdminerをうまく使う。

新レンタルサーバー側のWordPress設定ファイルのデータベース情報を書き換え

新サーバーにFTPログインして、そちらのwp-config.phpを修正し、データベース接続情報を新しいサーバーのそれに書き換える。

新サーバーにSSLをインストール

現段階では最悪でも自己署名証明書(いわゆるオレオレ証明書)でもいいのでSSLをインストールしておく。DNS切り替えないとSSLがインストールできないようなら、この時点でやるしかない。

hostsファイルを修正

Windows11であれば、テキストエディタ(メモ帳でもいい)を管理者権限で実行し、
C:\Windows\System32\drivers\etc\hostsファイルを修正する。

私の環境では以下の行を追加した。

118.27.125.217 qwl.jp

適当に新サーバーにのみ存在するhtmlファイルを新サーバー側にアップロードし、ブラウザでアクセスできれば成功。

hostsファイル編集権限がなければPCの管理者に相談すること。

新サーバーのドキュメントルートを確認

旧サーバーと同様、phpのドキュメントルートを確認する。

データベース内のドキュメントルートを置換

主に wp_options テーブルの recently_edited などに旧サーバーのドキュメントルートが記載されている。ここを新サーバーのそれに書き換えてあげる必要があるが、通常はシリアライズされているので、手動で書き換えるのはうまくない。

そこで、Search Replace DBというツールを使えば、シリアライズの修正込みでデータベース内の文字を置換してくれる。

Database Search and Replace Script in PHP | inter.connect
Search Replace DB is a powerful tool for developers, allowing them to run a search replace against their database where ...

フォームにある各項目を記入して送信すると、ダウンロードリンクがメールで送られる。

Search Replace DB の使用方法

zipファイルを展開してできたフォルダをwp-config.phpのあるディレクトリと同じ階層にアップロードして、ブラウザでアクセスする。

[Search]の[replace]に旧サーバーのドキュメントルートを、[with]に新サーバーのドキュメントルートを記載。

[Database Details]に新サーバーのデータベース情報を記載。

サーバー側から指示がなければ、普通はポート番号は未記載で良いはず。

[Do a safe test run]でテストした後、[Search and Replace]で置換を実行。終わったら[delete me]でこのSearch Replace DB自身を削除してくれる。

ハマりポイント

.htaccessがちゃんと移行できていない

WinSCPの場合、[オプション]→[環境設定]→[パネル]→[隠しファイルを表示する]にチェックを入れておかないと、.htaccessが表示されないので、移行漏れが発生する。

PHPのバージョンが合ってない

古いWordPressを使っていて、新サーバーのPHPのバージョンが高すぎる場合に起きる。そんなWordPressを使っている方が悪いのだが、じゃあどうすればいいのかというと、移行前の状態でバージョンアップしておくか、新サーバー側でPHPのバージョンを下げることを検討するしかない。

コメント

タイトルとURLをコピーしました