व्यवस्थापक में 256MB से अधिक मेमोरी का उपयोग कैसे करें?


10

मैं एक फोटोग्राफर के लिए एक साइट का निर्माण कर रहा हूं, जो आज के डिजिटल कैमरों के लिए सामान्य रूप से बड़े चित्रों को अपलोड करता है। छवियाँ काफी मेमोरी इंटेंसिव हैं, विशेष रूप से इमेज ऑपरेशन जैसे थंबनेल बनाना।

इसलिए मैं 256MB से ऊपर के एडमिन में मेमोरी लिमिट बढ़ाना चाहता था - यह कैसे किया जा सकता है? मैंने CGI और PHP को 1 गीगाबाइट तक उपयोग करने की अनुमति दी, लेकिन वर्डप्रेस हमेशा मेमोरी को 256MB तक घटा देता है। किसी भी विचार को उस ग्राहक पक्ष पर कैसे ठीक किया जाए जिसे ऑटो-अपडेट करने में सक्षम होना चाहिए?

अद्यतन: वर्डप्रेस 3.2 से वर्डप्रेस में अधिकतम मेमोरी सीमा चल रही है, फिर से कॉन्फ़िगर-सक्षम हो जाएगी


हे, तुम थोड़ी देर में नहीं देखा है। लगता है कि आप ग्राहकों के साथ व्यस्त हैं; आपके लिए अच्छा हैं! क्या आपने अमेजन एस 3 और ईसी 2 का उपयोग करते हुए शायद इमेज प्रोसेसिंग को बंद करने पर विचार किया है? aws.amazon.com/articles/1602 या Google ऐप इंजन? code.google.com/appengine/docs/python/images/useimages.html या urlimg.com का उपयोग कर रहे हैं ?
10

@MikeSchnikel - हेज! मैं इसे वर्डप्रेस के साथ हल करना चाह रहा हूं। अगर मुझे एक थंबनेल सर्वर सेटअप करने की आवश्यकता है तो मैं वैसे भी वर्डप्रेस का उपयोग नहीं करूंगा। लेकिन लिंक के लिए धन्यवाद, बहुत कम से कम दिलचस्प :)।
हकर्रे

जवाबों:


13

सैद्धांतिक रूप से, अपने config.php का संपादन और wp-settings.php समावेशन से पहले इस पंक्ति को जोड़ें ।

define('WP_MEMORY_LIMIT', '256M');

वर्डप्रेस के लिए अपनी मेमोरी सीमा को 256MB या जो भी मूल्य निर्धारित करना चाहिए, उठाएं। और यह बैठकर काम करेगा। हालाँकि, जैसा कि sorich87 ने बताया , ऐसे कुछ कार्य हैं जो हार्ड कोडित 256 एमबी सीमा के साथ इस सेटिंग को बदल देंगे।

हैक करने के लिए या हैक करने के लिए नहीं

इस बारे में थोड़ी चिंता, WP_MEMORY_LIMITसबसे अजीब WP सेटिंग में से एक है जो मैंने सामना किया है। यदि आप जांचते हैं /wp-includes/default-constants.phpकि आपको यह सेटिंग मिलेगी:

// set memory limits
if ( !defined('WP_MEMORY_LIMIT') ) {
    if( is_multisite() ) {
        define('WP_MEMORY_LIMIT', '64M');
    } else {
        define('WP_MEMORY_LIMIT', '32M');
    }
}

मुझे कभी यह एहसास नहीं हुआ कि WP डिफ़ॉल्ट मेमोरी उपयोग को तब तक कम कर देगा, जब तक कि मुझे WP कोडेक्स में यह नहीं मिल जाता है:

वर्डप्रेस स्वचालित रूप से जांच करेगा कि क्या इस फ़ंक्शन का उपयोग करने से पहले PHP को दर्ज मूल्य से कम मेमोरी आवंटित की गई है। उदाहरण के लिए, यदि PHP को 64MB आवंटित किया गया है, तो इस मान को 64M पर सेट करने की कोई आवश्यकता नहीं है क्योंकि वर्डप्रेस अपने आप सभी 64MB का उपयोग करेगा यदि आवश्यकता हो ( स्रोत )

वह स्पष्टीकरण राहत देने वाला था। हालाँकि, हार्ड कोडेड @ini_set('memory_limit', '256M');एवरीटाइम WP निष्पादन कार्य का उपयोग करने के लिए अधिक मेमोरी की आवश्यकता होती है जिसका कभी उल्लेख नहीं किया गया है । वास्तव में, मुझे WP कोडेक्स के इस अस्पष्ट व्यवहार के बारे में कोई स्पष्टीकरण नहीं मिला है। चूंकि अधिकांश गैर-उपयोगकर्ता-संबंधित फ़ंक्शन या तो प्रलेखित नहीं हैं या कोडेक्स में स्पष्ट रूप से स्पष्ट नहीं हैं।

हालांकि यह सेटिंग अधिकांश मामलों पर अच्छी तरह से काम करती है, यह उन कार्यों को सर्वर पर कम अधिकतम मेमोरी सेटिंग या आपके मामले में, उच्च मेमोरी उपयोग के साथ बेकार कर देगा।

जब तक WP लोग इसे ठीक नहीं करते, मुझे लगता है कि आपका एकमात्र समाधान कोर को संशोधित करना है। आपको यह पोस्ट पढ़ने के लिए दिलचस्प hakre द्वारा लिखित मिल सकती है । वह Trac में एक पैच सिफारिश भी प्रस्तुत करता है । पैच फ़ाइल का पिछला लिंक आपको इस सेटिंग का उपयोग करने वाले फ़ंक्शन की सूची ढूंढने में मदद कर सकता है।

