शैल निष्पादन एक स्ट्रिंग लेता है जिसे वास्तविक आदेश होना आवश्यक है। अब आप इसे एक फाइलपैथ पास कर रहे हैं। इसका अर्थ "इस पथ पर फ़ाइल निष्पादित नहीं" के रूप में नहीं किया गया है। आप कई चीजें कर सकते हैं।
आपको प्रोग्राम करने के लिए फ़ाइल को कॉल करने की आवश्यकता है। के रूप में टिप्पणी में सुझाव दिया बैश या श से कॉल करने की:
echo shell_exec('sh /home/scripts/fix-perm.sh');
एक अन्य विकल्प हो सकता है:
$contents = file_get_contents('/home/scripts/fix-perm.sh');
echo shell_exec($contents);
मुझे लगता है कि पहला विकल्प हालांकि बेहतर होगा।
यह ध्यान रखना महत्वपूर्ण है कि बाहरी कार्यक्रमों को निष्पादित करने के लिए सभी आदेश वास्तविक आदेशों की अपेक्षा करते हैं, न कि फ़ाइलपैथ या कुछ और। यह shell_exec, exec, passthru और अन्य के लिए जाता है।
क्या यह कोई त्रुटि लौटा रहा है या कुछ भी नहीं कर रहा है? क्या यह अनुमति अनुमति फेंक रहा है? PHP उपयोगकर्ता स्क्रिप्ट किस प्रकार चल रहा है? अधिक जानकारी कृपया। आप इसे 'bash /home/scripts/fix-perm.sh' निष्पादित करने का भी प्रयास कर सकते हैं, जो इसे एक बैश स्क्रिप्ट मानते हैं। – IslandCow
यह कुछ भी नहीं दिखा रहा है – NidhinRaj