右下にあるチャットの中の人からのお便り

Shifter Advent Calendar 2019,6日目です。

この間インド・ネパールのカレー屋さんに行ったら店員さんから «あなた,パキスタンの人? パキスタン人,そういう髭の伸ばし方する» と言われた髭面の日本人です,こんにちは。大変美味しいカレーでした。

さて,問合せから回答までのレスポンスがムダに早いと噂の Shifter のサポート。そのサポートの中の人から見た問合せの状況,多くお問い合わせいただく事柄,Shifter を使う上でのハマりどころと転ばぬ先の杖をご紹介します。混み具合やお問い合わせの多い内容などはあくまで体感なので,実際に統計をとるとズレるかもしれません。

サポートの混み具合

朝一と夕方から夜にかけての時間は比較的混んでます。理由は次の通り:

  • 朝一: 前日の夜に来たお問い合わせの対応。
  • 夕方から夜: お問合せが集中します。特に木・金。 何故みなさまは一斉に夕方に作業をし始めてトラブるのか? あと数時間で終業でしょう? 残業は美味しくないよ?

ということで,お昼から夕方にかけての時間帯だと比較的空いています。

お問い合わせの多い内容

1. データ移行/マイグレーション周り

Q. All-in-One WP Migration でのインポートが終わらない。どうしたらいいでしょうか。

A. 一服しましょう。水分は大事です。古事記にもそう書いてあります。

インポート処理が終わらない場合, .wpress ファイルが破損していてインポート処理が完了できなかった,または,インポート中に発生したエラーにより処理が停止した,のどちらかに当てはまることが多いです。

.wpress ファイルが破損をしていて,インポート処理が停止した場合

まず,Traktor で全てのファイルを展開して,ファイルの正常性チェックをしましょう。破損していれば再エクスポートをしましょう。その後,再エクスポートされた正常なファイルを再度 Shifter へインポートしましょう。

インポート中に発生したエラーにより処理が停止した場合

ほとんどのケースで All-in-One WP Migration がインポートの際,プラグインを有効化する処理中に発生しているトラブルなので,以下の方法で対処・回避ができます。

  1. 移行元環境にあるプラグインが PHP 7.3 環境で動作するかどうかをプラグインディレクトリで調査,プラグインの開発元に問合せてください。PHP Compatibility Checker を使うのもひとつの手です。
  2. 移行元環境でプラグインを無効にし,その後にエクスポートしましょう。インポート処理が完了するまでプラグインを All-in-One WP Migration で有効化させなければいいのです。
    サポートドキュメント: Troubleshooting while migrating with All-in-One WP Migration plugin
  3. 再エクスポートしたファイルを改めて Shifter へインポートしてください。
  4. インポート完了後に,1つずつプラグインを有効にしていき,エラーが発生するかを確認してください。面倒ですけど WordPress のトラブルシューティングの基本に立ち返りましょう。

サポートドキュメント:

Q. All-in-One WP Migration でマイグレーション後,移行元のユーザ のPW で WordPress へログインできない。どうしたら?

A. 一服して,Shifter ダッシュボードから WordPress を起動・ログインし,該当ユーザのパスワードの再設定をしてください。

2. プラグインの動作について

Q. foobar というプラグインは Shifter で動きますか?

A. 使いたい気持ちは分かります。まずは一服しましょう。
基本的な考え方として,次のようなプラグインは動作しない場合が多いです。

.htaccess やサーバの設定の変更が必要なプラグイン,またデータベースへアクセスが必要なプラグイン

そもそも Shifter は Serverless-Static WordPress Hosting であってWeb サーバではないので, .htaccess は動作しません。DB へのアクセスも同様に Artifact 上では行えません。

静的化したサイト内で PHP や Perl などを実行させるようなプラグイン

Web サーバではないので動作しません。代替を検討してください。
コメントプラグインであれば Disqus や Facebook Comments,検索であれば Algoliawp-serverless-search: A static search plugin for WordPress をご利用ください。

