Windows

我在接收 Loopback 和 REST API WordPress 錯誤時做錯了什麼?

  • January 25, 2021

在此過程中,我深入研究了自我託管和學習。我對其中的大部分內容都有相當的了解。我只花了一天時間就拼湊出一個“工作”的 NGINX、MySQL、PHP、phpMyAdmin 和 SSL。我這樣做純粹是為了教育目的和樂趣。如果你願意的話,一個遊樂場。

版本資訊在這裡:

版本資訊在這裡.

LetsEncrypt 通過 certbot 獲得的 SSL。主機是 Windows Server 2016 Standard 10.0.14393 x64。

我目前遇到了一些問題。

  • WordPress錯誤:The REST API request failed due to an error: cURL error 28: Operation timed out after 10010 milliseconds with 0 bytes received (http_request_failed)
  • WordPress錯誤:The loopback request to your site failed, this means features relying on them are not currently working as expected: cURL error 28: Operation timed out after 10008 milliseconds with 0 bytes received (http_request_failed)

我查看了一些日誌,但無法確定它的正面或反面。我花了整整一天的時間嘗試我遇到的隨機事情。因為 WordPress 啟用或安裝了零個外掛,並且只安裝和使用了一個主題(預設 2020),我被引導相信這是伺服器配置的問題。作為參考,以下是 NGINX 使用的兩個文件:

WordPress似乎執行良好。但我更喜歡沒有錯誤。我不確定故障在哪裡。任何幫助將不勝感激。謝謝。

我已經解決了。它是兩部分。

執行curl -v example.com以我的初始配置返回失敗。在進行了一些更改後,我設法獲得了 200。這些更改是針對 wordpress.conf 文件的:

upstream php {
   server 127.0.0.1:9000;
}

server {
   listen 80;
   listen [::]:80;
   return 301 https://$host$request_uri;
}

server {
   listen 443 ssl http2;
   listen [::]:443 ssl http2;
   server_name www.domain.com;

   # truncated conf
}

這裡的關鍵部分是wwwserver_name以前沒有的。我的 DNS 記錄不需要www. 如果我刪除www請求失敗。這也解釋了為什麼當我www.example.com在 URL 框中輸入 403 時,我的伺服器設置不正確。現在它正確地重定向任何 URL 組合或tohttp/https的存在/不存在。發布問題後,我還最終找到了失去的塊並添加了它。請參閱有關該問題的評論。www``https://example.com``upstream php

環回工作,但在一定程度上。WordPress 仍然說有一個錯誤。感謝這兩條評論,我發現了原因。要完成環回,您需要 PHP FPM。Windows 不存在。您可以php-cgi.exe通過使用如下方式讓 nginx 產生一個額外的程序來解決此問題upstream php

upstream php {
   server 127.0.0.1:9000;
   server 127.0.0.1:9001;
}

正如我所觀察到的,這允許 nginx 處理 WordPress 請求的環回,然後錯誤消失。不幸的是,這是不可行的。就像評論說的那樣,php-cgi.exe程序最終會崩潰。導致 PHP 完全停止破壞網站。

看來我畢竟需要 Linux。可能必須更改不會導致 Linux 出錯的硬體。

引用自:https://serverfault.com/questions/1050773