WordPressを結構使うことが多くいつも頭を悩まされる現象。
WPとJetpack連携できない。
いつもこれで悩むので備忘録。
- WordPress 4.8
- サーバー:エックスサーバー
- 独自ドメイン
Jetpackとは?
新たにブログを作成した時にはじめに入れているプラグイン「jetpack」
このプラグインを入れるとSNS連携・サイトの統計情報・セキュリティといった30種類以上の拡張機能を使えるのでとても便利。
使い方はとても簡単。
方法はいくつかありますが、筆者がやっているのは以下の方法
WPのダッシュボードの左側から「プラグイン」を選択 プラグイン画面から「新規追加」をクリック |
|
切り替わった画面に表示される もしくは、右側にある「プラグインに検索」ボックスでJetpackと入力すれば出てきます |
後はJetpackを「有効化」して、連携させれば良いのですが、こうなる場合がある。
WPとJetpack連携できない状態とは?
Jetpackと連携させようとするとこんなエラーがでる↓
エラー詳細: The Jetpack server was unable to communicate with your site http://○○.com [HTTP 403]. Ask your web host if they allow connections from WordPress.com. If you need further assistance, contact Jetpack Support: http://jetpack.com/support/
(○○にはサイトのドメインが入ります)
Jetpackサーバーはあんたのところのサイトと通信できへんで。
的な事をいってきた。
筆者のブログのサーバーは「XSERVER(エックスサーバー)」。
恐らくエックスサーバー側になにか問題がある、もしくは制限がかかっていると言っている訳だ。
WPとJetpack連携できない場合の解決策
それではこの解決策を紹介していきます。
[adsense]
サーバー側設定
まず、エックスサーバー側に原因があるっぽいので https://www.xserver.ne.jp/ にログイン。
管理画面からインストール済みWordPress一覧へいきます。
「インストール済みWordPress一覧」のJetpackがうまく連携できないブログの「設定」ボタンをクリックします。
「WordPress管理」画面に入るので「セキュリティ設定」の「国外IPアクセス制限設定」をクリック。
そして「XML-RPC API アクセス制限」が有効になっているのでこれを「無効」にする為に「XML-RPC API アクセス制限を無効化する(確認)」ボタンをおす。
次の画面が表示され再度「XML-RPC API アクセス制限を無効化する(確定)」ボタンが出てくるのでクリックしましょう。
その後は、WordPress側をいじります。
このXML-RPC API アクセス制限の説明では、
※スマートフォンアプリや外部システムから、リモートで記事の投稿や画像のアップロードを行う際に利用される
「XML-RPC WordPress API」に対する国外IPアドレスからの接続を制限できます。
プラグイン「Jetpack by WordPress.com」によるアクセスは制限の対象外です。
※通常は「有効」のまま運用されることを強く推奨します。
※国外IPアドレスのサーバー等から「XML-RPC WordPress API」をご利用される場合は「無効」に設定するとともに、
個別にWordPressへ「Disable XML-RPC Pingback」などの「XML-RPC WordPress API」への不正アクセス対策を行う
プラグインの追加インストールを行ってください。
「プラグイン「Jetpack by WordPress.com」によるアクセスは制限の対象外です」ってなってるのに、WPとJetpack連携できないところ見るとばっちり対象内になってたね。
WordPress側設定
サーバー側の「XML-RPC API アクセス制限を無効」にした状態で再度WordPressに戻りJetpackを連携させてみましょう。
その後「Completing connection」(接続完了)の画面が出てくればOK。
「approve」のボタンをクリックしましょう。
WPダッシュボードの左側に「Jetpack」が増えてる!やったね!!!
しかし、安心はまだ早い!!!!
最後にサーバー側に戻り、「XML-RPC API アクセス制限」を有効に戻しましょうね!!!
↑これでOK
まとめ
WPとJetpack連携できない場合の対処法について紹介をしていきました。
筆者の場合はこんな感じで解決できました。
サーバーの国外IPアドレス制限が原因となっていたっぽいのですが、セキュリティはやはり大事だと思う。