API での WordPress 自動投稿(POST)に失敗したときの解決策【備忘録】

スポンサーリンク

現在、ちょっとした思い付きから、Wordpress へ記事を自動投稿してくれる
ツールを作成していますが、その最中につまづいた問題とその解決策について
備忘録として残しておきます。

スポンサーリンク

発生した問題(ApplicationPasswordsプラグイン)

Application Passwords というプラグインを使用し、
WordPress API 実行用のユーザーのパスワードを作成しようとした際、
Wordpress のユーザー管理画面に以下のようなメッセージが表示され、
WordPress API の実行自体も失敗してしまう。

「Due to a potential server misconfiguration, it seems that HTTP Basic Authorization may not work for the REST API on this site: Authorization headers are not being sent to WordPress by the web server. You can learn more about this problem, and a possible solution, on our GitHub Wiki.」

ApplicationPasswords プラグインのエラーメッセージ

エラーメッセージとしては、

『サーバーの設定ミスの可能性があるため、このサイトのREST APIでは
HTTP基本認証が機能しない可能性があります。
認証ヘッダーがWebサーバーによってWordPressに送信されていません。
この問題の詳細と可能な解決策については GitHub Wikiをご覧ください。』

とのことでした。

言われたとおりに GitHub を確認したりググったりしてみた結果、
何とか解決まで至ることができましたので、その詳細について記載していきます。

スポンサーリンク

問題の対処策

今回の問題については、Xserver 側のデフォルト設定によるもののようです。

そのため、Xserver の管理画面から、設定ファイルを編集し、
Basic 認証が正常に行われるようにしてやれば OK
です。

実際の手順は以下です。

  • XServer の管理画面へログイン
  • .htaccess ファイルを修正
  • WordPress上のエラーメッセージがなくなったことを確認

順を追って説明していきます。

XServer の管理画面へログイン

まずは以下のリンクから Xserver の管理パネルへログインしてください。
X Xserver ログイン画面

アカウントID(またはメールアドレス)とパスワードを入力し、
「ログイン」をクリックします。
WordPress ログイン画面



次の画面では、WordPress で使用しているサーバの、
「サーバー管理」ボタンをクリックします。
XServer のサーバー管理画面移行

Xserver の管理パネルへログインできたことを確認してください。


次に、WordPress で使用しているドメイン設定へ移動します。

管理パネルの左下にある「設定対象ドメイン」欄にて、
WordPress で使用しているドメイン(今回 API のエラーが発生しているドメイン)を
選択し、「設定する」を押下します。

ドメイン設定画面

これで、エラー対象ドメインの管理画面に移りました。

.htaccess ファイルを修正

管理パネル上の「ホームページ」メニューから、
「.htaccess編集」をクリックします。

管理パネル上から.htaccess編集をクリックする



「.htaccess編集」タブを選択してください。
.htaccess ファイルの内容を確認することができます。

.htaccess ファイルの内容



ここから、.htaccess の内容を修正していきますが、

.htaccess ファイルは誤って編集してしまうと
サイトが表示されなくなる可能性もあるため、
編集前に必ず内容のバックアップをしておいてください。


Default では以下のような内容になっていると思います。

これを修正して、以下のようにしてやります。

編集個所は、
“RewriteEngine On” の後に
“RewriteRule .* – [E=REMOTE_USER:%{HTTP:Authorization}]”
の行を追加
しているところのみです。


編集済み.htaccessファイル

修正が終わったら、「実行する」ボタンを押下し、
編集内容を保存します。

WordPress上のエラーメッセージがなくなったことを確認

ここまで作業できたら、
WordPress のユーザー管理画面に戻り、先ほどのエラー出力が
なくなっていることを確認します。
(F5キーなどで、画面を更新してから確認してください)

エラーメッセージが画面上から消えたことを確認

この状態で WordPress API を実行すれば、問題なく処理が進むはずです。

参考にしたサイト

当問題を解決するにあたり、以下のサイトを参考にさせていただきました。
ありがとうございました。

参考になれば幸いです^^

コメント