JetPackやGutenbergの接続エラーの原因と解決方法(の一つ)
意外に困っているけど、原因や解決方法がわからないことが多い問題について解説します。
問題について
ここでは、wordpress.com で JetPackの連携がうまくいかない(下記のようなもの)
あるいは、Gutenbergが起動しない(真っ白な場合)などの問題の解決方法を説明します。
考えられる原因
Gutenbergの場合は、他のプラグインやテーマのプログラムが原因で「真っ白」やエラーをすることがあります。ただし、有名なプラグインの多くは「対応している」ことが多いので、大抵は「別の原因」であることが多いです。
考えられる原因の一つが「セキュリティ設定」です。
具体的には、xmlrpc.php
と wp-json
に対するセキュリティ設定です。
xmlrpc.php、wp-json とは?
WordPressは、外部のアプリケーションやプラグイン(特にAJAX系)と連携するために、/xmlrpc.php
や /wp-json
が利用できます。どちらも「プログラムが利用する管理画面」のようなものです。
人間が使う場合は、/wp-admin
にアクセスしますが、プログラムやアプリは、上記にアクセスして、投稿、情報検索などができます。
この xmlrpc.php や wp-json を利用するプラグインで有名なものは
- JetPack
- Gutenberg
です。これらのプラグインを利用する場合、xmlrpc.php や wp-json を有効化しておく必要があります。
レンタルサーバーのセキュリティ設定
ところが、レンタルサーバーの多くで「セキュリティ設定」として、xmlrpc.php や wp-json へのアクセスを制限しています。例えば、XServer だと、デフォルト(初期設定)では、
- xmlrpc.php (国内からのアクセスのみ許可)
- wp-json (国内からのアクセスのみ許可)
となっています。
極端な表現をすれば、このセキュリティ設定は「外国は信用できない」「日本国内は信用する」ということなので、当てになりません。日本国内を装って、攻撃することは簡単です。
ですので、あまり意味はないのですが、CloudFlare などの CDN(Content Delivery Network : アクセスを高速化するためのキャッシュ機能)を利用すると、影響が出ます。
例えば、CloudFlareを利用すると、アクセスは全て「CloudFlare経由」となり、国外からのIPアドレスでアクセスしていることと判定され(ることがあり)、拒否されます。
その結果、
- JetPack が接続できない ( wordpress.com から)
- Gutenberg で何のファイルもロードできない
などが起こります。
解決方法
大前提としてセキュリティ対策をします。これは、JetPackをインストールすることです。JetPackをインストールすると、不正なアクセスを防いでくれます。
JetPackのセキュリティ設定を行ったら、レンタルサーバーのセキュリティ設定を外します( xmlrpc.php や wp-json )。
まとめ
- JetPackをインストール
- JetPackのセキュリティ設定を行う
- レンタルサーバーの xmlrpc.php とwp-json のセキュリティ設定を外す
- うまく動くか試す