PHP घातक त्रुटि को हल करने के लिए कैसे: 8388608 बाइट्स की अनुमत स्मृति आकार समाप्त हो गया


ini_set ( "memory_limit" "16M");

यह आपकी मेमोरी सीमा को 16 एमबी पर सेट करेगा, बल्कि8 एमबी से अधिक। आप कर सकते हैं, और चाहिए, इस संख्या के साथ बेला ताकि यह त्रुटि संदेश को दोहराए बिना जितना संभव हो उतना कम हो। यह केवल उस विशेष PHP फ़ाइल के लिए मेमोरी सीमा को बदल देगा।
वैकल्पिक रूप से, आप अपनी php.ini फ़ाइल को मेमोरी लिमिट तक बदल सकते हैं। यह आपके सर्वर पर सभी लिपियों को प्रभावित करेगा। बस php.ini खोलें और उस लाइन को खोजें जो "मैमोरी_लिमिट" पढ़ती है और इसे बदल देती है:
memory_limit = 16M

मैंने अपने स्वयं के PHP में देखा है।ini फ़ाइल कि मेरा डिफ़ॉल्ट 128M पर बहुत अधिक है। इसलिए, अगर मैं कभी भी इस त्रुटि संदेश को प्राप्त कर लेता तो यह पढ़ता: "घातक त्रुटि: 134217728 बाइट्स की अनुमत मेमोरी का आकार समाप्त हो गया ..." और स्पष्ट रूप से एक बहुत बड़ी समस्या है। लेकिन इसमें "घातक त्रुटि: 8388608 बाइट्स की अनुमत स्मृति आकार ..." या "घातक त्रुटि: 16777216 बाइट्स की स्मृति आकार अनुमत ..." या जो भी हो, के समान वर्कअराउंड है। जाहिरा तौर पर, memory_limit डिफ़ॉल्ट को 8M से 16M तक PHP 5.2.0 में लिया गया था और अब PHP 5.3.0 के लिए 128M है, जो यह बताता है कि आपको यह त्रुटि संदेश बिल्कुल क्यों नहीं मिल सकता है।
आप PHP.ini में memory_limit –1 को सेट करके मेमोरी लिमिट को डिसेबल भी कर सकते हैं।
memory_limit = -1
यह आमतौर पर एक अच्छा विचार नहीं है, हालांकि, स्पष्ट कारणों के लिए।
नोट: आप अपने .htaccess पेज में memory_limit लाइन का भी उपयोग कर सकते हैं।
अब, याद रखें, यह केवल एक समाधान है। वास्तव में, आपकी PHP स्क्रिप्ट चाहिए नहीं 8 एमबी से अधिक हो, जब तक कि आपकी अपलोडिंग फाइलें या नहींऐसा कुछ और करना जो स्पष्ट रूप से बहुत सारे स्मृति उपयोग को ले रहा हो। आपको वास्तव में क्या करना चाहिए यह पता लगाने की कोशिश कर रहा है कि आपकी स्क्रिप्ट इतनी मेमोरी और इसे ठीक करने का प्रयास क्यों कर रही है। यह जानने का एक तरीका है कि आपकी PHP स्क्रिप्ट कितनी मेमोरी का उपयोग कर रही है, यह है कि memory_get_usage () PHP फ़ंक्शन का उपयोग करें। अपनी स्क्रिप्ट के किसी भी बिंदु पर यह पता लगाने के लिए कि आपकी मेमोरी उपयोग कहाँ स्पाइकिंग है:
इको मेमोरी_गेट_सैज ();
यदि आपको ड्रुपल या जुमला में यह त्रुटि संदेश मिल रहा है, तो संभावित अपराधी एक नया मॉड्यूल या पैकेज है। उदाहरण के लिए, Drupal में, व्यवस्थापक / मॉड्यूल पृष्ठ लोड होता है हर एक अपने Drupal स्थापना में मॉड्यूल, जो प्राप्त कर सकते हैंबाल अगर एक कस्टम मॉड्यूल छोटी गाड़ी है, भ्रष्ट या हैक किया गया है। एक-एक करके मॉड्यूल को निष्क्रिय करने का प्रयास करें, जिससे पार्टी को नीचे लाया जा सके। इसके अलावा, कुछ होस्टिंग प्रदाता आपके PHP कोड के लिए मेमोरी सीमा को संशोधित करने के आपके प्रयासों को अनदेखा करेंगे, ताकि आपको आपकी सहायता करने के लिए अपने होस्टिंग समर्थन से संपर्क करने की आवश्यकता हो। मुझे लगता है कि कभी-कभी मुझे php.ini फ़ाइल को संपादित करने की आवश्यकता होती है और कभी-कभी कोड को .htaccess फ़ाइल में डाल दिया जाता है। किसी भी तरह से, उम्मीद है, यह जानकारी आपको अपने रास्ते पर लाने के लिए पर्याप्त है!
एक टिप्पणी छोड़ें