5

PHP コードからの exec() および shell_exec() の実行に問題がありました。Windows IIS7 で PHP5.3 を実行しています。(これに数時間を費やし、最終的に取得しました...)

次の exec() コードが機能します。

$cmd='cmd.exe /c C:\\<path/to/php/directory/>\php.exe -v';
exec($cmd,$output,$err);
var_dump($output); //dump the output
echo $err; //show the error code, should give 0 for no errors

- IIS インターネット ユーザーには、PHP ディレクトリに対する完全な読み取り + 実行権限があります - IIS インターネット ユーザーには、php.exe に対する完全な読み取り + 実行権限があります - IIS インターネット ユーザーには、完全な読み取り + 実行権限がありますcmd.exeに

バックグラウンド プロセスの php ファイルから大量のデータを出力している場合は、shell_exec() を使用します。以下の作業コードを参照してください (少なくとも私のセットアップでは)。

$cmd='cmd.exe /c C:\\<path/to/php/directory/>\php.exe -f C:\\<path\to\your\>\cron.php';
echo shell_exec($cmd); //output the data

何も返さない場合は、パスに問題があることを意味します。

実際の Windows パスで単一のバックスラッシュ " \ " をエミュレート/置換するには、" \ " (引用符なし) を使用することを忘れないでください。

バックグラウンド プロセス ファイル、つまり cron.php に IIS Internet User のアクセス許可があることも確認してください。楽しむ!

4

0 に答える 0