我有一臺運行在Linux上的服務器,它執行12個節點(12臺運行Linux的計算機)的命令。我最近在服務器上下載了PHP,通過打開特定的PHP文件來創建可以執行命令的網頁。在PHP中打開Linux終端命令
我用exec()
,passthru()
,shell_exec()
和system()
。 system()
是唯一一個返回我的代碼的一部分。我希望PHP在Linux中像開放性的termainal命令一樣行事,我無法弄清楚如何做到這一點!
這是現在發生的事情(Linux的直接與PHP)的例子: 當使用直接Linux開放源終端命令:
[email protected]:/home/hyperwall/Desktop> /usr/local/bin/chbg -mt
我得到的輸出:
The following settings will be used:
option = mtsu COLOR = IMAGE = imagehereyouknow!
NODES = LOCAL
and additional code to send it to 12 nodes.
現在用PHP:
switch($_REQUEST['do'])
{ case 'test':
echo system('/usr/local/bin/chbg -mt');
break;
}
輸出:
The following settings will be used:
option = mtsu COLOR = IMAGE = imagehereyouknow!
NODES = LOCAL
並停止!任何人都有解釋發生了什麼?以及如何解決它?只有系統顯示部分代碼,其他功能不顯示任何內容!
您是否使用過'strace'來確定它卡住了什麼?以調試模式運行Web服務器以將其限制爲單個進程。 – 2015-02-15 16:59:10
你正在運行哪個Web服務器?在哪個用戶的網絡服務器上運行?如果它運行在「nobody」或類似環境下,您確定該用戶可以執行chbg命令嗎? – 2015-02-15 17:10:59
什麼是「以及將其發送到12個節點的附加代碼」。 ??它來自哪裏? – Nimrod007 2015-02-15 17:40:00