JetPackやGutenbergの接続エラーの原因と解決方法(の一つ)

意外に困っているけど、原因や解決方法がわからないことが多い問題について解説します。

問題について

ここでは、wordpress.com で JetPackの連携がうまくいかない(下記のようなもの)

あるいは、Gutenbergが起動しない(真っ白な場合)などの問題の解決方法を説明します。

考えられる原因

Gutenbergの場合は、他のプラグインやテーマのプログラムが原因で「真っ白」やエラーをすることがあります。ただし、有名なプラグインの多くは「対応している」ことが多いので、大抵は「別の原因」であることが多いです。

考えられる原因の一つが「セキュリティ設定」です。

具体的には、xmlrpc.phpwp-json に対するセキュリティ設定です。

xmlrpc.php、wp-json とは?

WordPressは、外部のアプリケーションやプラグイン(特にAJAX系)と連携するために、/xmlrpc.php/wp-json が利用できます。どちらも「プログラムが利用する管理画面」のようなものです。

人間が使う場合は、/wp-admin にアクセスしますが、プログラムやアプリは、上記にアクセスして、投稿、情報検索などができます。

この xmlrpc.php や wp-json を利用するプラグインで有名なものは

です。これらのプラグインを利用する場合、xmlrpc.php や wp-json を有効化しておく必要があります。

レンタルサーバーのセキュリティ設定

ところが、レンタルサーバーの多くで「セキュリティ設定」として、xmlrpc.php や wp-json へのアクセスを制限しています。例えば、XServer だと、デフォルト(初期設定)では、

となっています。

極端な表現をすれば、このセキュリティ設定は「外国は信用できない」「日本国内は信用する」ということなので、当てになりません。日本国内を装って、攻撃することは簡単です。

ですので、あまり意味はないのですが、CloudFlare などの CDN(Content Delivery Network : アクセスを高速化するためのキャッシュ機能)を利用すると、影響が出ます。

例えば、CloudFlareを利用すると、アクセスは全て「CloudFlare経由」となり、国外からのIPアドレスでアクセスしていることと判定され(ることがあり)、拒否されます。

CloudFlare経由になることで、国外IPと認識され、アクセスが拒否される様子

その結果、

などが起こります。

解決方法

大前提としてセキュリティ対策をします。これは、JetPackをインストールすることです。JetPackをインストールすると、不正なアクセスを防いでくれます。

JetPackのセキュリティ設定については、こちら

JetPackのセキュリティ設定を行ったら、レンタルサーバーのセキュリティ設定を外します( xmlrpc.php や wp-json )。

XServerの例

まとめ

  1. JetPackをインストール
  2. JetPackのセキュリティ設定を行う
  3. レンタルサーバーの xmlrpc.php とwp-json のセキュリティ設定を外す
  4. うまく動くか試す

関連する耳デミー

関連するポケてら