logo

एक्स्ट्रा ब्लॉक टाइप्स (EBT) - नया लेआउट बिल्डर अनुभव❗

एक्स्ट्रा ब्लॉक टाइप्स (EBT) - स्टाइलिश, कस्टमाइज़ेबल ब्लॉक टाइप्स: स्लाइडशो, टैब्स, कार्ड्स, एकॉर्डियन्स और कई अन्य। बैकग्राउंड, DOM बॉक्स, जावास्क्रिप्ट प्लगइन्स के लिए बिल्ट-इन सेटिंग्स। आज ही लेआउट बिल्डिंग का भविष्य अनुभव करें।

डेमो EBT मॉड्यूल्स EBT मॉड्यूल्स डाउनलोड करें

❗एक्स्ट्रा पैराग्राफ टाइप्स (EPT) - नया पैराग्राफ्स अनुभव

एक्स्ट्रा पैराग्राफ टाइप्स (EPT) - एनालॉजिकल पैराग्राफ आधारित मॉड्यूल्स का सेट।

डेमो EPT मॉड्यूल्स EPT मॉड्यूल्स डाउनलोड करें

स्क्रॉल

APC कॉन्फ़िगरेशन। PHP में कैशिंग।

12/10/2025, by Ivan

!!! ध्यान दें !!! यदि आपके पास PHP संस्करण 5.5 या उससे ऊपर है, तो apc का उपयोग न करें — OPCache apc को प्रतिस्थापित करता है और PHP में अंतर्निहित है।

21 मार्च 2013 को, PHP 5.5 बीटा 1 जारी किया गया, जिसमें “Zend OPCache” शामिल है — ऐसा लगता है कि यह भविष्य में APC के स्थान पर होगा, क्योंकि यह PHP कोर में शामिल है और प्रत्येक नए रिलीज़ के साथ रखरखाव करना आवश्यक होगा

APC — PHP के लिए एक वैकल्पिक कैश है, जो PHP ऑपरेशन कोड को कैश में लिखता है, या जैसा कि डेवलपर्स इसे वर्णन करते हैं: “APC एक मुफ्त, ओपन-सोर्स और विश्वसनीय प्रणाली है जो PHP इंटरमीडिएट कोड को कैश और अनुकूलित करती है।”

PHP एक उच्च-स्तरीय भाषा है। अन्य उच्च-स्तरीय भाषाओं की तरह, इसे विभिन्न प्लेटफार्मों पर संकलित किया जा सकता है। कंटेंट मैनेजमेंट सिस्टम जैसे Drupal सैकड़ों, यदि हजारों नहीं, PHP स्क्रिप्ट्स से बने होते हैं, और ऐसी प्रणालियों की मॉड्यूलर प्रकृति का मतलब है कि हर पेज लोड पर वास्तव में सैकड़ों स्क्रिप्ट्स निष्पादित हो सकते हैं। उच्च-स्तरीय भाषाओं के विपरीत, PHP रनटाइम पर ही बाइट-कोड में परिवर्तित होता है। यहीं पर APC मदद करता है: APC संकलित स्क्रिप्ट की एक प्रति मेमोरी में सहेज सकता है और तुरंत उपयोग के लिए तैयार रखता है, जिससे Drupal को चलाने के लिए आवश्यक संसाधनों में काफी कमी आती है। (ध्यान दें कि कुछ भाषाओं में यह स्वचालित रूप से किया जाता है — उदाहरण के लिए, सर्वर पर Python स्क्रिप्ट Apache इंटरप्रेटर को भेजी जाती है, जो स्क्रिप्ट का संकलित संस्करण पास में रखता है ताकि भविष्य में तेज़ी से उपयोग किया जा सके।)
APC को कॉन्फ़िगर करना बहुत सरल है। सबसे पहले इसे स्थापित करें:

sudo apt-get install php-pear
sudo apt-get install php5-dev apache2-prefork-dev build-essential
sudo pecl install apc

अब आपको apc.php फ़ाइल, जिसे मैंने इस पाठ के साथ संलग्न किया है, सर्वर पर अपलोड करनी है, फिर Apache को पुनः आरंभ करें:

sudo /etc/init.d/apache2 restart

अब आप फ़ाइल http://test/apc.php खोल सकते हैं और apc सांख्यिकी देख सकते हैं।

Drupal APC

आपको लगभग इस तरह की सांख्यिकी दिखाई देगी। जैसा कि ग्राफ़ पर देखा जा सकता है, स्थिति बहुत अच्छी नहीं है। कैश में फ़ाइलों की अनुपस्थिति (MISS) की संख्या बहुत अधिक है और कैश में मौजूद फ़ाइलों (HITS) की संख्या बहुत कम। साथ ही APC मेमोरी में फ़्रैग्मेंटेशन भी उच्च है। यह सब APC के अक्षम उपयोग को दर्शाता है। ऐसा क्यों होता है:

मेमोरी की कमी: यदि आपके पास APC के लिए केवल 8 MB है, लेकिन लोड की जाने वाली स्क्रिप्ट्स 12 MB हैं, तो इन फ़ाइलों के लिए 8 MB पर्याप्त नहीं होगा, इसलिए नए MISS दिखाई देंगे।

