मैं एक नए उत्पादन सर्वर के साथ एक समस्या में चल रहा हूँ जो मैं परियोजनाओं को स्थानांतरित कर रहा हूँ। PHP अनुप्रयोगों का HTML आउटपुट Apache mod_deflate मॉड्यूल द्वारा संपीड़ित नहीं है। अन्य संसाधन, स्टाइलशीट और जावास्क्रिप्ट फ़ाइलों के रूप में, यहां तक कि HTML पृष्ठ, जो PHP आउटपुट के रूप में एक ही सामग्री-प्रकार (पाठ / HTML) के साथ परोसे जाते हैं, संकुचित होते हैं!
परियोजनाएं .htaccess में निम्नलिखित नियमों (HTML5 बॉयलरप्लेट से) का उपयोग करती हैं:
<IfModule mod_deflate.c> # मैनगल्ड हेडर्स के लिए फोर्स डिफॉल्ट डेवलपर .yahoo.com/blogs/ydn/posts/2010/12/pushing-beyond-gzipping/ <IfModule mod_setenvif.c> <IfModule mod_headers.c> SetEnvIfNoCase ^ (Accept-EncodXng | X-cept-Encoding। 3 {15} | ~ {15} | - {15}) $ ^ ((gzip | deflate) \ _ *,? S *) + | [X ~ -] {4,13} $ HAVE_Accept-Encoding RequestHeader स्वीकार-एन्कोडिंग "गज़िप, डिफ्लेट" env = HAVE_Accept-Encoding </ IfModule> </ IfModule> # HTML, TXT, CSS, JavaScript, JSON, XML, HTC: <IfModule filter_module> FilterDeclare COMPRESS FilterProvider कम्प्यूट डिप्लीट रिस्पॉन्ट = Content-Type $ text / html FilterProvider कम्प्यूट डिप्लीट रिस्पॉन्ट = Content-Type $ text / css FilterProvider कम्प्यूटरी डिफाल्ट सम्मान = सामग्री-प्रकार $ पाठ / सादा FilterProvider कम्प्यूटरी डिफाल्ट सम्मान = सामग्री-प्रकार $ पाठ / xml FilterProvider कम्प्यूटरी डिफाल्ट सम्मान = सामग्री-प्रकार $ पाठ / x- घटक FilterProvider कम्प्यूटरी डिफाल्ट सम्मान = सामग्री-प्रकार $ एप्लिकेशन / जावास्क्रिप्ट FilterProvider कम्प्यूट डिपॉजिट रिस्पॉन्ट = सामग्री-प्रकार $ एप्लिकेशन / json FilterProvider कम्प्यूटरी डिफाल्ट सम्मान = सामग्री-प्रकार $ एप्लिकेशन / xml FilterProvider कम्प्यूटर डिफाल्ट सम्मान = सामग्री-प्रकार $ एप्लिकेशन / xhtml + xml FilterProvider कम्प्यूटरी डिफाल्ट सम्मान = सामग्री-प्रकार $ एप्लिकेशन / rss + xml FilterProvider कम्प्यूटरी डिफाल्ट सम्मान = सामग्री-प्रकार $ एप्लिकेशन / परमाणु + xml FilterProvider कम्प्यूटरी डिफाल्ट सम्मान = सामग्री-प्रकार $ एप्लिकेशन / vnd.ms-fontobject FilterProvider COMPRESS DEFLATE resp = सामग्री-प्रकार $ छवि / svg + xml FilterProvider कम्प्यूटर डिफाल्ट सम्मान = सामग्री-प्रकार $ छवि / x-icon FilterProvider कम्प्यूटरी डिफाल्ट सम्मान = सामग्री-प्रकार $ एप्लिकेशन / x-font-ttf FilterProvider कम्प्यूटरी डिफाल्ट सम्मान = सामग्री-प्रकार $ फॉन्ट / ऑप्पेन्टाइप फ़िल्टरचैन कम्पास FilterProtocol COMPRESS DEFLATE परिवर्तन = हाँ; byteranges = नहीं </ IfModule> </ IfModule>
हमारे पास एक परीक्षण मशीन है जो समान Apache, OS और PHP संस्करण चलाती है। उस मशीन पर कंप्रेशन PHP आउटपुट पर ठीक काम करता है। मैंने अपाचे और पीएचपी कॉन्फिग फाइलों की जाँच की और उनकी तुलना की है, जहाँ तक मैं बता सकता हूँ।
मैंने PHP की सामग्री को आउटपुट करने, आउटपुट बफ़रिंग का उपयोग करके या सामग्री को सीधे सादा करने के कई शिष्टाचार आज़माए हैं। एक ही बात, कोई संपीड़न नहीं।
एक PHP आउटपुट का उदाहरण प्रतिक्रिया हेडर:
HTTP / 1.1 200 ठीक है दिनांक: बुध, २५ अप्रैल २०१२ २३:३०:59 जीएमटी सर्वर: अपाचे स्वीकार-रंग: बाइट्स अवसान: थू, 19 नवंबर 1981 08:52:00 GMT कैश-कंट्रोल: जनता प्रज्ञा: नो-कैश वैरी: यूजर-एजेंट कीप-अलाइव: टाइमआउट = ५, अधिकतम = ९ time कनेक्शन: कीप-अलाइव स्थानांतरण-एन्कोडिंग: chunked सामग्री-प्रकार: पाठ / html; charset = utf-8
एक सीएसएस फ़ाइल पर प्रतिक्रिया हेडर का उदाहरण:
HTTP / 1.1 200 ठीक है दिनांक: बुध, २५ अप्रैल २०१२ २३:३०:59 जीएमटी सर्वर: अपाचे अंतिम-संशोधित: सोम, 04 जुलाई 2011 19:12:36 GMT वैरी: स्वीकार-एनकोडिंग, उपयोगकर्ता-एजेंट सामग्री-एनकोडिंग: gzip कैश-कंट्रोल: जनता अवसान: शुक्र, 25 मई 2012 23:30:59 GMT सामग्री-लंबाई: 714 कीप-अलाइव: टाइमआउट = ५, अधिकतम = १०० कनेक्शन: कीप-अलाइव सामग्री-प्रकार: पाठ / सीएसएस; charset = utf-8
क्या किसी को कोई सुराग है या उसी "समस्या" का अनुभव हुआ है?
धन्यवाद!