मान लें कि मैं एक Wordpress वेबसाइट के लिए अधिकतम अपलोड सीमा को बदलना चाहता हूं और मैं निम्नलिखित मान देता हूं:
wp-config.php: 128MB php.ini: 256MB .htaccess: 64MB
तो, जरूरत पड़ने पर कौन सा वर्डप्रेस प्राथमिकता तय करेगा?
मान लें कि मैं एक Wordpress वेबसाइट के लिए अधिकतम अपलोड सीमा को बदलना चाहता हूं और मैं निम्नलिखित मान देता हूं:
wp-config.php: 128MB php.ini: 256MB .htaccess: 64MB
तो, जरूरत पड़ने पर कौन सा वर्डप्रेस प्राथमिकता तय करेगा?
जवाबों:
यह अपने प्रश्न से स्पष्ट नहीं है कि क्या आप इन फ़ाइलों में से प्रत्येक में बदल रहे हैं, लेकिन मैं प्रत्येक मामले में यह है में अनुमान पीएचपी सेटिंग ।upload_max_filesize
सामान्य तौर पर, इस क्रम में सेटिंग्स लागू की जाएंगी, पिछले मूल्य के प्रत्येक ओवर-राइडिंग:
ini_set()हालाँकि, इस सेटिंग को इस रूप में परिभाषित किया गया है PHP_INI_PERDIR, जैसा कि इस पृष्ठ पर बताया गया है इसका अर्थ है कि इसका उपयोग नहीं किया जा सकता है ini_set, इसलिए wp-config.phpइसे बदल नहीं सकते। तो उदाहरण में आप प्रश्न में देते हैं, यह 64MB के .htaccess से मूल्य लेगा।
आप इसे echo ini_get('upload_max_filesize');अपने कोड में कहीं चलाकर सत्यापित कर सकते हैं ।
ध्यान दें कि अन्य स्थान मान सेट किए जा सकते हैं जिन्हें मैंने ऊपर सूचीबद्ध नहीं किया है, जैसे कि प्रति-उपयोगकर्ता php.ini फाइलें और अन्य अपाचे कॉन्फ़िगरेशन संदर्भ । इसके अलावा, इनमें से कुछ को अक्षम किया जा सकता है , इसलिए यदि आपका सर्वर .htaccess में ओवर-राइड की अनुमति देने के लिए सेट नहीं है, तो आप वहां कोई मान भी सेट नहीं कर पाएंगे।
यह भी ध्यान दें कि वर्डप्रेस में अपने स्वयं के कुछ कॉन्फ़िगरेशन चर शामिल हैं, जो PHP कॉन्फ़िगरेशन के साथ अलग-अलग तरीकों से बातचीत करते हैं। उदाहरण के लिए, स्टार्टअप में PHP सेटिंग WP_MEMORY_LIMITको बढ़ाने का प्रयास करेगा memory_limit, लेकिन इसमें कोड होता है जो कभी भी जांचता है और इसे कम करता है । इसका कोई सामान्य नियम नहीं है, यह अलग-अलग सेटिंग्स के लिए अलग होगा।
मूल रूप से सभी तीन फाइलों को ध्यान में रखा जाता है।
वर्डप्रेस / आपका सर्वर निम्नलिखित क्रम में जाँच करेगा:
wp-config.php > .htaccess > php.ini
यदि कोई "उच्च स्तर" (बाद में श्रृंखला में) आपके मूल्य को सीमित कर रहा है, तो पूर्व मान को अनदेखा या अधिलेखित कर दिया जाएगा। यदि श्रृंखला का एक टुकड़ा गायब है, .htaccessउदाहरण के लिए मूल्य , इसके बजाय अगले उच्चतर का उपयोग किया जाएगा।
आपके उदाहरण में , 64 एमबी तक .htaccessसीमित होगा max_upload_size, हालांकि आपका सर्वर 256 एमबी तक ठीक रहेगा और वर्डप्रेस पहले फ़ाइल आकार में 128 एमबी तक भी स्वीकार करेगा।
आप फ़ाइल के माध्यम से एक अलग सीमा.htaccess भी निर्धारित कर सकते हैं और ऐसा करने से आप उस मान को अधिलेखित कर देते हैं php.ini, जिससे यह अब प्रभावी मूल्य नहीं रह जाता है। यह बहुत सारे होस्टिंग वातावरण में काम करता है, इसलिए संभावना काफी अच्छी है कि आप इस तरह से बढ़ा सकते हैं या कम कर सकते हैं max_upload_size।
यदि आपके पास अधिक सख्ती से कॉन्फ़िगर किया गया होस्टिंग / सर्वर है, तो संभव है कि सेटिंग्स को ओवरराइड करने का विकल्प php.iniअक्षम हो। इस मामले में, काम max_upload_sizeसे आगे .htaccessबढ़ना, इसलिए यह एक सीमित कारक हो सकता है।
.htaccessसूची के बीच में है, तो वह सीमित कारक क्यों होगा?
मुझे लगता है कि फ़्लेमी को उत्तर को संपादित करना चाहिए, क्योंकि यह सही उत्तर है लेकिन बुरा स्पष्टीकरण है।
Php.ini -> .htaccess -> wp-config.phpवास्तव में प्रत्येक फ़ाइल को पढ़ा जाने वाला क्रम होगा और मान लेने वाले मूल्यों को सेट करेगा कि पहले से परिभाषित नहीं है। लेकिन मामले में पहले से परिभाषित सेटिंग है, यह केवल "ओवर-राइड" होगा यदि नई सेटिंग कम है।
इसका मतलब है, अगर आपके पास 64 एमबी के साथ wp-config.php और 32 एमबी के साथ .htaccess है: wp-config.php उस सेटिंग को ओवरराइड नहीं करेगा क्योंकि पहले से ही कम सीमा है और आप 32Mb के साथ समाप्त हो जाएंगे।
लेकिन अगर आपके पास 32Mb के साथ wp-config.php और 64 MB के साथ .htaccess है, तो wp-config.php पिछली सेटिंग को 32Mb तक कम कर देगा।
संपादित करें: स्पष्ट करने के लिए, जैसा कि IMSoP बताता है, wp-config.php आपको केवल एक आकार सेट करने देता है जो PHP सेटिंग्स की अनुमति से अधिक प्रतिबंधात्मक है अगर आप 'WP_MEMORY_LIMIT' बदल रहे हैं, तो यह आपको इससे परे जाने नहीं देता है। तो यह वास्तव में एक सेटिंग ओवरराइड नहीं है। वास्तव में, रनटाइम पर अलग-अलग बिंदुओं पर किए गए अलग-अलग चेक होते हैं। यदि आप php सेटिंग upload_max_filesizeको बदल रहे हैं क्योंकि वह मानता है (सवाल यह नहीं दर्शाता है कि आप कौन सी सेटिंग्स बदल रहे हैं), जिसका कोई प्रभाव नहीं है।
इसके अलावा, आपको इस बात का ध्यान रखना post_max_sizeहोगा कि upload_max_filesizeआपकी php सेटिंग्स से अधिक होना चाहिए
upload_max_filesizeकार्यावधि में बदला नहीं जा सकता (शायद क्योंकि बहुत देर हो चुकी यह कोई असर करने के लिए है) तो wp-config.phpयह एक ही रास्ता या दूसरे को प्रभावित नहीं कर सकते हैं। 2MB का एक अंतर्निहित डिफ़ॉल्ट भी उल्लेख किया गया है, और आप निश्चित रूप से इसे उससे अधिक सेट कर सकते हैं ।
wp-config.php, ini_set('upload_max_filesize', '32M');उसका कोई प्रभाव नहीं होगा , कभी भी , क्योंकि उस सेटिंग को रन-टाइम पर सेट नहीं किया जा सकता क्योंकि इसे परिभाषित किया गया हैPHP_INI_PERDIR । (जब तक कि प्रलेखन पृष्ठ गलत नहीं है, लेकिन यह संभावना नहीं लगती है।)
wp-config.phpमूल्यों और मनमाने ढंग से PHP मूल्यों के साथ सेटिंग के बीच शायद थोड़ा सा भ्रम हो गया है ini_set()। जैसा कि मैं इसे समझता हूं, wp-config.phpमुख्य रूप से वर्डप्रेस विशिष्ट कॉन्फ़िगरेशन मूल्यों को सेट करने के साथ करना है और इनमें से कई अंतर्निहित PHP कॉन्फ़िगरेशन सेटिंग (जैसे कि उत्तर में उल्लिखित है ) द्वारा वास्तव में प्रतिबंधित हैं (अर्थात ऊपरी सीमा लगाई गई हैं WP_MEMORY_LIMIT)। यह एक वर्डप्रेस चीज़ है। हालाँकि, PHP ini_set()में उपयोग करते समय मनमाने ढंग से PHP कॉन्फिग मान सेट करते समय ऐसा कोई प्रतिबंध नहीं है।