"यदि कोई कर्मचारी अपना काम अच्छी तरह से करना चाहता है, तो उसे पहले अपने औजारों को तेज करना होगा।" - कन्फ्यूशियस, "द एनालेक्ट्स ऑफ कन्फ्यूशियस। लू लिंगगोंग"
मुखपृष्ठ > प्रोग्रामिंग > `shell_exec` का उपयोग करके PHP से कॉल करने पर मेरी बैश स्क्रिप्ट निष्पादित होने में विफल क्यों हो रही है?

`shell_exec` का उपयोग करके PHP से कॉल करने पर मेरी बैश स्क्रिप्ट निष्पादित होने में विफल क्यों हो रही है?

2024-11-09 को प्रकाशित
ब्राउज़ करें:913

Why is my Bash script failing to execute when called from PHP using `shell_exec`?

PHP से बैश कमांड निष्पादित करना: विफल स्क्रिप्ट निष्पादन का समस्या निवारण करना

इस प्रश्न में, हमारा सामना एक 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);

इस उदाहरण में, हम:

  1. वर्तमान कार्यशील निर्देशिका को $old_path में संग्रहीत करते हैं।
  2. कार्यशील निर्देशिका को '/my' में बदलें /path/' chdir का उपयोग करके।
  3. shell_exec का उपयोग करके बैश स्क्रिप्ट निष्पादित करें।
  4. वापस बदलें chdir($old_path) का उपयोग कर मूल कार्यशील निर्देशिका।

यह सुनिश्चित करके कि सही निर्देशिका मौजूद है, इस संशोधित कोड को PHP से बैश स्क्रिप्ट को सफलतापूर्वक निष्पादित करना चाहिए।

नवीनतम ट्यूटोरियल अधिक>

चीनी भाषा का अध्ययन करें

अस्वीकरण: उपलब्ध कराए गए सभी संसाधन आंशिक रूप से इंटरनेट से हैं। यदि आपके कॉपीराइट या अन्य अधिकारों और हितों का कोई उल्लंघन होता है, तो कृपया विस्तृत कारण बताएं और कॉपीराइट या अधिकारों और हितों का प्रमाण प्रदान करें और फिर इसे ईमेल पर भेजें: [email protected] हम इसे आपके लिए यथाशीघ्र संभालेंगे।

Copyright© 2022 湘ICP备2022001581号-3