समस्या निवारण
PHP Extensions और Settings
Which PHP versions and extensions KapsuleHost web hosting provides, which settings you can change yourself, and why a change can take up to five minutes to appear.
KapsuleHost किस PHP संस्करण और एक्सटेंशन प्रदान करता है, कौन सी सेटिंग्स आप स्वयं बदल सकते हैं, और एक परिवर्तन प्रकट होने में पाँच मिनट तक क्यों लग सकता है।
किसी साइट के लिए PHP से संबंधित सब कुछ एक जगह रहता है: वेबसाइटें, साइट पर क्लिक करें, Advanced, फिर PHP। यह पृष्ठ संस्करण चयनकर्ता, वह सेटिंग्स जो आप बदल सकते हैं, एक Composer रनर और PHP त्रुटि लॉग रखता है।

PHP संस्करण चुनना
चार संस्करण चुने जा सकते हैं: 8.4, 8.3, 8.2 और 8.1। नई साइटें डिफ़ॉल्ट रूप से 8.3 पर सेट होती हैं।
सबसे नया संस्करण चुनें जो आपका सॉफ़्टवेयर वास्तव में समर्थन करता हो। नया PHP अधिक तेज़ है और लंबे समय तक सुरक्षा सुधार के साथ समर्थित है। सबसे नए संस्करण पर सीधे न जाने का कारण संगतता है: कोई पुरानी प्लगइन या वर्षों पहले लिखा गया कस्टम कोड उस संस्करण पर बिल्कुल विफल हो सकता है जिसके विरुद्ध इसे कभी परीक्षण नहीं किया गया है।
इसे बदलने के लिए, संस्करण चुनें और संस्करण लागू करें पर क्लिक करें। परिवर्तन तुरंत प्रभावी होता है, आपकी ओर से कोई पुनरारंभ की आवश्यकता नहीं है और कोई डाउनटाइम नहीं है।
पहले स्टेजिंग पर PHP संस्करण बदलें, साइट के माध्यम से क्लिक करें, और केवल तभी इसे प्रोडक्शन पर बदलें। यदि आपको इसे लाइव करना चाहिए, तो ऐसा करें जब आप देख सकें, और जान लें कि वापस स्विच करना एक क्लिक है। स्टेजिंग एनवायरनमेंट देखें।
यदि संस्करण परिवर्तन साइट को तोड़ता है, तो पिछले संस्करण पर वापस स्विच करें और लॉग पढ़ें। त्रुटि उस फ़ाइल का नाम देगी जो चलाई नहीं जा सकी। PHP संस्करण बदलना और त्रुटि लॉग देखें।
सेटिंग्स जो आप बदल सकते हैं
PHP पृष्ठ पाँच सेटिंग्स को ड्रॉपडाउन के रूप में प्रदर्शित करता है। ये वे हैं जो व्यावहारिक रूप से समस्याएं पैदा करती हैं, जो कि वे ही कारण हैं कि उन्हें सामने लाया गया है।
| सेटिंग | डिफ़ॉल्ट | उपलब्ध मान | यह नियंत्रित करता है |
|---|---|---|---|
memory_limit | 256M | 128M, 256M, 512M, 1024M, 2048M | एक अनुरोध कितनी मेमोरी उपयोग कर सकता है |
max_execution_time | 30 | 30, 60, 120, 300, 600 | एक अनुरोध कितने सेकंड तक चल सकता है |
upload_max_filesize | 64M | 16M, 32M, 64M, 128M, 256M | सबसे बड़ी एकल फ़ाइल जो अपलोड की जा सकती है |
post_max_size | 65M | 17M, 33M, 65M, 129M, 257M | सबसे बड़ी कुल फॉर्म सबमिशन |
max_input_vars | 3000 | 1000, 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 द्वारा सम्मानित हैं लेकिन पैनल फॉर्म में दिखाई नहीं देंगे। यदि आप किसी को हाथ से सेट करते हैं और बाद में पैनल के माध्यम से कुछ बदलते हैं, तो बाद में फ़ाइल की जांच करें।
Kapsule वेब होस्टिंग 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() फ़ाइल न छोड़ें। यह आपके पथ, आपकी एक्सटेंशन और आपके कॉन्फ़िगरेशन को किसी को भी प्रकाशित करता है जो इसे ढूंढता है, और स्वचालित स्कैनर उस सटीक फ़ाइल नाम को देखते हैं। यदि आप कुछ जाँचने के लिए एक बनाते हैं, तो तुरंत बाद में इसे हटा दें।