जब php.ini, wp-config और .htaccess की बात आती है, तो कौन सा Wordpress प्राथमिकता देता है?


10

मान लें कि मैं एक Wordpress वेबसाइट के लिए अधिकतम अपलोड सीमा को बदलना चाहता हूं और मैं निम्नलिखित मान देता हूं:

wp-config.php: 128MB php.ini: 256MB .htaccess: 64MB

तो, जरूरत पड़ने पर कौन सा वर्डप्रेस प्राथमिकता तय करेगा?

जवाबों:


13

यह अपने प्रश्न से स्पष्ट नहीं है कि क्या आप इन फ़ाइलों में से प्रत्येक में बदल रहे हैं, लेकिन मैं प्रत्येक मामले में यह है में अनुमान पीएचपी सेटिंगupload_max_filesize

सामान्य तौर पर, इस क्रम में सेटिंग्स लागू की जाएंगी, पिछले मूल्य के प्रत्येक ओवर-राइडिंग:

  1. php.ini
  2. अपाचे निर्देश ।htaccess
  3. को कॉल करता है 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, लेकिन इसमें कोड होता है जो कभी भी जांचता है और इसे कम करता है । इसका कोई सामान्य नियम नहीं है, यह अलग-अलग सेटिंग्स के लिए अलग होगा।


php.ini हमेशा चुनने वाला पहला है।
WpMania.Net

5

मूल रूप से सभी तीन फाइलों को ध्यान में रखा जाता है।

वर्डप्रेस / आपका सर्वर निम्नलिखित क्रम में जाँच करेगा:

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बढ़ना, इसलिए यह एक सीमित कारक हो सकता है।


8
जब आप सवाल पूछते हैं, तो यह "नहीं है कि यह कैसे काम करता है" कैसे आप प्राथमिकताओं की सूची देते हैं? और अगर .htaccessसूची के बीच में है, तो वह सीमित कारक क्यों होगा?
IMSoP

मुझे लगता है कि मेरी अभिव्यक्ति स्पष्ट नहीं थी। मैंने उनके प्रश्न को "अगर मैंने wp-config में एक उच्च मूल्य निर्धारित किया है, तो क्या वह दूसरों पर हावी होगा?" और है कि यह कैसे काम करता नहीं है। ;-) @ बीन्स ने उस पर बेहतर स्पष्टीकरण दिया।
फ़्लॉमी

ठीक है, मैं देख रहा हूं कि अब आपका क्या मतलब है। हालाँकि, जैसा कि मैंने bns के उत्तर के तहत टिप्पणी की है, मैं इस दावे के समर्थन में कोई दस्तावेज नहीं पा सकता कि आप उच्च मूल्य के साथ ओवरराइड नहीं कर सकते। Wp-config.php मान को हमेशा अनदेखा किया जाएगा, जैसा कि मेरे उत्तर में बताया गया है, लेकिन मुझे पूरा यकीन है कि .htaccess में एक उच्च मूल्य php.ini में कम एक को ओवरराइड करेगा।
IMSoP

आप आंशिक रूप से सही हैं, लेकिन .htaccess से php.ini मानों को ओवरराइड किया जा सकता है, मेरा अद्यतन उत्तर देखें।
फ़्लॉमी

आपके अपडेट का तात्पर्य है कि आप केवल .htaccess के माध्यम से कम मान सेट कर सकते हैं । मुझे पता है कि कोई कारण नहीं है कि आप वहाँ एक उच्च मूल्य भी निर्धारित नहीं कर सकते । तथ्य यह है कि तंत्र को निष्क्रिय किया जा सकता है एक अच्छा बिंदु है, और एक मैं अपने जवाब में चमकता हूं, लेकिन यह मानकर कि किसी भी PHP को .htaccess में अनुमति दी जाती है, तो .htaccess में एक मान php.ini में एक मान "बिल्कुल" हावी होगा। उसी सेटिंग के लिए।
IMSoP

3

मुझे लगता है कि फ़्लेमी को उत्तर को संपादित करना चाहिए, क्योंकि यह सही उत्तर है लेकिन बुरा स्पष्टीकरण है। 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 सेटिंग्स से अधिक होना चाहिए


2
क्या आप इसके लिए किसी भी प्रलेखन से जुड़ सकते हैं "केवल तभी ओवर राइडिंग यदि नया मूल्य कम है", क्योंकि यह निश्चित रूप से किसी भी अन्य PHP सेटिंग के सच नहीं है जिसे मैंने देखा है। न ही इस मैनुअल पेज पर इसका उल्लेख है । क्या है उल्लेख किया है, के रूप में मैं अपने जवाब में कहना, कि है upload_max_filesizeकार्यावधि में बदला नहीं जा सकता (शायद क्योंकि बहुत देर हो चुकी यह कोई असर करने के लिए है) तो wp-config.phpयह एक ही रास्ता या दूसरे को प्रभावित नहीं कर सकते हैं। 2MB का एक अंतर्निहित डिफ़ॉल्ट भी उल्लेख किया गया है, और आप निश्चित रूप से इसे उससे अधिक सेट कर सकते हैं ।
IMSoP

मूल रूप से मेरी होस्टिंग प्रदाता समर्थन टीम ने मुझे उसी समय निष्कासित कर दिया था जब मेरे पास एक ही मुद्दा था, मैं ई-मेल की खोज करूंगा और इसे पा लूंगा। मुझे वास्तव में यकीन नहीं है कि अगर सर्वर के अंदर वास्तव में आप मूल्य को ओवरराइड करते हैं, या यह सिर्फ इतना है कि विभिन्न स्थानों पर निष्पादन समय में सत्यापन किए जाते हैं, इस प्रकार व्यवहार इस तरह होता है।
bns

1
बस फिर से दोहराने के लिए, यदि आप जो लाइन जोड़ रहे हैं wp-config.php, ini_set('upload_max_filesize', '32M');उसका कोई प्रभाव नहीं होगा , कभी भी , क्योंकि उस सेटिंग को रन-टाइम पर सेट नहीं किया जा सकता क्योंकि इसे परिभाषित किया गया हैPHP_INI_PERDIR । (जब तक कि प्रलेखन पृष्ठ गलत नहीं है, लेकिन यह संभावना नहीं लगती है।)
IMSoP

नहीं, आप सही हैं। यह वास्तव में एक सेटिंग ओवरराइड नहीं है। इसका सिर्फ एक और अलग प्रतिबंध है, मैं भ्रम से बचने के लिए रिकॉर्डिंग को अद्यतन करूंगा।
bns

1
@IMSoP / bns - मुझे लगता है कि विशिष्ट wp-config.phpमूल्यों और मनमाने ढंग से PHP मूल्यों के साथ सेटिंग के बीच शायद थोड़ा सा भ्रम हो गया है ini_set()। जैसा कि मैं इसे समझता हूं, wp-config.phpमुख्य रूप से वर्डप्रेस विशिष्ट कॉन्फ़िगरेशन मूल्यों को सेट करने के साथ करना है और इनमें से कई अंतर्निहित PHP कॉन्फ़िगरेशन सेटिंग (जैसे कि उत्तर में उल्लिखित है ) द्वारा वास्तव में प्रतिबंधित हैं (अर्थात ऊपरी सीमा लगाई गई हैं WP_MEMORY_LIMIT)। यह एक वर्डप्रेस चीज़ है। हालाँकि, PHP ini_set()में उपयोग करते समय मनमाने ढंग से PHP कॉन्फिग मान सेट करते समय ऐसा कोई प्रतिबंध नहीं है।
MrWhite
हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.