फ़्रैग्मेंटेशन: संभव है कि आपके पास APC के लिए 32 MB मेमोरी हो, लेकिन फ़ाइलें 40 MB की हों। हालांकि, सभी फ़ाइलें हमेशा उपयोग में नहीं होतीं। उदाहरण के लिए, कोई मॉड्यूल कभी-कभी लोड होता है और शायद ही उपयोग किया जाता है। और APC सेटिंग्स के कारण ये फ़ाइलें कैश में बिना उपयोग के पड़ी रह सकती हैं, जबकि सक्रिय फ़ाइलों को कैशिंग की आवश्यकता होती है। कभी-कभी बड़ी फ़ाइलों को कैश में फिट करने के लिए उन्हें दो भागों में विभाजित करना पड़ता है, जिससे मेमोरी में खाली जगहें बनती हैं।

अब APC कॉन्फ़िगरेशन फ़ील्ड्स को समझते हैं। Debian/Ubuntu में APC का कॉन्फ़िगरेशन फ़ाइल इस स्थान पर होता है: /etc/php5/conf.d/apc.ini:

apc.enabled=1

APC सक्षम है। यह एक स्पष्ट लेकिन महत्वपूर्ण सेटिंग है। APC को निष्क्रिय करने से प्रोडक्शन सर्वर पर प्रदर्शन में कमी आ सकती है।

apc.shm_segments=1
apc.shm_size=32

ये सेटिंग्स बताती हैं कि APC के लिए कितनी मेमोरी आवंटित की जाए। apc.shm_segments=1 का अर्थ है एक मेमोरी सेगमेंट आवंटित किया गया है, और apc.shm_size=32 का अर्थ है कि इसका आकार 32 MB है। आप इस आकार को 64 MB में बदल सकते हैं और Apache को पुनः आरंभ कर सकते हैं। यदि MISS की संख्या 1% से अधिक है, तो इसे 128 MB तक बढ़ाएँ, और आगे भी आवश्यकतानुसार बढ़ाएँ। यह APC के लिए सबसे महत्वपूर्ण पैरामीटर है।

apc.cache_by_default=1

;apc.filters=

सभी PHP स्क्रिप्ट्स के लिए APC काम करेगा। इस स्थिति में हम apc.filters लाइन को टिप्पणी (comment) कर सकते हैं।

apc.cache_by_default=0
apc.filters="+drupal6"

इस प्रकार हम APC के उपयोग को केवल Drupal 6 फ़ाइलों तक सीमित कर सकते हैं। यह तब उपयोगी है जब हम नहीं चाहते कि सर्वर पर PhpMyAdmin का उपयोग करते समय कैश साफ़ हो जाए।

apc.stat=1

यह पैरामीटर सीधे प्रदर्शन को प्रभावित करता है। जब यह सेटिंग चालू होती है, तो APC में कैश तब तक रहता है जब तक उसे हटाया नहीं जाता। यदि यह बंद है, तो APC स्क्रिप्ट के निष्पादन समय और अंतिम संशोधन समय की तुलना करेगा और आवश्यकता होने पर नई संस्करण को कैश में जोड़ेगा। यह सेटिंग प्रोडक्शन सर्वर के लिए आवश्यक है, लेकिन विकास (development) के लिए इसे बंद रखना बेहतर है। साथ ही, apc.stat सक्षम होने पर, Drupal मॉड्यूल या कोर को अपडेट करते समय APC कैश को साफ़ करना आवश्यक है।

apc.ttl=0

यह सेटिंग यह निर्धारित करती है कि कितने मिलीसेकंड के बाद कैश साफ़ किया जाए। 0 का अर्थ है कि कैश कभी साफ़ नहीं किया जाता। इसलिए हम इसे 0 पर सेट करते हैं, क्योंकि हम नहीं चाहते कि हर घंटे हमारा आवश्यक कैश साफ़ हो (डिफ़ॉल्ट रूप से 7200 सेकंड यानी 2 घंटे)।

apc.rfc1867=1

यदि आप चाहते हैं कि Drupal में फ़ाइल अपलोड की प्रगति स्थिति APC के माध्यम से दिखाई दे, तो आप इस सेटिंग को सक्षम कर सकते हैं।

apc.num_files_hint=2048

यह सेटिंग तब उपयोगी होती है जब सर्वर पर कई वेबसाइट्स या कई Drupal इंस्टॉलेशन होते हैं। एक Drupal साइट 500 से अधिक फ़ाइलों को कैश कर सकती है। ताकि एक साइट का कैश दूसरी साइट की फ़ाइलों को अधिलेखित न करे, इस मान को बड़ा रखें (डिफ़ॉल्ट 1024)।

सेटिंग्स संपादित करने के बाद, सर्वर को पुनः आरंभ करना न भूलें। परिणामस्वरूप आपको इस तरह के ग्राफ़ देखने चाहिए:

Drupal APC

ध्यान दें कि MISS की संख्या लगभग शून्य के करीब होनी चाहिए और फ़्रैग्मेंटेशन 0% होना चाहिए।