PHP コード (Joomla モジュール) でパススルー関数を実行しようとすると問題が発生します。コードは次のとおりです(これは単なるスニペットです)
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 (コマンドが見つかりません) が含まれます。これらのコマンドへの絶対パスをパススルー機能に追加しようとしましたが、役に立ちませんでした。興味深いことに、ターミナルから ssh および php コマンドを介してコードを実行するとうまく動作しますが、アプリケーション コンテキストから呼び出されるとうまく動作しません。誰か私が何をすべきか知っていますか?ありがとう
いくつかの編集.. safe_mode は Web サーバー上にあり、/usr/bin および /bin/ フォルダーを認識しないため、php からこれらのコマンドを実行する最良の方法は何ですか?