wp-admin/以下のファイルをロードするもの

例: /admin-ajax.php をロードするプラグイン Ajax Load More

問い合わせフォーム (一部例外有り)

単体では動作しないため,サードパーティのFormspreeTypeform などをご利用ください。
サポートドキュメント:

また,Contact Form 7WP Serverless Forms プラグインとBasin などを組み合わせた方法であれば動作します。
サポートドキュメント (ContactForm7 + WP Serverless Forms + Basin の使用例):
Using WP Serverless Forms WordPress Plugin with Basin

Q. 推奨する Foo Bar なプラグインはありますか?

A. なにはともあれ一服しましょう。
推奨しないプラグインはあるので,それ以外を試してください。

サポートドキュメント:
Incompatible and unrecommended WordPress plugins on Shifter

動作するプラグインもあれば動作しないものもあるので,答えとしては «実際に試さないと分からないことが多いです» 。ご相談のあった,または気になった WordPress のプラグインディレクトリに掲載されているプラグインはひと通り試しています。動作を検証していると,«ぎりぎり偶然のラインで動作している» といったものもあるので,検証はなかなか面白いです。
それでも 50,000以上あるともいわれるプラグイン (2019–12-06 7:00 時点のオフィシャルでは Extend your WordPress experience with 54,778 plugins ) の全てを試す時間的余裕はないので,「動いた」「動かなかった」報告があると僕は嬉しいです。

調べられた範囲で Shifter で動作しないプラグインとその代替プラグインはリストにしているのでサポートドキュメントをご参照ください。ただ,これ以外が全て動作するという意味ではないのでご留意ください。

サポートドキュメント:
Common WP Plugins incompatible with Shifter—and their alternatives

Q. Pagination が動きません。どうすればいいですか?

A. 一服しましょう。
その後,Pagination 部分に自作の関数を使うのは止め, WordPress の関数 get_the_posts_pagination() | Function のものに差し替えましょう。また,カスタムポストタイプの pagination は現時点で動作しない場合が多いです。
サポートドキュメント: Pagination on Shifter Notes on WordPress pagination

3. ドメイン周り

Q. 認証用レコードの設定方法が分からない,また,ドメインをアタッチしたはいいものの,ドメインでアクセスするとエラーになる

A. 一服しましょう。
ドメインの設定, DNS レコードの設定は今も昔もハマりどころの1つです。
Shifter では,登録・認証・アタッチ・Genereate・レコード書き換えの4ステップがあるので余計にハマりやすいです。ただ,分かってしまえばなんてことはないのです。

ドメインの登録から公開までの作業をおさらいしましょう。

  1. 使いたいドメインを Shifter ダッシュボードで Shifter ダッシュボードに登録する。
  2. 認証用レコードが発行される。
  3. 発行された認証用のレコードを DNS サーバの管理画面に登録する。
  4. ドメインが認証される。
  5. Shifter ダッシュボード上でドメインをサイトにアタッチする。 (どのサイトでドメインを使うかを指定する)
  6. アタッチ後に generate ボタンをクリックして,ドメイン名がアタッチされた Artifact を生成する。
  7. Shifter ダッシュボードで発行されている DNS レコードを DNS サーバで設定する。

ハマりどころはステップ2,3と6,7

ステップ 2. 認証用レコードの発行と ステップ 3. 認証用レコードの登録について

ドメインの所有確認のための手続きです。ドメインを勝手に登録されないようにする措置です。
blog.plastaicdreams.org とドメインを登録した場合に発行される認証用のレコードのサンプルです:

Name: _xxx.blog.plasticdreams.org.
Type: CNAME
Value: _zzz.yy.acm-validations.aws.

Shifter ダッシュボード上ではこういう表示です。

DNS サーバにこの情報を入れていきます。

