के लिए खोल कैसे बदलूं मैं एक ubuntu सर्वर पर php के exec() फ़ंक्शन का उपयोग करना चाहता हूं। समस्या यह है कि, मुझे हमेशा एक त्रुटि मिलती है, कि आदेश नहीं मिला है।/गूंज: उदाहरणमैं php के exec()
exec("echo 123");
प्रिंट का उपयोग कर
मेरे लिएश के लिए नहीं मिला
, ऐसा लगता है php, श खोल उपयोग कर रहा है जब मैं पार्टी का उपयोग किया जा करना चाहते हैं । मैंने // etc/passwd में www-data के लिए खोल बदलने की कोशिश की, जो कि या तो मदद नहीं करता था।
क्या किसी के पास कोई विचार है कि समस्या कहां से आ रही है या मैं PHP के उबंटू उपयोगकर्ता के लिए खोल कैसे बदल सकता हूं।
धन्यवाद, टीमो
[संपादित करें]
हो सकता है कि इस मदद करता है:
मैं टीमो के रूप में ssh से एक bash स्क्रिप्ट कहते हैं, इस स्क्रिप्ट एक PHP स्क्रिप्ट है, जो कार्यकारी का उपयोग करता है कहते हैं। मुझे पता है, यह अजीब लगता है, लेकिन यह एक बड़े विकास पर्यावरण का हिस्सा है ...
बिंदु यह है कि, मैं निश्चित नहीं हूं, क्योंकि उपयोगकर्ता के अंदर स्क्रिप्ट निष्पादित किया गया है।
[संपादित करें]
अब तक मैं पता लगा है कि वहाँ एक और अधिकार शामिल समस्या होना चाहिए। भले ही मैं निष्पादन के भीतर से एक बैश स्क्रिप्ट test.sh (इसके पूर्ण पथ से!) को कॉल करने का प्रयास करता हूं, php test.php बस कहेंगे।
श: /test.sh:
जैसे त्वरित निष्पादन के लिए धन्यवाद के साथ बैश का आह्वान कर सकते हैं। दुर्भाग्य से, इसने समस्या को हल नहीं किया।/bin/echo या तो काम नहीं करता है। क्या मैं वास्तव में करना चाहता था asdf --password = इस /usr/bin/mysql --user = है asdf mydb <./dump.sql आप देख सकते हैं, मैं भी निरपेक्ष पथ का इस्तेमाल किया।गूंज इसे और अधिक सरल बनाने के लिए सिर्फ एक उदाहरण था ... शायद कोई अन्य विचार हो सकता है? – Timo