मैं यह समझने की कोशिश कर रहा हूं कि php का सामग्री-लंबाई शीर्षलेख ओवरराइट क्यों हो जाता है। यह demo.phpphp से सामग्री-लंबाई शीर्षलेख ओवरराइट किया गया है!
<?php
header("Content-Length: 21474836470");die;
?>
हेडर
curl -I http://someserver.com/demo.php
HTTP/1.1 200 OK
Date: Tue, 19 Jul 2011 13:44:11 GMT
Server: Apache/2.2.16 (Debian)
X-Powered-By: PHP/5.3.3-7+squeeze3
Content-Length: 2147483647
Cache-Control: must-revalidate
Content-Type: text/html; charset=UTF-8
देखें सामग्री-लंबाई लाने के लिए एक अनुरोध है? यह 2147483647 बाइट्स पर अधिकतम है, जो 2 जीबी है।
अब यदि ऐसा है तो
<?php
header("Dummy-header: 21474836470");die;
?>
तरह demo.php संशोधित हैडर ओवरराइट नहीं कर रहा है।
HTTP/1.1 200 OK
Date: Tue, 19 Jul 2011 13:49:11 GMT
Server: Apache/2.2.16 (Debian)
X-Powered-By: PHP/5.3.3-7+squeeze3
Dummy-header: : 21474836470
Cache-Control: must-revalidate
Content-Type: text/html; charset=UTF-8
यहाँ मॉड्यूल लोड
[email protected]:/etc/apache2# ls /etc/apache2/mods-enabled/
alias.conf authz_host.load dav_fs.load expires.load php5.conf reqtimeout.load status.conf
alias.load authz_user.load dav.load headers.load php5.load rewrite.load status.load
auth_basic.load autoindex.conf dav_lock.load mime.conf proxy.conf setenvif.conf
authn_file.load autoindex.load dir.conf mime.load proxy_http.load setenvif.load
authz_default.load cgi.load dir.load negotiation.conf proxy.load ssl.conf
authz_groupfile.load dav_fs.conf env.load negotiation.load reqtimeout.conf ssl.load
यहाँ एक phpinfo() दिए गए हैं: http://pastehtml.com/view/b0z02p8zc.html
अपाचे 2GB से अधिक समर्थन फ़ाइलों करता है, के रूप में मैं सीधे बड़े फ़ाइल तक पहुँचने के लिए किसी भी समस्या नहीं है :
curl -I http://www.someserver.com/somehugefile.zip (5.3 Gig)
HTTP/1.1 200 OK
Date: Tue, 19 Jul 2011 14:00:25 GMT
Server: Apache/2.2.16 (Debian)
Last-Modified: Fri, 15 Jul 2011 08:50:22 GMT
ETag: "301911-1548e4b11-4a817bd63ef80"
Accept-Ranges: bytes
Content-Length: 5713578769
Cache-Control: must-revalidate
Content-Type: application/zip
यहाँ एक uname -एक
हैLinux pat.someserver.com 2.6.38.2-grsec-xxxx-grs-ipv6-32 #1 SMP Fri Apr 15 17:41:28 UTC 2011 i686 GNU/Linux
आशा है कि कोई मदद कर सकता है!
चियर्स
यह अभी भी एक 32 बिट पीएचपी के साथ एक 32 बिट अपाचे है के लिए धन्यवाद - PHP के एक हस्ताक्षरित 32 बिट पूर्णांक, इसलिए काट-छांट में अपने bigint काटने। –
बस एक अनुमान: PHP स्वचालित रूप से इस हेडर को ओवरराइड करता है। संभवतः आप 32 बिट सिस्टम का उपयोग करते हैं, इसलिए PHP बड़े पूर्णांक के साथ काम करने में असमर्थ है। – Karolis