我在尝试在我的 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]);
当我在本地主机上运行它时,它会回显它应该的内容,但是当我在生产服务器上运行此代码时,它什么也不回显,并且 $code 变量包含 127(找不到命令)。我尝试将这些命令的绝对路径添加到 passthru 函数中,但没有帮助。有趣的是,当我通过 ssh 和 php 命令直接从终端运行代码时,它运行良好,但是从应用程序上下文调用它时却没有。有人知道我应该怎么做吗?谢谢
一些编辑..安全模式在网络服务器上看不到 /usr/bin 和 /bin/ 文件夹,那么如何从 php 运行这些命令的最佳方法是什么?