オープンソースのクラウドストレージ「Nextcloud」を使うため「Value Domain」のレンタルサーバー「CORESERVER V2」の「30日間無料お試し」を申し込みました。
早速、使い勝手のチェックしたところが、「WordPress」のデータベース移行に大苦戦。一時は、移行を断念しようと思ったほどでした…
今回は、その「CORESERVER V2」へのサーバー移行の悪戦苦闘をレポートします。
悪戦苦闘の理由
悪戦苦闘の理由は、ズバリ情報が少なかったからです!
サーバーに詳しい方ならよくあるトラブルなのでしょうが、サーバー移行など5年か10年に1度程度のユーザーには敷居が高い作業でした。
私も過去に何度かサーバー移行しました。しかし、前回までと今回の大きな違いは移行元サーバーにデータベースが存在したことです。
過去のサーバー移行にはデータベースがなかったので、移行作業は移行元のデータをFTPでローカルにダウンロードし、移行先にFTPでアップロードで完了。その後、DNSを新しいサーバーに向けるだけと簡単作業でした。
しかし、今回はブログが「WordPress」になっている関係で「MySQL」というデータベースがあります。このデータベースが移行トラブル多発の原因となったのです。
「WordPress」など「CMS」はHTML、CSSを考えず記事だけに集中できるので初心者がブログを運営するには大きなメリットとなります。
一方で、サーバー移行などが発生すると「CMS」構築の元になっているのがデータベースなのでHTML、CSSと比べ移行レベルが格段に上がってしまいます。
「CMS」でブログを構築する場合、移行時の作業負担も考慮する必要があると実感しました。
移行環境
最初に今回私が移行する環境をお知らせします。
私が所有しているドメインは複数ありますが、ブログなどで使用しているのは「monk-jp.com」のドメインだけ。残りはメールアドレス時のドメインで使用しているだけなのでデータ移行は発生しません。
その「monk-jp.com」のドメイン内にはサブディレクトリに「WordPress」を2つ構築しています。
この「サブディレクトリ」に「2つ」の「WordPress」を構築している点が「CORESERVER V2」への移行を難しくしました。
移行方法は3種類
「Value Domain」では「CORESERVER V2」への移行方法として3種類の方法が用意されています。手間のかからない方法から並べると、
・「WordPress移行サービス」
・「サーバー間コピー」
・手動移行
です。
「WordPress移行サービス」は、「WordPress」のデータベース「MySQL」を含めまるっと一括で移行してくれるサービスです。
一方、データベースがない環境なら「サーバー間コピー」を使うことで簡単にデータを移行してくれます。
「手動移行」は、それらのツールを使わず自分でいちから移行作業を行います。データベースがある場合、「phpMySQL」からデータをエクスポート、「phpMySQL」へインポートするという、少々レベルの高い作業を行えるスキルがあることが条件になります。
「WordPress移行サービス」
「WordPress移行サービス」は、難易度が高いデータベースを含め「WordPress」のデータをすべて移行してくれるので、「WordPress」を使っているがサーバーの知識はないというユーザーにお薦めの方法です。
私も最初に一番移行が簡単な「WordPress移行サービス」を試しました。
この「WordPress移行サービス」ですべてが完了したらハッピーだったのですが、そうはいかなかったのが今回苦戦した大きなポイントです。
その苦戦の原因は「WordPress移行サービス」に仕様上の大きな弱点があったからです。
具体的には、
・「WordPress」をサブディレクトリで構築している
・「WordPress」をひとつのドメインで複数持っている
の場合「WordPress移行サービス」を実行できません。
あいにく私の「WordPress」環境はこの2つの弱点を持っていたケースでした。
一方、もっとも多いであろうドメインのトップディレクトリにひとつだけ「WordPress」を構築している場合は「WordPress移行サービス」がベストの移行方法なのは間違いありません。
「『WordPress』をサブディレクトリで構築している」ケースがNGなのは「WordPress移行サービス」の仕様で移行先のサブディレクトリを指定できないことが理由です。
このため、移行元(「CORESERVER V1」)の「WordPress」の場所が、
monk-jp.com/aaaaa/
であっても移行先(「CORESERVER V2」)の場所は、
monk-jp.com/
とトップディレクトリになってしまいます。
そこで、「Value Domain」の問い合わせフォームから移行先のサブディレクトリに移行できないのか質問をしました。
すると、移行元と同じサブディレクトリに移行が可能となるよう仕様を修正してもらえました。
素早い対応でありがたったのですが、こんな簡単に個別対応できるのなら初期設定の時点でトップディレクトリだけでなくサブディレクトリも選択できるようにしておいて欲しいと思いました。
もう1点の「1つのドメインで複数持っている」ケースは、問い合わせに対しての返答で「WordPress移行サービス」の仕様上対応不可との解答がありました。
つまり、2つ以上「WordPress」があった場合、2つ目以降は別の方法(手動移行)で対応する必要があるとのことです。
「サーバー間コピー」
「サーバー間コピー」は、「MySQL」などデータベースを利用していない場合、最適な選択肢です。
そもそも、データベースを利用していないデータ移行はFTPで移行元からダウンロードし、移行先にアップロードするだけなのでそもそも難しくはありません。
しかし、「サーバー間コピー」は移行元と移行先を指定するだけでダウンロード、アップロードを自動で行ってくれるのでより簡単。
また、移行作業時間も手動でダウンロード、アップロードするよりも早いのでFTPでダウンロード、アップロードくらい自分でできるというユーザーにもお薦めです。
手動移行
「WordPress移行サービス」項目で記したように、ひとつのドメインで「WordPress移行サービス」を複数利用することができません。このため、2つ目以降の「WordPress」は手動で行うことになります。
今回のトラブルの大半は、この「手動移行」関連の移行作業が発生しました。やはり、データベース絡みのサーバー移行作業は素人には難しいというのが実感…
と言うことで、ここではいろいろなトラブルとその解決策を時系列で記します。
「403エラー」
「手動移行」するためには「MySQL」データを「phpMySQL」からエクスポートする必要があります。
そこで、「phpMySQL」にログインしたところ「403エラー」が出ました。
「WordPress」は正常に動作しているので「MySQL」データに不具合があるとは思えません。
検索で調べましたが該当する解答は見つからなかったので、「Value Domain」の問い合わせフォームに質問をしました。
返答は、
・「/public_html/log」の直下にある「.htaccess」、「.htpasswd」をコメントアウトする
・「phpmyadmin」の再インストール
での対応策を提示してもらいましたが、いずれも解決しません。
その経緯を伝えたら、「IPv4 アドレス」を知らせるようにとサポート担当者から返答があったので、「IPv4 アドレス」を通知。その「IPv4 アドレス」を元に「phpmyadmin」を調整してもらったことで解決に至りました。
サーバーの知識がないので「IPv4 アドレス」からどのような設定変更で「403エラー」を解消したのか不明ですが、その後「403エラー」は発生していないので適切な対応だったようです。
アップロード最大容量エラー
「403エラー」が解決したので「CORESERVER V1」の「phpMySQL」にログインしデータをエクスポート。続けて、エクスポートしたSQLデータを「CORESERVER V2」の「phpMySQL」にインポートしようとしたところ、ここで新たなエラーが発生。
各工程でエラーで移行作業が牛歩のような歩みです…
今回のエラー内容は、
です。
原因は、「CORESERVER V2」の「phpMySQL」へのアップロード最大容量が64MiBになっているのに、インポートしようとしている SQLデータが73.5MiBとわかりました。
そこで、検索でヒットした「phpMySQL」へのアップロード最大容量をアップさせる設定変更を実行。しかし、どこを変更しても「phpMySQL」に変更した値が反映しません…
実行した変更箇所は、「CORESERVER V2」の「コントロールパネル」内の「ウェブ>PHP設定」画面の「新しい設定を追加」で
・memory_limit
・post_max_size
・upload_max_filesize
をそれぞれ「256M」にしましたがダメ。
次に、「CORESERVER V2」の「/ドメイン名/public_html」にある「.htaccess」に、
php_value upload_max_filesize 256M
php_value post_max_size 256M
php_value memory_limit 256M
php_value max_execution_time 300
を追記しましたが、これもNG。
さらに、「コントロールパネル」内の「ツール」から「PhpMyAdminを再インストール」も試しましたが、やはりNG…
調べ直すと、「phpMySQL」のデータは分割でエクスポート、インポートでも問題ないとのことです。手間が増えますが「phpMySQL」のデータを64MiB以内になるよう分割してエクスポートすることを検討しました。
「phpMySQL」のテーブル内容を確認すると「wp_posts」だけが50.33MBと異常に大容量でそれ以外は多くても数MB。この結果から、「wp_posts」とそれ以外の2つのデータに分割すればインポート容量が64MiB以内に収まることがわかりました。
そこで、「wp_posts」だけ別にした2分割のデータで「phpMySQL」にインポートしたところ、無事にインポート完了。
と思いましたが、実は不具合が発生していたのをこの後の作業で知ることになります。
画像のアップロードエラー
無事にインポートし「WordPress」の移行が完了したと思った私は、「hosts」ファイルを使い正式オープン前の動作確認をすることにしました。
「hosts」ファイルとは、ホストIPとアドレスの対応を記述したファイルのこと。通常、インターネット上のデータはDNSサーバーがドメインとIPアドレスの紐付けを確認し表示します。
しかし、仕様上DNSサーバーの値より起動している端末の「hosts」ファイルを優先します。これを利用し「hosts」ファイルのIPアドレスを書き換えすることで、DNSサーバーを変更する前に移行先サーバーをブラウザーで確認できるようになる方法です。
「Mac」の場合、「hosts」は不可視ファイルの「etc」にありますので、「ツールバー」の「移動〉フォルダへ移動…」から「/etc/hosts」で検索します。「hosts」が見つかったらダブルクリックでファイルを開き、ファイルの最下部に移行先の「IPアドレス」を追記します。例えば、下記のようになります。
202.172.26.39 example.com
202.172.26.39 www.example.com
「hosts」ファイルの変更を行ったので、順番に確認作業を行います。トップページは無事表示。各ページへのリンクも正常、文字入力も大丈夫。
「良し良し」と安心したところ、画像をアップロードする作業を行ったらエラーでアップロードできない状況となっていました。
「WordPress 画像がアップロードできない」で検索したところ、
・「パーミッション」を「755」から「757」に変更
・画像サイズを縮小する
・キャッシュを削除する
・「.htaccess」への追記
等々がありました。
しかし、私の環境ではどれを試してもNG。
困った時には「Value Domain」のサポートに問い合わせです。
サポートからは、「.htaccess」への「IPアドレス」の追記を返答されました。その対応策は既に実行済みでした。
今回は残念ながら「Value Domain」のサポートで解決しなかったので、自分で解決策を探ることにしました。
自己解決する際、心当たりがあり最初に確認したい事があったので、それをいの一番に試しました。
それは、不具合が見つかった「WordPress」(こちらを「aaaa」とします)と同じ階層にある「WordPress」(こちらを「bbbb」とします)の状況。
具体的には、「bbbb」でも画像のアップロードに不具合が発生するのか否かです。
「bbbb」にも不具合が発生すればドメイン全体の不具合。一方、「bbbb」が正常なら「aaaa」単独の不具合と切り分けができます。
結果は、「bbbb」に不具合は発生していません。つまり、「aaaa」単独の不具合との結論が出ました。
そこで、解決策として2つの「WordPress」の移行方法を見直すことに着手。
不具合発生の時点では、「bbbb」は「WordPress移行サービス」、「aaaa」は「手動移行」でした。
「WordPress移行サービス」では不具合が発生していない結果を踏まえ、「aaaa」を「WordPress移行サービス」に、「bbbb」は「手動移行」に変更です。
「bbbb」はデータ容量が少ないので「手動移行」でも一括インポートが可能というメリットもあります。
この移行手順の変更をしたところ、不具合が解消! 2つの「WordPress」とも正常に動作することが確認できました。
多くのトラブルがあった「WordPress」の移行作業が、ここで解決ヽ(^O^)ノ
移行作業の大きな山を越えたと感じた瞬間です!
最終に実施した移行手順
いろいろなトラブルに会い試行錯誤の末、最終的にたどり着いた移行作業は下記のような流れです。
・「WordPress」で構築していて容量の大きいデータは「WordPress移行サービス」で移行
↓
・「WordPress」で構築していて容量の小さいデータは手動で「phoMySQL」からエクスポート、インポートで移行
↓
・「WordPress」以外のドメインにあるデータは「サーバー間コピー」で移行
「CORESERVER V2」の「30日間無料お試し」に申し込んで、データの移行が完了するまで丸々3週間…
30日間の無料期間がなかったら、とても移行作業が完了しませんでした。私にとって「30日間無料お試し」は重要なキャンペーンとなりました。
正式サーバーへの移行作業
「WordPress」などの移行に伴う不具合がないかを再度チェックし問題なしと確認できたので、正式に新しいサーバーへ移行する作業を行いました。
「Value Domain」では、DNS移行のサービスも用意しています。この方法はメールサーバーも一緒に新しいサーバーに移行する手順となります。
しかし、私の場合はメールサーバーをWebサイトサーバーと別に運用しているので、別の方法を取る必要があります。
と言いながら現在設定されている「CORESERVER V1」の「IPアドレス」を「CORESERVER V2」の「IPアドレス」に変更するだけなので難しくありません。
「WordPress」がインストールされている新しいサーバーが「202.172.26.39」、メールサーバー「198.51.100.100」とした場合、下記のようになります。太ゴシックの2ヵ所が「CORESERVER V1」の「IPアドレス」から「CORESERVER V2」の「IPアドレス」に書き換えた個所です。
a @ 202.172.26.39
a * 202.172.26.39
a mail 198.51.100.100
mx mail.aaaaa.com. 10
txt @ v=spf1 ip4:198.51.100.100 ~all
以上でDNS移行作業の完了です。
まとめ
今回の「CORESERVER V2」への移行作業ではエラーが多発。検索でも解決できないケースがほとんどだったので「Value Domain」の問い合わせフォームからかなりの回数の問い合わせを行いました。
いずれも親切な対応で助かりました。感謝です。「Value Domain」のサポートがなければ「CORESERVER V2」への移行は完了しませんでした。
しかし、今回の目的は、サーバーの移行ではありません。「Nextcloud」が活用できるか否かです。でも、サーバー移行に無料の4週間の中の3週間を費やしてしまったんpで、早々に「Nextcloud」をインストールし、実活用の判断しなくてはなりません。
その、「Nextcloud」のインストール以降については次回アップします。
前回、「Nextcloud」のインストールとその後の使い勝手の検証をレポート。その結果、「Nextcloud」の使い勝手が満足するレベルと判断したので、「CORESERVER V2」を正式契約することを決めました。30日間の無料期間終了[…]
前回に「CORESERVER V2」への移行の悪戦苦闘をレポートしました。ここから、やっと本題の「Nextcloud」のインストールが始まります。長かった...豊富な簡単インストールのソフトウェアそもそも「CORESERVE[…]
オープンソースのクラウドストレージ「Nextcloud」を使うため「Value Domain」のレンタルサーバー「CORESERVER V2」の「30日間無料お試し」を申し込みました。早速、使い勝手のチェックしたところが、「Word[…]
「Value Domain」で契約しているレンタルサーバーを「CORE-MINI(CORESERVER V1)」から「CORE-X(CORESERVER V2)」に変更しました。目的は、サーバーのスペックアップではなくオープンソースのク[…]