PHP

2012-09-22 1 views
5

में बैश स्क्रिप्ट नहीं चलाया जा सकता है मैं PHP में बैश स्क्रिप्ट चलाने की कोशिश कर रहा हूं लेकिन इसे चला नहीं सकता। php -vPHP

PHP 5.3.10-1ubuntu3.2 with Suhosin-Patch (cli) (built: Jun 13 2012 17:19:58) 
Copyright (c) 1997-2012 The PHP Group 
Zend Engine v2.3.0, Copyright (c) 1998-2012 Zend Technologies 

Ubuntu 12.04 LTS 64 बिट।

मेरे php कोड:

$cmd='/www/var/pl/bash.sh'; 
    $retval =-1; 
    exec($cmd, $output); //executing the exec function. 
    foreach($output as $tmp) 
    { 
     echo "$tmp <br>"; 
    }; 

bash.sh:

#!/bin/bash 
swipl --quiet -s /var/www/pl/ples.pl -g "f(R, gel), writeln(R),open('/var/www/pl/in.txt',write, Stream), 
write(Stream, (R)), 
nl(Stream), 
close(Stream)" -t halt. 

क्या मैं गलत कर रहा हूँ?

और मैं लिनक्स टर्मिनल में bash.sh चला सकता हूं।

+0

"बैश" के साथ खोल स्क्रिप्ट पूर्ववर्ती प्रयास करें - तो "बैश /www/var/pl/bash.sh" – Robbie

+0

बदलें '' करने के लिए $ cmd' है /www/var/pl/bash.sh 2> और 1'। यह अभी भी नहीं चलेगा, लेकिन आपको कुछ अंतर्दृष्टि दे सकता है कि यह क्यों नहीं करता है। – LSerni

+1

आप क्या देख रहे हैं, अगर कोई है? मुझे लगता है कि आपका PHP सुरक्षित मोड में नहीं चल रहा है और निष्पादन कमांड विशेष रूप से अक्षम नहीं है? – Basic

उत्तर

0

सबसे अधिक संभावना है कि यह या तो पथ या अनुमति समस्या है; उदाहरण के लिए उपयोगकर्ता वेब एप्लिकेशन के रूप में चलता है, यह नहीं पता कि swipl प्रोग्राम कहां है।

से पहले कमांड लाइन में जोड़ें, ताकि यह आपको बता सके कि समस्या क्या है। या आप वेब सर्वर त्रुटि लॉग (या PHP त्रुटि लॉग में stderr आउटपुट पा सकते हैं; php.ini में इसके पथ और सेटिंग्स की जांच करें)।

5

जब आप टर्मिनल में स्क्रिप्ट चलाते हैं तो आप उस खाते के तहत इसे निष्पादित कर रहे हैं जिसमें आप लॉग इन हैं। आपके पास एक खोज पथ आदि के साथ एक खोल सेटअप है।

जब php स्क्रिप्ट निष्पादित करता है, तो इसमें शेल सेटअप नहीं होता है, और वेबसर्वर उपयोगकर्ता खाते के अंतर्गत चलता है। जब क्रियान्वित:

  • सुनिश्चित करें कि आप अपनी फ़ाइल को पूरा पथ कर, swipl पर्याप्त नहीं है, यह होना चाहिए /path/to/swipl
  • यकीन वेबसर्वर प्रक्रिया इसके आवश्यकतानुसार सब कुछ करने के लिए पर्याप्त पहुँच अधिकार है बनाते हैं।
संबंधित मुद्दे