「Wordpress」カテゴリーアーカイブ

サーバー引越しに苦労した話

サーバー引っ越しの依頼を安易に引き受けたものの、ちょっと苦労した話。肝心のエラー画面のスクショがないのが残念ですが。

今回Wordpress のサイト全体を移す作業について反省を含め学んだところをまとめると、

  • サーバーのPHPバージョンを確認しておく(新旧同じにする)
  • プラグインは全部停止してからエクスポートする
  • All-in-One WP Migration 使って良かった

詳細は以下に続きます。

ホームページを毎月払いの契約していてサブスクをやめたいとのご相談。ドメインとサーバーを譲渡してもらったらどうかと提案しましたが、サーバーは譲渡してもらえないということで、別のサーバーにホームページ(Wordpress )全体を移すことをご提案しました。

現在契約中のXサーバーはそのまま移譲できないので(制作会社の再販という可能性もあるかも)、Wordpress のプラグイン、All-in-One WP Migration and Backupを使ってエクスポートし、そのデータをくださいと先方に依頼したら、100GB超になるから直接ダウンロードしてくださいとの回答なので、Wordpress のログイン情報を聞き、そこから始めました。

All-in-One WP Migrationの画面
All-in-One WP Migrationの画面

確かに画像が非常に多く、メディアライブラリを含むデータは100GBを超えています。プラグインでコピーするのに1時間弱?さらにブラウザのダウンロード制限か、ダウンロードが5GBごとに止まるので放置できないので、止まるたびにダウンロード再開しなければならず、半日つきっきり作業になりました。

ドメイン移管は特に苦労することなく進み、新サーバー(さくらサーバー)でDNS設定、データベース設定、Wordpress インストール等。ちなみにSSL設定はDNS変更の確認が終わるまでできず、申込できるようになるまで1日くらいかかりました。

ダウンロードしたデータを新サーバーにインポート。PHPバージョン違いの警告が出ましたが、ダメもとでそのまま進めます。じわじわと進んでいる様子。有料(年間69ドル)のAll-in-One WP Migration Unlimited Extention も無駄ではなかったな。と思いながら別の作業をしていたところ、40%を超えたあたりでエラーが出て止まりました。

いちおうもう一度試してみてもやはり同じところでストップ。これで数時間ロスと共にプラグインへの信頼も減少。

仕方なくメディアファイルなしのバックアップデータを使い、メディアはFTPでコピー(データ移行)することにします。

All-in-One WP Migration オプション展開画面
All-in-One WP Migration オプション展開画面

メディアファイルなしのバックアップ(エクスポート)のほうは500MBまでいかないくらいのサイズだったので、インポートを始めると、進行状況のメーターはどんどん進みます。そして100%。

データベースを復元しました。ブラウザを閉じないでください。というウインドウ。
クルクル矢印 は回ったまま終わりません。

1時間ほど待っても同じ状態なので、100%になったし、「復元しました」ということは終わっているのかも、と思って閉じました。

移行したはずのサイトを開いてみるとデータベース破損で全く開けません。

仕方なく新サーバーのデータベースを空にしてもう一度Wordpress のインストールから再開しました。

再度メディアファイルなしバージョンのインポート。スムーズに進みます。でも再び「100%、データベースを復元しました。」ポップアップが閉じない。

調べてみると、エクスポートする前にプラグインを無効化しておくべきらしく、そこがダメだったのかもしれません。

DNSはすでに新しいサーバーに向けてしまったので、また旧サーバーに戻してWordpress に入ってプラグインを停止してエクスポート?とも考えましたが、そのせいでSSL申請が遅れたり、また何時間待つことになるかわかりません。

それで、新サーバーのphpmyAdmin を開いてみることにしました。

エクスポートは完了しているので、データベースの中身はできあがっているようでした。Option の Active_Plugins を見るとたくさんアクティブになっているので、「A:0:{} 」と書き換え、プラグインを全停止しました。

すると別ウインドウで100%で止まっていた復元も完了し無事に閉じました。やはりプラグインの影響だったようです。試しにActivePluginsをすべて元に戻すとワードプレスは動きませんでした。いくつか古いプラグインが入っていたことから推測すると、最初のインポートで警告が出たように、旧サーバーではPHPも古いバージョンでプラグインを動かしていたようです。

ところで、FTPでメディアのダウンロード、結局13時間くらいかかりました。ダウンロードが少し進んだところで別のFTPソフト(FileZilla)で新サーバーにアップロードしながらなので延べ時間にしたら倍くらいのはず。
プラグインを停止してからのエクスポート、インポートなら100GB超でも最初から成功していたかどうか、検証する時間と気力がないですが、その可能性もなきにしもあらず。事前の調査、準備不足を後悔するばかりです。

