我有一台运行在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