संपादित करें:

यह सबसे मूर्खतापूर्ण जवाब है जो मैंने कभी दिया है क्योंकि मैं आपकी अपनी पोस्ट के लिए एक लिंक देता हूं (बस यह महसूस करें कि ओपी नाम 2 दिनों के बाद हैक्रे था : डी

2 संपादित करें:

जैसा कि टिप्पणी पर उल्लेख किया गया है, यह 3.2 रिलीज द्वारा तय किया गया है


आपका उत्तर मूर्ख होने से बहुत दूर है। सटीक होने के लिए यह मुझे इस सवाल को पोस्ट करने की मूर्खता थी, जबकि मुझे पहले से ही जवाब पता था, और आपकी टिप्पणी पूरी तरह से बताती है कि आप वास्तव में उस पर भाग गए थे। वास्तव में, मेरे सबसे बड़े माफी, लिंक को पोस्ट करना तब तक सही था जब तक कि मैं प्रश्न पोस्ट करते समय खुद को जानता था, इसलिए क्या कहना है? यह स्वीकार करने के लिए खुला है कि धन्यवाद! मुझे आपकी शैली पसंद है और अपने ब्लॉग को आपके उत्तर से जोड़ा (न केवल ब्लॉग पर वापस लिंक किया)।
हैकर

3.2 में यह विन्यास योग्य होना चाहिए: चेंजेसेट 17749
हैक्रे

1

कर रहे हैं @ini_set('memory_limit', '256M');इससे पहले कि छवियों जी.डी. कार्यों से स्मृति में लोड किए गए हैं।

imagecreatefromstring()(पंक्ति २५३, wp-शामिल / media.php) का उपयोग किया जाता है wp_load_image()जिसके द्वारा उपयोग किया जाता है image_resize(फ़ंक्शन थे इमेज प्रोसेसिंग जो थंबनेल निर्माण के लिए किया जाता है)। मेमोरी सीमा 252 पर है, इसलिए, जहां तक ​​मैं देख सकता हूं, बिल्ली के बच्चे को मारने के बिना इसे संशोधित करने का कोई तरीका नहीं है *> :)।

इसमें जीडी फ़ंक्शन load_image_to_edit()(लाइन 200, wp-admin / / / edit -php शामिल हैं) भी हैं। यह एक छवि संपादक द्वारा उपयोग किया जाता है (मैंने इसका उपयोग किया था, क्योंकि मैं वर्डप्रेस को जानता हूं, यह भी नहीं पता था कि इसे खोजने के लिए :))। यदि आपका क्लाइंट इसका उपयोग करता है, तो आप वहां भी मेमोरी लिमिट सेट करना चाह सकते हैं। फिल्टर है load_image_to_edit_path

आशा है कि मेरा उत्तर सहायक है।

* हैकिंग कोर


हाँ, ये छवियों से संबंधित कुछ एडमिन-साइड फ़ंक्शंस में हार्डकोडेड हैं। एक WP_MEMORY_LIMITस्थिर और यहां तक ​​कि एक admin_memory_limitफिल्टर है, लेकिन न तो इन मुट्ठी भर मामलों में परामर्श किया जाता है।
अन्निका बैकस्ट्रॉम

1

स्वाइल - मुझे सिर्फ यही समस्याएं थीं। लानत शब्द कुछ "सुविधाओं" के साथ है, बल्कि अधिक परिष्कृत दृष्टिकोण WP_MEMORY_LIMIT से इसे सेट करने के लिए सभी @ini_set को बदलना है - समस्या हल

इसके अलावा, रनटाइम पर php मानों को बदलना स्मार्ट नहीं है, यह सुनिश्चित नहीं है कि इसे क्यों लागू किया गया है :(


0

आपके विवरण से मुझे लगता है कि यह कोड admin.phpमुद्दा है:

if ( current_user_can( 'manage_options' ) )
    @ini_set( 'memory_limit', apply_filters( 'admin_memory_limit', '256M' ) );

कुछ अजीब बात है कि यह अलग से मेमोरी के उपयोग को नियंत्रित करता है, लेकिन कम से कम यह फिल्टर करने योग्य है।


यह व्यवस्थापक में छवि संचालन के लिए काम नहीं करता है। यदि मैं उस फ़िल्टर का उपयोग करता हूं या नहीं तो वे फिर से 256MB तक कम हो जाते हैं। : /
हकरे

0

मैं सिर्फ धमाकेदार थैंक्स कहना चाहता था। यह पहली पोस्ट है जो मैंने पाया कि मुझे कुछ जानकारी देने में सक्षम था कि wp-config.php में प्रवेश define('WP_MEMORY_LIMIT', '512M');वास्तव में क्यों नहीं किया गया था। मैंने घंटों यह जानने की कोशिश की ...

मैमोरी लिमिट सेट करने के तरीके के बावजूद मेरा इम्पोर्ट 256M एक्जॉस्ट इश्यू के साथ फेल रहा।

यहां वे स्थान हैं जहां मेमोरी सीमा 256M तक हार्डकोड की जाती है (वैसे भी संस्करण 3.0.5 में)।

wp-admin/includes/file.php (line 532)

wp-admin/includes/image-edit.php (line 393 & 498)

wp-includes/media.php (line 252)

टिकट # 13847 में एक पैच संलग्न होता है जो उन स्थानों को कॉन्फ़िगर करता है जो अतिरिक्त निरंतर नाम के साथ सक्षम होते हैं WP_MAX_MEMORY_LIMIT
हक़

हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.