FTPでアップしたら別のプラグインか何かでWordpressのメディアライブラリと紐づけしないといけないかと思っていましたが、FTPアップロード完了した後に見てみると、Wordpressのメディアライブラリにもサムネが掲載されていて特に作業は不要でした。このあたりは AIO Migration 使って良かったところだと思います。

ちなみに、新しいサイトをテストサーバーから移動する場合など、エクスポートデータが300MBとか400MBくらいならエクスポートが数分、新しいサイトのインポートは1分程度で終わります。引っ越しはとても楽。PHPバージョンがあっていてプラグインが問題なく動くならプラグインは停止しなくてもインポート成功します。

【WORDPRESS】投稿画面が真っ白

お客様のワードプレスのデータベースを変更し、phpMyAdmin でデータのエクスポートとインポートをしました。

表示も問題なく、.htaccess のドメイン転送も問題なく、移行できたようで安心していたところ、

「ブログの新規投稿ができない」

とのこと。ユーザー一覧を見ると、なんと、ユーザー権限が「購読者」になっていました。

修正して連絡すると、次に

「ブロックエディタにならない」

とのご連絡。

WordPressは最新バージョンなので昔の投稿画面のはずもなく、自分で新規投稿を開いてみると、画面が真っ白。メディアの新規追加はできるのですが、「投稿」「固定ページ」の新規追加だけ、画面が真っ白でなにも表示されません。

よく言われる、アップデートの問題、プラグインの問題、がありますので、プラグインをすべて無効にしたり、テーマを変更してみたり、最新版をFTPでアップロードしてみたり、ダウングレードプラグインで6.1.1から6.0.3にしてみたりしましたがどれもダメでした。

さて次は、デバッグモード(wp-config の WP_DEBUGをtrue)にしてみると、いろいろ出てきましたが、wp_posts にエラーがありそうでした。

続きを読む 【WORDPRESS】投稿画面が真っ白

WCEX Yamato Number改

Welcart 用のヤマト運輸送り状発行システムB2連携プラグインWCEX Yamato Number

B2用のCSVデータを出力できます。

宅急便の伝票には「お届け先」と「依頼主」を記入するので、店舗から発送する場合のことを考えて、依頼主を「店名(固定情報)」または「購入者情報」にするのかを選べます。

基本的にそれで十分なのですが、プレゼントやギフト商品も扱うお店の場合、

  • 自分用に購入した(購入者とお届け先が同じ)場合は、「お店」から「購入者」へ
  • プレゼント用(購入者とお届け先が違う)の場合は「購入者」から「お届け先」へ

というように、「依頼主」欄を「お店」と「購入者」と使い分けたい。という希望もあります。というわけで、そのためにちょっと手を加えます。(「お店情報」と「固定情報」が同じ場合に限ります。)

WCEX Yamato Numberプラグインの、YamatoNumber.class.php ファイルを開きます。

Ver.1.1.5の場合、たぶん691行目に依頼主欄の条件が書かれています。

if( self::$opts['sponsor_flag'] ) {

プラグインの設定で「固定情報」を選んだら・・・(固定情報を出力)という感じで、それ以外(「購入者情報」を選んだら)購入者情報を出力することになっています。

それで、もう一つ、お店情報を出力するための条件として、「『購入者』と『お届け先』が同じ場合」を追加しようと思います。

if( self::$opts['sponsor_flag'] || 0 == $delivery['delivery_flag'] ) {

としました。

するとどうでしょう。プラグインの設定(Welcartのシステム設定拡張機能)で依頼主の出力方法を「購入者情報」にして、CSV出力すると、

購入者と発送先が同じ場合は、依頼主欄にお店の情報が出力されました。

注:プラグイン本体を書き換えますので自己責任でお願いします。また、プラグインをアップデートしたら再設定が必要になります。

MW WP Form

お客様から、確認画面付きの申込フォームを使いたいとのご希望でしたので、MW WP Form プラグインを使わせていただきました。

これまで、問合せフォームは ContactForm 7 のほぼ一択だったので、多少慣れも必要だとは思いますが、高機能なプラグインでした。

確認画面は別に作る必要もありませんが、表示を変更したければ確認画面、エラー画面、完了画面をそれぞれ追加できるのも便利です。
ところが、その部分で躓きました。

サイトでそのフォームを開こうとすると、ブラウザでは「ループしてしまう」という旨のエラーメッセージ表示で動きません。

そういったフォーラムとか説明されたページも見ましたが、どうも今回の自分の問題とは違うようです。

実際には、もっと初歩的なミスで、アドレスの最後の“/”(スラッシュ)をつけていなかっただけでした。

MW WP Form のURL設定
MW WP Form のURL設定