इस प्रश्न में, हमारा सामना एक PHP डेवलपर से होता है जोshell_exec का उपयोग करके PHP से एक बैश स्क्रिप्ट निष्पादित करने का प्रयास कर रहा है। उपयोग किया गया सिंटैक्स है:
$output = shell_exec("./script.sh var1 var2");
हालाँकि, इस कमांड को कॉल करने पर स्क्रिप्ट निष्पादित होने में विफल हो जाती है।
इस समस्या को डीबग करने के लिए, विफलता के कारण की पहचान करना महत्वपूर्ण है। चूँकि ./script.sh var1 var2 का उपयोग करके कमांड लाइन के माध्यम से चलने पर स्क्रिप्ट सफलतापूर्वक निष्पादित होती है, समस्या संभवतः PHP कोड के भीतर होती है।
एक सामान्य समस्या जो स्क्रिप्ट निष्पादन विफलता का कारण बन सकती है वह है गलत निर्देशिका अनुमतियाँ या पथ . PHP स्क्रिप्ट को अक्सर बाहरी कमांड निष्पादित करने से पहले सही कार्यशील निर्देशिका सेट करने की आवश्यकता होती है। इसे हल करने के लिए, कोडshell_exec को कॉल करने से पहले chdir का उपयोग करके सही निर्देशिका निर्दिष्ट कर सकता है।
निम्नलिखित स्निपेट इस समस्या का समाधान करता है:
$old_path = getcwd();
chdir('/my/path/');
$output = shell_exec('./script.sh var1 var2');
chdir($old_path);
इस उदाहरण में, हम:
यह सुनिश्चित करके कि सही निर्देशिका मौजूद है, इस संशोधित कोड को PHP से बैश स्क्रिप्ट को सफलतापूर्वक निष्पादित करना चाहिए।
अस्वीकरण: उपलब्ध कराए गए सभी संसाधन आंशिक रूप से इंटरनेट से हैं। यदि आपके कॉपीराइट या अन्य अधिकारों और हितों का कोई उल्लंघन होता है, तो कृपया विस्तृत कारण बताएं और कॉपीराइट या अधिकारों और हितों का प्रमाण प्रदान करें और फिर इसे ईमेल पर भेजें: [email protected] हम इसे आपके लिए यथाशीघ्र संभालेंगे।
Copyright© 2022 湘ICP备2022001581号-3