我在搜索过程中看到了不止一些问题,但没有一个有正确的答案,只是推荐其他事情尝试
$server = "IPADDRESS";
$username = "USER";
$port = "22";
$ftpuser = "FTPUSER"
$ftppass = "FTPPASS"
$command = "/usr/local/psa/bin/subscription --create " . $domain . " -owner admin -service-plan 'Default Domain' -ip " . $server . " -login " . $ftpuser . " -passwd '" . $ftppass . "'";
$cmd_string = "ssh -p ".$port." ".$username."@".$server." ".$command;
exec($cmd_string, $output);
echo $command;
echo $output;
使用uptime作为命令工作正常,并且获取$命令的确切输出并手动粘贴它也可以正常输出SUCCESS: Creation of domain DOMAIN completed
- 但是当运行它时,它只是输出'数组',没有内容。我错过了什么吗?
答案 0 :(得分:0)
PHP manual' page about exec很清楚:
如果输出参数存在,那么指定的数组将被命令的每一行输出填充。尾随空格(例如\ n)不包含在此数组中。请注意,如果数组已包含某些元素,则exec()将附加到数组的末尾。如果您不希望函数附加元素,请在将数组传递给exec()之前调用数组上的unset()。
它返回一个数组,其中包含exec调用的每一行。
所以在你的情况下,你应该使用:
echo $output[0]; // The first and only line