服务器上的passthru问题

我试图在我的PHP代码(Joomla模块)中运行passthru函数时遇到问题。代码如下(这只是一个片段)
ob_start();
passthru("/usr/bin/whois 85.70.231.130 | /usr/bin/grep 'address:'",$code);
$whoisData = ob_get_contents();
ob_end_clean();
$whoisData = str_replace("address:", "", $whoisData);
$whoisArray = split("n",$whoisData);
echo trim($whoisArray[1]);    
当我在我的localhost上运行它时,它回应它应该是什么,但是当我在生产服务器上运行这个代码时,它没有回应,$ code变量包含127(找不到命令)。我尝试将这些命令的绝对路径添加到passthru函数中,但它没有帮助。有趣的是,当我通过ssh和php命令从终端运行代码时,它运行良好,但是当它从应用程序上下文调用时却没有。有人知道我该怎么办吗?谢谢 一些编辑.. safe_mode已启用 webserver没有看到/ usr / bin和/ bin /文件夹,那么从php运行这些命令的最佳方法是什么?     
已邀请:
usr/bin/grep
看起来不像命令的有效路径。 在第二个命令的路径的开头缺少
/
可能解释命令未找到错误...即使找到第一个
whois
命令。     
您是否想看看您的webserver / php是否正在运行chrooted?
print_r(glob('/*'));
if (file_exists('/usr/bin/grep') && file_exists('/usr/bin/whois')) {
   print "maybe its a permissions thing?n";
} else {
   print "can't see executables requiredn";
}
应该给你一个线索。     
所以我已经用phpwhois库解决了我的问题。我似乎对我的服务器配置似乎不太可能这些功能运行良好。谢谢你的帮助:)     

要回复问题请先登录注册