Name: [_xxx.blog].plasticdreams.org
Type: [CNAME - Canonical name]
Value: [_zzz.yyy.acm-validations.aws.]

[ ] で括られている部分の文字列を入力欄へに設定・選択していきます。

AWS の Route53 の場合,次のようになります。

お名前.com など,アンダースコア (_) から始めるレコードの登録ができない DNS サーバの場合 Value 部分の最初のアンダースコアは省いて登録ができます。この場合は次のように登録してください。

サポートドキュメント:

Name: [_xxx.blog].plasticdreams.org
Type: [CNAME - Canonical name]
Value: [zzz.yyy.acm-validations.aws.]

※ Value の最後のピリオドは DNS サーバにより,不要な場合があるので, DNS サーバの提供元に確認してください。

認証されると Shifter ダッシュボードではスクリーンショットのようになります。認証されるまでにかかる時間は数分から数時間程度です。

今回は blog. のサブドメインで解説しています。 example.comexample.jpなどのように,www.などのサブドメインを付与しないドメイン (Naked ドメイン/rootドメイン/ZoneApex などといわれます) を設定する場合は,サポートドキュメント: Custom Domains on Shifter を参照してください。
迷ったらサポートへご相談を。

ステップ6 ドメイン名がアタッチされた Artifact を生成する

ドメインの登録と認証,サイトへのアタッチ (ドメインをこのサイトで使えるようにする設定) までが終わりました。
サーバに設定しただけだと,サーバに設定されているドメイン名 (blog.plasticdreams.org) とコンテンツ側が持っている初期ドメイン名 (例: foo-123.on.getshifter.io) とが異なるため,サイトへアクセスするとアクセスしているドメイン名と発行されている証明書が不一致となり,警告が表示されれます。これを解消するために,コンテンツ側のドメインを書き換えていきます。作業は簡単で,ドメイン名をアタッチした後に generate ボタンをクリックするだけです。

ステップ7 Shifter ダッシュボードで発行されている DNS レコードを DNS サーバで設定する

[Domain] メニューの Manage Domain セクションの下に DNS に登録する情報が表示されます。

これも認証用レコードの登録と同じように [ ] 内の文字列を設定していきます。

Name: [blog].plasticdreams.org
Type: [CNAME --- Canonical name]
Value: [elegant-sammet9781.on.getshifter.io]

Route53 の場合は次の通りです。

設定後にアクセスして,ドメイン・証明書のエラーが出なければ設定完了です。

IPv6 対応にする

Shifter ダッシュボードの [Settings] に表示されている CloudFront Domain を DNS サーバの設定内にある Value へ入力・保存をすると, IPv6 がサポートされるようになります。
IPv6 接続が行われるかのテストは IPv6 test で行ってください。
サポートドキュメント: How to enable IPv6

サポートからのお知らせ

Shifter の環境は PHP 7.3.12 です (2019–12-06現在)。今後は PHP 7.4 など,最新版にアップデートされるはずです。PHP5 系からの移行は慎重に行ってください。
VCCWWocker などのローカル環境にデータをインポートして PHP 7 系での動作・エラーを事前に確認しておくと移行がスムーズです。

サポートからのお願い

最初の問合せの際に次の項目を伝えてもらえると調査と解決が早いです。

  • ユーザ ID / メールアドレス
  • トラブルの出ている Site ID (Settings メニュー内にあります)
  • トラブルの出ている Artifact ID (Overview メニュー内の Artifacts セクションにあります)
  • ドメイン名 (例: www.example.comdigitalcube.jp)
  • トラブル内容や実現・実行したいこと
    • 例1: generate をしてから3時間経っても終わらない。
    • 例2: ドメインの認証がされない。
    • 例3: サイトのインポート処理が終わらない。
    • 例4: AAAのようにしたいんだけれども,BBBのようになっている。どうしたらいいか。

それでは引き続きよい Shifter ライフと Shifter Advent Calendar 2019 をお楽しみください。

aka Written by: