सामग्री पर जाएँ
KPanel पर जाएँKPanel पर जाएँ
विषय-सूची
समस्या निवारण

PHP एक्सटेंशन और सेटिंग्स

स्वचालित अनुवाद। अंग्रेज़ी मूल उपलब्ध है।

KapsuleHost वेब होस्टिंग WordPress, WooCommerce और PHP साइटों के लिए कौन से PHP संस्करण और एक्सटेंशन प्रदान करती है, आप स्वयं कौन-सी सेटिंग्स बदल सकते हैं, और एक बदलाव को दिखने में पाँच मिनट तक क्यों लग सकते हैं।

स्टैटिक, Node.js और Python साइटें PHP नहीं चलातीं। किसी साइट के लिए PHP से जुड़ी हर चीज़ एक ही जगह रहती है: वेबसाइटें, साइट पर क्लिक करें, सेटिंग्स, फिर PHP। उस पेज में संस्करण चुनने का विकल्प, वे सेटिंग्स जिन्हें आप बदल सकते हैं, एक Composer रनर, और PHP एरर लॉग मौजूद होते हैं।

KPanel में किसी साइट के लिए PHP पेज, संस्करण चयनकर्ता और वे सेटिंग्स जिन्हें आप बदल सकते हैं

PHP संस्करण चुनना

चार संस्करण चुने जा सकते हैं: 8.4, 8.3, 8.2 और 8.1। नई साइटों के लिए डिफ़ॉल्ट रूप से 8.3 सेट होता है।

वह सबसे नया संस्करण चुनें जिसे आपका सॉफ़्टवेयर वास्तव में सपोर्ट करता है। नया PHP काफ़ी तेज़ होता है और इसे ज़्यादा समय तक सुरक्षा फिक्स के साथ सपोर्ट किया जाता है। सीधे सबसे नए संस्करण पर न जाने की वजह अनुकूलता (compatibility) है: कोई पुराना प्लगइन या बरसों पहले लिखा गया कस्टम कोड ऐसे संस्करण पर पूरी तरह विफल हो सकता है जिसके विरुद्ध उसका कभी परीक्षण ही नहीं हुआ।

इसे बदलने के लिए, संस्करण चुनें और संस्करण लागू करें पर क्लिक करें। बदलाव तुरंत प्रभावी हो जाता है, आपकी ओर से किसी रीस्टार्ट की ज़रूरत नहीं पड़ती और कोई डाउनटाइम नहीं होता।

PHP संस्करण पहले स्टेजिंग पर बदलें, साइट को क्लिक करके देखें, और तभी इसे प्रोडक्शन पर बदलें। अगर आपको यह लाइव करना ही है, तो उस समय करें जब आप इसे देख सकें, और यह जान लें कि वापस पलटना बस एक क्लिक का काम है। देखें स्टेजिंग एनवायरनमेंट।

अगर संस्करण बदलने से साइट टूट जाती है, तो पिछले संस्करण पर वापस जाएँ और लॉग पढ़ें। एरर में उस फ़ाइल का नाम होगा जो नहीं चल सकी। देखें PHP संस्करण बदलना और एरर लॉग।

आप कौन-सी सेटिंग्स बदल सकते हैं

PHP पेज पाँच सेटिंग्स को ड्रॉपडाउन के रूप में दिखाता है। व्यवहार में असल समस्याएँ इन्हीं से होती हैं, इसीलिए इन्हीं को सामने रखा गया है।

सेटिंगडिफ़ॉल्टउपलब्ध मानयह क्या नियंत्रित करती है
memory_limit256M128M, 256M, 512M, 1024M, 2048Mएक रिक्वेस्ट कितनी मेमोरी इस्तेमाल कर सकती है
max_execution_time3030, 60, 120, 300, 600एक रिक्वेस्ट कितने सेकंड तक चल सकती है
upload_max_filesize64M16M, 32M, 64M, 128M, 256Mअपलोड की जा सकने वाली सबसे बड़ी एकल फ़ाइल
post_max_size65M17M, 33M, 65M, 129M, 257Mसबसे बड़ा कुल फ़ॉर्म सबमिशन
max_input_vars30001000, 3000, 5000, 10000एक सबमिशन में कितने फ़ील्ड हो सकते हैं

आपको कौन-सी सेटिंग चाहिए:

  • एक निश्चित आकार से ऊपर अपलोड विफल होना: upload_max_filesize बढ़ाएँ, और इसके साथ post_max_size भी।
  • बड़ा फ़ॉर्म या पेज बिल्डर सेव करने पर फ़ील्ड खो देना: max_input_vars बढ़ाएँ। यह समस्या अदृश्य और बहुत परेशान करने वाली होती है, क्योंकि कोई एरर नहीं आता। अतिरिक्त फ़ील्ड चुपचाप हटा दिए जाते हैं।
  • बिना किसी एरर के पेज का बीच में ही रुक जाना: memory_limit बढ़ाएँ। देखें WordPress मेमोरी लिमिट।
  • किसी लंबे इम्पोर्ट या एक्सपोर्ट का समय समाप्त हो जाना: max_execution_time बढ़ाएँ, और इसके बजाय कमांड लाइन से यह काम चलाने पर विचार करें। देखें WP-CLI।

post_max_size, upload_max_filesize से बड़ा होना चाहिए, क्योंकि अपलोड पोस्ट के अंदर से होकर जाता है। अगर आप ऐसा संयोजन चुनते हैं जिसमें यह सही नहीं बैठता, तो प्लेटफ़ॉर्म post_max_size को स्वतः बढ़ाकर सही कर देता है। इसीलिए हो सकता है आपको वह मान दिखे जो आपने चुना ही नहीं था।

बदलाव दिखने में पाँच मिनट तक क्यों लगते हैं

इस पेज पर सबसे आम भ्रम यही है, इसलिए इसे स्पष्ट रूप से समझना ज़रूरी है।

आपकी सेटिंग्स आपकी साइट के डॉक्यूमेंट रूट में एक .user.ini फ़ाइल में लिखी जाती हैं। PHP उस फ़ाइल को पढ़ता है और फिर इसे 300 सेकंड के लिए कैश कर लेता है, यानी पाँच मिनट। जब तक वह कैश समाप्त नहीं होता, PHP पिछले मानों का ही इस्तेमाल करता रहता है।

इसलिए बदलाव सेव करने के बाद:

  • पेज पाँच मिनट तक पुरानी लिमिट ही दिखाता रहेगा।
  • phpinfo() भी पाँच मिनट तक पुरानी लिमिट ही बताता रहेगा।
  • हार्ड रिफ्रेश से मदद नहीं मिलती। आपके ब्राउज़र कैश को साफ़ करने से भी नहीं।
  • आपको कुछ भी रीस्टार्ट करने की ज़रूरत नहीं है, और आप कर भी नहीं सकते। बस प्रतीक्षा करें।

अगर पाँच मिनट से ज़्यादा हो चुका है और मान फिर भी नहीं बदला है, तो वाकई कुछ गड़बड़ है और इसके लिए टिकट खोलना उचित रहेगा।

.user.ini को स्वयं संपादित करना

अगर आप चाहें, या पैनल द्वारा उपलब्ध न कराई गई किसी डायरेक्टिव की ज़रूरत हो, तो आप SFTP या SSH के ज़रिए सीधे .user.ini को संपादित कर सकते हैं। यह आपकी साइट के डॉक्यूमेंट रूट में रहती है। देखें SFTP एक्सेस।

फ़ॉर्मेट है: हर लाइन में एक डायरेक्टिव:

memory_limit = 512M
max_execution_time = 120

.user.ini क्या कर सकती है, इस पर दो महत्वपूर्ण सीमाएँ हैं:

यह केवल उन्हीं डायरेक्टिव के लिए काम करती है जिन्हें PHP प्रति डायरेक्टरी या प्रति उपयोगकर्ता सेट करने की अनुमति देता है। ऊपर बताई गई सभी पाँच इसमें आती हैं। केवल सिस्टम स्तर पर सेट की जा सकने वाली डायरेक्टिव, जैसे disable_functions या extension= के ज़रिए किसी एक्सटेंशन को लोड करना, .user.ini फ़ाइल में अनदेखी कर दी जाती हैं। इनसे कोई एरर नहीं आएगा, ये बस कुछ नहीं करेंगी, इसीलिए लोग इन पर पूरी दोपहर बर्बाद कर देते हैं।

पैनल केवल सामान्य कुंजियों को ही वापस पढ़ता है। डॉट वाली डायरेक्टिव, जैसे opcache.enable या date.timezone, PHP द्वारा मानी तो जाती हैं लेकिन पैनल फ़ॉर्म में नहीं दिखेंगी। अगर आपने किसी को हाथ से सेट किया है और बाद में पैनल के ज़रिए कुछ बदला है, तो बाद में फ़ाइल ज़रूर जाँचें।

KapsuleHost वेब होस्टिंग nginx चलाती है, Apache नहीं। .htaccess फ़ाइलों को कोई नहीं पढ़ता। .htaccess फ़ाइल में रखी गई PHP डायरेक्टिव, जैसे php_value memory_limit, यहाँ बिल्कुल कुछ नहीं करतीं। इसके बजाय .user.ini या पैनल का इस्तेमाल करें। देखें WordPress और .htaccess।

