3

次の結果が表示されます。

echo exec("whoami"); // will output "www-data"

ただし、実際のコマンドを実行しようとすると:

echo exec("casperjs myscript.js /foo/bar");

その後、何も起こりません:

  • 出力なし (casperjs スクリプトはいくつかの stdout ログ メッセージを出力する必要があります)
  • アクションなし (スクリプトは絶対パスを使用してイメージを作成する必要がありますが、そうではありません)
  • PHP からのエラーなし
  • シェルコマンドの出力なし

私はStackOverflowで検索し、別の方法を試してみました(最初にシェルでテストして、それらが機能することを確認しました):

echo exec("casperjs /absolute/path/to/myscript.js");
echo exec("/usr/local/bin/casperjs /absolute/path/to/myscript.js");

system()、を使用して他の組み合わせもテストしましshell_exec()passthru() が、常に同じです。phpログファイルでもエラーも出力もないため、問題を理解するのは非常に困難です:(

4

1 に答える 1

2

echo exec("casperjs myscript.js /foo/bar 2>&1");他の方法では表示されない標準エラー出力を標準出力にリダイレクトしてみてください。

コマンドラインのエラーであるか、casperjs が $PATH にないなどの可能性があります。

于 2013-01-31T18:05:16.463 に答える