我在接收 Loopback 和 REST API WordPress 錯誤時做錯了什麼?
在此過程中,我深入研究了自我託管和學習。我對其中的大部分內容都有相當的了解。我只花了一天時間就拼湊出一個“工作”的 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 }
這裡的關鍵部分是
www
我server_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 出錯的硬體。