कौन-से एक्सटेंशन उपलब्ध हैं

मानक बिल्ड व्यापक है और इसमें वह सब कुछ शामिल है जो WordPress, WooCommerce और अधिकतर PHP एप्लिकेशन माँगते हैं।

डेटाबेस: mysqli, pdo_mysql, sqlite3, pdo_sqlite इमेज: gd, imagick, exif कैशिंग: Zend OPcache, redis, memcached टेक्स्ट और लोकेल: mbstring, iconv, intl, gettext, ctype XML और डेटा: dom, simplexml, xml, xmlreader, xmlwriter, xsl, json नेटवर्क: curl, soap, sockets, ftp, openssl गणित और क्रिप्टो: bcmath, sodium, hash, random फ़ाइलें और सिस्टम: fileinfo, zip, zlib, phar, posix, pcntl, shmop, calendar, tokenizer

जानने लायक एक संस्करण अंतर: imap एक्सटेंशन 8.3 और उससे पुराने संस्करणों में मौजूद है लेकिन 8.4 में नहीं, क्योंकि इसे उस रिलीज़ में PHP से ही हटा दिया गया था। अगर आपके पास कोई ऐसा एप्लिकेशन है जिसे अब भी इसकी ज़रूरत है, तो 8.3 पर ही रहें या उस एप्लिकेशन को किसी आधुनिक मेल लाइब्रेरी पर ले जाएँ।

इंस्टॉल नहीं हैं: PostgreSQL ड्राइवर, MongoDB, Xdebug, mcrypt, और ionCube व SourceGuardian जैसे कमर्शियल कोड लोडर।

आप पैनल से खुद एक्सटेंशन सक्षम या अक्षम नहीं कर सकते। अगर आपके एप्लिकेशन को सूची में शामिल न किसी चीज़ की ज़रूरत है, तो टिकट खोलें और बताएँ कि आप क्या चला रहे हैं। इसे जोड़ा जा सकता है या नहीं, यह उस एक्सटेंशन पर निर्भर करता है। देखें सपोर्ट टिकट खोलना।

असल में क्या लोड है, यह जाँचना

अनुमान लगाने के बजाय:

  • WordPress पर: Tools, फिर Site Health, फिर Info, फिर Server। यह PHP संस्करण और संबंधित लिमिट बताता है।
  • SSH के ज़रिए: संस्करण के लिए php -v और लोड किए गए एक्सटेंशन के लिए php -m। देखें SSH कुंजियाँ जोड़ना।

अपने वेब रूट में phpinfo() फ़ाइल न छोड़ें। यह आपके पाथ, आपके एक्सटेंशन और आपका कॉन्फ़िगरेशन किसी को भी सार्वजनिक कर देती है जिसे यह फ़ाइल मिल जाए, और स्वचालित स्कैनर ठीक इसी फ़ाइल नाम को ढूँढते हैं। अगर आप कुछ जाँचने के लिए एक फ़ाइल बनाते हैं, तो तुरंत बाद में उसे हटा दें।

संबंधित गाइड

क्या यह उपयोगी था?

क्या आप AI हैं? यह पेज Markdown में पढ़ें

संबंधित लेख

मेरी वेबसाइट लोड नहीं हो रही है: डायग्नोस्टिक चेकलिस्टइन चरणों को क्रम में पूरा करें। हर चरण या तो कारण की पहचान करता है या उसे खारिज करता है। अधिकांश समस्याएँ चरण 5 तक सुलझ जाती हैं। --- चरण 1: जाँचें कि क्या समस्…साइट डाउन: जो आप देख रहे हैं उसे कारण से मिलानायह उस साइट के लिए सभी प्रोडक्ट पर लागू होने वाला निदान ट्री है जो लोड नहीं हो रही। KapsuleHost कई प्रोडक्ट चलाता है, और कारण ढूँढने का सबसे तेज़ तरीका यह अंदाज़…Kapsule के साथ Cloudflare या अन्य Proxy का उपयोगKapsuleHost एक तीसरे पक्ष के प्रॉक्सी या CDN को साइट के सामने कैसे रखें, जिसमें दो सेटिंग्स शामिल हैं जो साइटों को तोड़ देती हैं, वे रिकॉर्ड जिन्हें कभी प्रॉक्स…साइट का धीमा होना और संसाधन सीमाएँआपका होस्टिंग प्लान असल में किन चीज़ों को सीमित करता है, हर सीमा पर पहुँचने पर क्या होता है, और यह कैसे पता करें कि धीमी साइट की समस्या संसाधनों की है या कोड की…

अब भी समस्या है?

Kora से पूछें, जो आपके खाते को जानती है, या हमारी टीम से संपर्क करें।

संपर्क करेंसहायता को ईमेल करें