इस लेख में मैं आपको php.ini फ़ाइल में "disable_functions" निर्देश को संपादित करते हुए php मूल फ़ंक्शन को सक्षम या अक्षम करने के लिए चरण दर चरण प्रक्रिया बताना चाहता हूं।
कभी-कभी आपके सिस्टम की उत्पादन वातावरण के साथ अनुकूलता को समायोजित करने के लिए आपके सर्वर पर डिफ़ॉल्ट PHP कॉन्फ़िगरेशन को अनुकूलित करने की आवश्यकता होती है।
मैं लारवेल और सिम्फनी के लिए रियल-टाइम मॉनिटरिंग पैकेज इंस्पेक्टर.डेव का लेखक हूं। यह पैकेज आपके सर्वर से इंस्पेक्टर एपीआई में एसिंक्रोनस रूप से डेटा ट्रांसफर करने के लिए pro_open और proc_close php मूल फ़ंक्शन का उपयोग करता है।
इसे डिफ़ॉल्ट रूप से सक्षम PHP के मूल कर्ल फ़ंक्शंस का उपयोग करने के लिए भी कॉन्फ़िगर किया जा सकता है, लेकिन इस मामले में यह मॉनिटरिंग डेटा को सिंक्रोनस तरीके से इंस्पेक्टर को भेज देगा जैसे अन्य पैकेज जैसे सेंट्री, बगस्नाग इत्यादि। इसका मतलब है कि आपका एप्लिकेशन थोड़ा धीमा हो सकता है क्योंकि PHP इंजन को क्लाइंट के साथ कनेक्शन समाप्त करने से पहले इंतजार करना होगा।
हाल ही में कुछ डेवलपर्स ने मुझसे संपर्क किया क्योंकि उनके PHP कॉन्फ़िगरेशन में proc_open और proc_close फ़ंक्शन अक्षम थे, इसलिए उन्हें एसिंक्रोनस डेटा भेजने का लाभ उठाने के लिए उन्हें अनलॉक करने की आवश्यकता है।
यह काफी दुर्लभ है लेकिन मैंने इस ट्यूटोरियल को इस उपयोग के मामले के लिए एक समर्थन संसाधन के रूप में लिखने का फैसला किया है।
Php.ini फ़ाइल PHP के लिए कॉन्फ़िगरेशन फ़ाइल है। फ़ाइल में कुंजी/मान जोड़े की एक सूची है जिसे "निर्देश" कहा जाता है। निर्देशों को अनुभागों में समूहीकृत किया गया है, हालांकि ये मुख्य रूप से संगठनात्मक उद्देश्यों के लिए हैं।
जब PHP शुरू होती है, तो यह इस फ़ाइल को पढ़ती है और कॉन्फ़िगरेशन को संग्रहीत करने के लिए आंतरिक डेटा संरचनाएं सेट करती है। निष्पादन के दौरान, PHP इन आंतरिक डेटा संरचनाओं को यह निर्धारित करने के लिए संदर्भित करता है कि इसे कई प्रमुख क्षेत्रों में कैसे व्यवहार करना चाहिए, जैसे: त्रुटि प्रबंधन और लॉगिंग, संसाधन सीमा (मेमोरी, निष्पादन समय), फ़ाइल अपलोड, डेटाबेस कनेक्शन, और बहुत कुछ।
किसी ऐसे व्यक्ति के लिए जो सोच रहा है: PHP तब भी काम कर सकता है जब कोई php.ini फ़ाइल न हो, यह बस सभी निर्देशों पर डिफ़ॉल्ट मान लागू करेगा।
जो लोग इससे परिचित नहीं हैं, उनके लिए यहां php.ini फ़ाइल का एक उदाहरण दिया गया है:
https://github.com/php/php-src/blob/master/php.ini-production
Php.ini फ़ाइल को संपादित करके हम मूल PHP फ़ंक्शंस को अक्षम कर सकते हैं जिन्हें आप अपने PHP कोड के अंदर कॉल नहीं कर पाएंगे।
कभी-कभी इस सुविधा का उपयोग साझा होस्टिंग वातावरण में कुछ कार्यों के उपयोग को प्रतिबंधित करने के लिए किया जाता है क्योंकि उनके गलत उपयोग से अन्य उपयोगकर्ताओं के लिए सुरक्षा समस्याएं पैदा हो सकती हैं। exec() जैसे फ़ंक्शंस आमतौर पर अक्षम होते हैं, लेकिन कभी-कभी सर्वर प्रदाता बहुत रूढ़िवादी होते हैं और रोजमर्रा के प्रोग्रामिंग कार्यों में आवश्यक फ़ंक्शंस को अक्षम कर सकते हैं।
फ़ाइल का वर्तमान स्थान प्राप्त करने के लिए अपनी मशीन के टर्मिनल में नीचे दिए गए कमांड को चलाएँ (यह विन और यूनिक्स दोनों के लिए काम करता है):
php --ini
सामान्य स्थान: /etc/php.ini, /etc/php/8.x/php.ini (x को अपने इंस्टॉलेशन के संस्करण संख्या से बदलें)
सर्वर पर फ़ाइलों को संपादित करने के लिए मैं विम संपादक का उपयोग करना पसंद करता हूं जो किसी भी यूनिक्स मशीन में उपलब्ध होना चाहिए।
// Use the file path from the command above sudo vim /etc/php.ini
नीचे स्क्रॉल करके "disable_functions" निर्देश तक जाएं। यह फ़ाइल के पहले भाग में होना चाहिए और इसमें अल्पविराम द्वारा अलग किए गए कार्यों की एक सूची होनी चाहिए।
disable_functions=exec,shell_exec,system,proc_open,popen,curl_exec,curl_multi_exec,parse_ini_file,show_source
नए कॉन्फ़िगरेशन को लोड करने के लिए आपको PHP को पुनरारंभ करना होगा। नीचे दिया गया निर्देश अधिकांश सर्वरों पर काम करना चाहिए। आप अंततः Google पर एक विशिष्ट OS खोज सकते हैं।
// Change the version of the PHP with what is in use in your machine sudo systemctl restart php8.2-fpm.service
अधिक तकनीकी लेखों के लिए आप मुझे लिंक्डइन या एक्स पर फ़ॉलो कर सकते हैं।
इंस्पेक्टर एक कोड निष्पादन निगरानी उपकरण है जो विशेष रूप से सॉफ्टवेयर डेवलपर्स के लिए डिज़ाइन किया गया है। आपको सर्वर स्तर पर कुछ भी इंस्टॉल करने की आवश्यकता नहीं है, बस Laravel या Symfony पैकेज इंस्टॉल करें और आप जाने के लिए तैयार हैं।
यदि आप HTTP मॉनिटरिंग, डेटाबेस क्वेरी अंतर्दृष्टि और अपने पसंदीदा मैसेजिंग वातावरण में अलर्ट और सूचनाओं को अग्रेषित करने की क्षमता की तलाश में हैं, तो इंस्पेक्टर को निःशुल्क आज़माएं। अपना खाता पंजीकृत करें।
या वेबसाइट पर अधिक जानें: https://inspector.dev
अस्वीकरण: उपलब्ध कराए गए सभी संसाधन आंशिक रूप से इंटरनेट से हैं। यदि आपके कॉपीराइट या अन्य अधिकारों और हितों का कोई उल्लंघन होता है, तो कृपया विस्तृत कारण बताएं और कॉपीराइट या अधिकारों और हितों का प्रमाण प्रदान करें और फिर इसे ईमेल पर भेजें: [email protected] हम इसे आपके लिए यथाशीघ्र संभालेंगे।
Copyright© 2022 湘ICP备2022001581号-3