ロリポップからXserverへ、WordPressの引越
- (2022-12-24 15:07:04)
WordPressの引越
サーバホスティングのバックアップとしてXserverを試しているが、仮にロリポップからXserverへ既存ドメインのすべてのコンテンツ(Webサイト)やサービス(メール、メーリングリスト)を引っ越すとなると、たぶん、一番の難題はWordPress。
データベースの引越だから面倒くさそうと思う反面、案外サクッとできる気もするが、さてどうだろう・・
WordPressの記事などデータはMySQLに保存されているので、WordPressの引越とは、基本的にMySQLの引越である。
実は、MySQLの管理画面(phpMyAdmin)には「インポート」「エクスポート」機能があるので「楽勝だろう」となめていたら、10日かかってもまだ完全には移行できていない。
この作業は一日1時間以内しかやらないときめていたので問題がある度に中断したので日数を要したもののスキル的に問題があることは明白。
もし集中的にやったとしても3日くらいかかったかも。
先日「あまり時間がかかると他の仕事ができなくなるので、いったん断念しようか」と思い始めた。
それで「今日できなければ、いったん断念」と決めてやってみたら、基本的にその日なんとかできた。
(やはり、人間、必死な気持ちでやると結果が出る場合もある)
しかし、細かいところの調整で、さらに数日を要して、結局、完全完璧な引越ではない結果で終わることになるが、あとはXserver側で調整すれば良い程度なのでここでいったん終了とした。
この時点で完全でないもの:
(1) ヘダー画面(ヘダー画像やメニュボタン)
(2) 画像がなぜか散発的に表示できないものがある(/wp-content/uploardsは正常にftpされている)
(3)
自分で考えないと、けっきょく遠回り
日数を要した一番の敗因は「ロリポップからXserverへ、WordPressの引越」で検索して人様の体験記事を参考に盲目的にやったからかもしれない。
MySQLのことを全然理解していないので、盲目的になることは仕方ないが、はまった。
WordPress用のMySQLテーブルは20個ほどあるが、すべてのテーブルをエクスポートしインポートしていた。
(人様の記事では、全テーブルを丸々持って来て入れ込むみたいな書き方だったので)
そう書いてあったのでそのままやってみたが失敗する。
別の記事を探して、またその通りやってみたらできない・・ここに至ってやっと自分で考えることにした。
MySQLのテーブルの中で下記の2つはロリポップのセットアップ環境に起因するもので、これをこのままXserverでインポートしても動作するわけがないよな~とは思っていた。
だいたい、ロリポップで作成したMySQLとXserverでのそれは、サーバ名もユーザIDもパスワードも違っているので、全テーブルをそのまま持って来れない。
持ってくるテーブルの種類は引越の仕方にもよる(たとえば、ドメイン名もいっしょに引っ越すなど)ので、引越ごとに異なるが、今回は下記のテーブルが引越不要で、Xserverで作成したオリジナルテーブルを使う。
wp_options
wp_users
他人のやり方をそのまままねていると、こんな単純なことさえ考えなくなる。
(1) ロリポップのphpMyAdminで全テーブルのエクスポート
(2) Xserverでwp_options、wp_usersのテーブルを別名にして上書きされないようにする
(3) Xserverでインポート
インポートテーブルのうち、ロリポップのwp_options、wp_users分を削除し、Xserverのものと入れ替える
(4) wp-config.phpの書直し
MySQLテーブルのプレフィックスはXserverでは「wp_」となっているが、ロリポップの「wp_作成日時」になっているので。
Xserverで作成したWordPressの設定ファイル「wp-config.php」をダウンロードして、プレフィックスをロリポップ風に変更してXserverに戻す。
エクスポート
エクスポート方法: → 詳細 - 可能なオプションをすべて表示 →
「DROP TABLE / VIEW / PROCEDURE / FUNCTION / EVENT / TRIGGER コマンドを追加する」オプションを選択。復元するデータベース上でテーブルを作成する前に、同名のテーブルが存在すれば DROP コマンドでこれらを削除してくれる。
なお「CREATE DATABASE / USE コマンドを追加する」をチェックしたらxserverでインポート時にエラーとなった。データベースを作るコマンドだが、共用サーバーなどではそもそも許可されていない。
これですべてのテーブルをダウンロードできるが、注意する点は、テーマの「cocoon」に関連すると推測されるテーブルが5個ほどあること(テーブル名が「wp_cocoon_accesses」など)(テーマでさえ、テーブル使うの?)と驚くと同時に、移行先も事前にcocoonを同じバージョンでインストールしておかないと不備が出そうだという予感。
MySQLのテーブル名変更方法
phpMyAdmin画面にて、SQLコマンドか「操作」ボタンで変更する
例)
ALTER TABLE wp_users RENAME TO wp_users_ORG;
ALTER TABLE wp_users_ORG RENAME TO wp20221201180000_users;
テーマの移行がよくわからない
今回WordPressの引越テストに時間を要した内容を反省すると、(1) MySQL自体はすんなり移行しやすいが、(2) テーマのcocoonではまりまくり
---------------
MySQLとWordPresではまっている
---------------
---------------
何度も最初からやり直す(~12/23)
WordPressのテーマを「Cocoon」にする
wp2では「標準」で進め、一部画像が表示されない、wp-adminにログインできないなどトラブルあり テーマのせいかどうか不明
---------------
(1) (ロリポップ) phpMyAdminでMySQLのデータをエクスポート
(2) (Xserver) データベースの作成
WordPressの作成と同時にMySQLを作成する「WordPress簡単インストール」ではデータベース名が選べないなど、個別に作成することがおすすめ
(3) (Xserver) WordPress簡単インストール(既成のMySQLで選択する方式)
「作成済みのデータベースを利用する」にチェック
※ロリポップのPHPに合わせて、PHP7.3を使用していたが、Cocoonを新しくインストールすると、7.3は古くてできないと拒否される。
7.3くらい最近まで普通に使われているんだから受け付けて欲しいが、厳しいね~
(4) (Xserver) phpMyAdminでテーブルのインポート及びテーブル名操作
ALTER TABLE wp_options RENAME TO wp2022作成日時_options;
ALTER TABLE wp_users RENAME TO wp2022作成日時_users;
(5) (Xserver) 「wp-config.php」をダウンロードして、編集
$table_prefix = 'wp2022作成日時2_';
(6) (Xserver) 「wp-config.php」を編集しないやり方
ロリポップのエクスポートデータの$table_prefixプリフィックス「wp2022作成日時2_」を「wp_」に全置換する。
これをやるとxserverでは「wp-config.php」の$table_prefixを変更不要になる。