Php

Lighttpd:通過 PHP 請求本地 URL

  • February 18, 2011

我有一個為網站提供內容的網路伺服器,我們稱之為“ domain.com ”。在那個站點上,我有幾個提供內容的 PHP 腳本。當有人瀏覽該站點時,一切正常。

如果我在 PHP(使用 Curl/Fopen)中請求我自己網站上的 URL(我將呼叫“domain.com/api/something.php?x=y”,我會得到一個超時,該網站無法聯繫。這僅在我通過 PHP 請求該 URL 時發生,而不是在通過 CLI 呼叫時發生。當我從外部瀏覽 URL 時,這是有效的。

在伺服器上,我可以“curl”或“wget”,這很有效。我可以使用 PHP 來請求外部託管的頁面(google.com 等),但我不能使用託管在同一伺服器上的 lighttpd 配置上的頁面來做到這一點。

這對任何人來說都很熟悉嗎?是否存在可能與此衝突的已知參數?

弄清楚了!預設情況下,FreeBSD 上的 Lighttpd 配置如下:

fastcgi.server = ( ".php" =>
                  ( "php-local" =>
                    (
                      "socket" => socket_dir + "/php-fastcgi-1.socket",
#                       "bin-path" => server_root + "/cgi-bin/php5",
                      "bin-path" => "/usr/local/bin/php-cgi",
                      "max-procs" => 1,
                      "broken-scriptfilename" => "enable",
                    )
                  ),

關鍵是:

"max-procs" => 1,

如果您將其更改為 50,則它可以正常工作。我假設它需要分叉另一個程序或其他東西來發出 CURL 請求,並且不能因為 max-procs 預設設置為 1。

更改它,重新啟動 Lighttpd,完美執行。是的!

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