2013-01-22 47 views
1

我添加頭功能的hello.php樣品中,如下:如何設置HTTP響應報頭時PHP是與用於克寰

<?php 
    header("xxxxx: yyyyy"); 
    fwrite(STDOUT, "see headers.<br><br>Hello, PHP!<br>current working directory: ".getcwd()); 
    exit(200); // return an HTTP code (200:'OK') 
?> 

但在螢火沒有發現這樣的報頭。
誰能解釋如何在php中使用gwan添加頭文件?

+0

如果您正在運行的CLI SAPI,有沒有辦法來設置頭 - 爲什麼earther有人會運行一個超快速的內容服務器需要將它連接起來通過最慢的接口到PHP? – symcbean

+0

如果是這樣,我應該添加gwan的處理程序的標題? –

+0

真的你應該使用fastCGI - 但是IIRC沒有官方支持的GWAN方面的插件(封閉源代碼開發的樂趣) – symcbean

回答

2

感謝吉爾和理查,
現在,這是我根據你的意見。 PHP在gwan中使用自定義標題。

<?php 
$output='See headers....Hello, PHP!<br>from gwan'; 
    $len=strlen($output); 
    fwrite(STDOUT, "HTTP/1.0\r\nContent-Type: text/html; charset=UTF-8\r\nConnection: close\r\nContent-Length: $len\r\nxxxxx: yyyyy\r\n\r\n$output"); 
    exit(1); 
?> 

我使用ab -c 1000 -n 100000 http:127.0.0.1/?hello.php
內存使用量增加2.9GiB的0.7%= 0.0203GiB
CPU使用率從20 %增加至75%= 50%(AB運行​​在與gwan相同的機器)
我做了它在我的舊機器英特爾P9300 2.26GHz x 2,Ubuntu 12.04

它完成了9。543秒無故障
約請求/秒

+2

對於**英特爾Core2 Duo P9300 @ 2.26GHz [passmark得分:1509] **:http://www.cpubenchmark.net/cpu.php?cpu=Intel+Core2+Duo+P9300+%40+2.26GHz,這並不壞(最近的CPU是10倍更強大)。請注意,如果讓G-WAN使用exit(200)生成HTTP標頭,則此PHP腳本運行得更快;而不是退出(1); – Gil

0

湯姆是對的。要繞過由G-WAN注入的HTTP標頭(因爲您的標籤爲returned 200),您應該返回1-99範圍內的值(無效的HTTP狀態碼)。

然後,您將擁有HTTP標頭(如果有的話)將被使用。

return 0;表示關閉連接,return 200-600;保留給HTTP返回碼,告訴G-WAN生成對應的HTTP頭。

PDF手冊是一種值得閱讀的資源。


只是一個字的關於"fastCGI":它決不會比從多個線程並行運行腳本快... 沒有有史以來涉及網絡(服務器和PHP之間)。

的多箇中間層或添加接口,速度較慢的事情會這樣通過使用網絡接口"fastCGI"運行腳本必然不是直接運行的代碼(我甚至不解決的事實慢的PHP「fastCGI」服務器速度很慢,fastCGI協議本身非常複雜,因此速度很慢,而且,最重要的是,fasctCGI實現不是次優的)。

現在我們有多核CPU,並行性不一定涉及HORIZONTAL可伸縮性(通過在許多連接的機器上運行代碼獲得的可伸縮性)。

VERTICALLY VERTICALLY(位於本地計算機上的許多CPU核心上)比較便宜(更快,更節能)。由於CPU內核數量呈指數級增長,因此無法回頭:隨着時間的推移,縮放VERTICALLY將越來越有意義。