2011-09-13 20 views
10

मैं phpPHP से .sh फ़ाइल कैसे चलाएं?

खोल स्क्रिप्ट (/home/scripts/fix-perm.sh) का उपयोग कर एक खोल स्क्रिप्ट चलाने के लिए कोशिश कर रहा हूँ एक ही सर्वर

में है इस कोड है कि मैं

कोशिश कर रहा हूँ है
<?php 
echo shell_exec('/home/scripts/fix-perm.sh'); 
?> 

ऊपर कोड काम नहीं कर रहा

Linux सर्वर

उपयोग कर रहा हूँ किसी को भी कृपया मेरी मदद कर सकते?

+5

क्या यह कोई त्रुटि लौटा रहा है या कुछ भी नहीं कर रहा है? क्या यह अनुमति अनुमति फेंक रहा है? PHP उपयोगकर्ता स्क्रिप्ट किस प्रकार चल रहा है? अधिक जानकारी कृपया। आप इसे 'bash /home/scripts/fix-perm.sh' निष्पादित करने का भी प्रयास कर सकते हैं, जो इसे एक बैश स्क्रिप्ट मानते हैं। – IslandCow

+0

यह कुछ भी नहीं दिखा रहा है – NidhinRaj

उत्तर

20

शैल निष्पादन एक स्ट्रिंग लेता है जिसे वास्तविक आदेश होना आवश्यक है। अब आप इसे एक फाइलपैथ पास कर रहे हैं। इसका अर्थ "इस पथ पर फ़ाइल निष्पादित नहीं" के रूप में नहीं किया गया है। आप कई चीजें कर सकते हैं।

आपको प्रोग्राम करने के लिए फ़ाइल को कॉल करने की आवश्यकता है। के रूप में टिप्पणी में सुझाव दिया बैश या श से कॉल करने की:

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 और अन्य के लिए जाता है।

+0

मैं सुझाव नहीं दे रहा हूं। फ़ाइल निष्पादन योग्य बनाना बहुत साफ है। –

+0

मैंने दोनों की कोशिश की, लेकिन यह कुछ भी नहीं दिखा रहा है, यह कोई परिणाम देगा? कैसे काम करना है या नहीं? – NidhinRaj

+0

shell_exec आउटपुट देता है जो कमांड उत्पन्न करता है। यदि आपकी स्क्रिप्ट कुछ भी आउटपुट नहीं करती है, तो कोई आउटपुट नहीं होगा :) – hoppa

संबंधित मुद्दे