Php
Lighttpd:通過 PHP 請求本地 URL
我有一個為網站提供內容的網路伺服器,我們稱之為“ 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,完美執行。是的!