से एक शेल कमांड निष्पादित करने के लिए कैसे मैं एक शेल कमांड निष्पादित करने और इसके आउटपुट को वापस करने के लिए एक php स्क्रिप्ट बनाना चाहता हूं। सर्वर को एक निजी कुंजी की आवश्यकता है। जब मैंने पहली बार इसका परीक्षण करने का फैसला किया तो मैंने इसे बनाया:एक php स्क्रिप्ट
<?php
$command = "ls";
$output = shell_exec($command);
echo "<pre>$output</pre>";
?>
यह ठीक काम करता था। लेकिन जब मैं आदेश को $command
बदल मैं वास्तव में चलाने के लिए चाहता था:
You need root privileges to run this script
मेरा अनुमान है मैं sudo
उपयोग करने की आवश्यकता है:
$command = "/etc/init.d/mycontrollerd status /etc/mycontrollerconfig";
यह मुझे इस उत्पादन दे दी है। बेशक, सर्वर पर कहीं भी पेम फ़ाइल डालने की आवश्यकता होगी। मान लीजिए कि मैं ऐसा करता हूं, $command
क्या होना चाहिए? क्या मुझे shell_exec()
, exec()
, system()
या कुछ और उपयोग करना चाहिए?
हालांकि यह भी * मायने रखता है कि उपयोगकर्ता खाता अधिकृत होना चाहिए, इसका मतलब यह नहीं है कि PHP फ़ंक्शन का उपयोग करने के लिए सबसे अच्छा विकल्प नहीं है। कौन सा सबसे अच्छा है? –
@ केनेथ वोगट 'exec', क्योंकि इसमें अनिवार्य रूप से खोल शामिल नहीं है और नतीजा देता है, या' पासथ्रू ', जो परिणाम को सीधे आउटपुट करता है, लेकिन मूल कोड के कुछ संशोधन की आवश्यकता होगी। – phihag