ワードプレスでエラー: cURL error 28
ワードプレスのツール サイトヘルスを確認すると以下のようなエラーが見られた場合を考えてみます.
REST API は WordPress や他のアプリケーションがサーバーと通信する手段の1つです。たとえばブロックエディター画面は、投稿や固定ページの表示や保存に REST API を使用しています。
REST API リクエストはエラーのために失敗しました。
エラー: cURL error 28: Connection timed out after 10024 milliseconds (http_request_failed)
ループバックリクエストは予約イベントの実行に使用されます。またテーマやプラグインの組み込みエディターでは、コードの安定性の確認に使用されます。
サイトへのループバックリクエストは失敗しました。現在、依存する機能は想定どおりに動作していません。
エラー: cURL error 28: Connection timed out after 10017 milliseconds (http_request_failed)
予約したイベント wp_https_detection の実行に失敗しました。サイトは動作しますが、予約した投稿や自動更新は正しく動作しないかもしれません。
cURL とは
cURL はカールと呼ばれ
cURL is a command-line tool for getting or sending data including files using URL syntax. Since cURL uses libcurl, it supports every protocol libcurl supports
cURLは、URL構文を使用してファイルを含むデータを取得または送信するためのコマンドラインツールです。 cURLはlibcurlを使用するため、libcurlがサポートするすべてのプロトコルをサポートします
cURL error: 28 (OPERATION_TIMEOUTED)
Curl error: 28 は Webサイトでcurlリクエストの実行中にタイムアウトが発生した場合に発生します。
- ネットワーク/ファイアウォール設定
- DNS解決(名前解決)の失敗
- サーバーの制限
- セキュリティモジュール
LAN内でDNS解決の失敗
DNS (ドメインネームサービス )名前と IP アドレスがうまくマッチできない時(名前解決)にタイムアウトになって、cURL error 28 が発生することが多いようです.
サーバーが外部にあって、外部のDNS で名前解決されるのであれば、error:28は http と https が怪しいかもしれません.
ワードプレスの設定とWebサーバー ( apache nginx ) の設定をチェックする必要があるかもしれません.
WEBサーバーとWEBブラウザを使用しているローカルPCが同一のLAN内にあって、名前解決できるDNS が LAN 内にない場合は、ローカルPC とサーバーの/etc/hosts にサーバー名とサーバーIP を書き込むとエラーが解消できる可能性があります.
/etc/hosts には、サーバー名は * ワイルドカードは使えないので、URL の数だけ書き足す必要があるので、注意してください.
例えば、上のイラストのように、webサーバーとPCがLAN(ローカルエリアネットワーク)で接続されていた場合、PCからwebサーバーにWEBブラウザでドメイン名、例えば、http://domain.jp でアクセスできない場合
- サーバーの /etc/hosts を確認
- PC の/etc/hosts を確認
サーバーとPCの /etc/hosts ファイルに IP と ドメイン名を追加する
例えば
/etc/hosts
192.168.5.11 domain.jp
192.168.5.11 web1.domain.jp
192.168.5.11 web2.domain.jp
設定によってIPアドレスやドメイン名は異なるので注意してください.