2012-01-09 2 views
0

質問は、PHPから外部コマンドを実行することです。以下の私のコードを見つけてください。PHPからのカスタムターミナルコマンドの実行

$htmlcontent=$_POST['source']; 
    echo $htmlcontent; 
    if(!isset($htmlcontent)){die('No HTML Cannot Proceed');} 
    $sourcefile='sourcefile.html'; 

    $htmlfile=fopen($sourcefile,'w') or die('Open Failed'); 

    fwrite($htmlfile,$htmlcontent); 
    fclose($htmlfile); 

    if(!file_exists($sourcefile)){die('File Creation failed');} 

    $command="CutyCapt --html=sourcefile.html --out=trials.png"; 

    echo 'Executing'.shell_exec($command); 

CutyCaptを使用して、提供されたソースHTMLのスナップショットを生成しようとしています。私のCutyCaptはコマンドラインから正常に動作しており、スナップショットも生成します。しかし、コードに書かれたように私はそれを実行するときに何も起こっていません。

lsのような通常のコマンドを実行しようとしました。それらはWebサーバーからも働いています。これと混同して、誰かが私に何かを提案することができますか?

どこが間違っていたのですか?私はビンにCutyCaptを持っていて、ターミナルで実行する準備ができています。

私はPHP 5.3でUbuntu 11.10を使用しています。

おかげ

+0

でそれを調べるには、WebサーバはCutyCaptに実行権限を持っている、とシェルのパスにそのアプリですしていますか? trials.pngで作業するための書き込み権限もありますか?パスの問題を回避するには絶対パスを使います: '/ usr/bin/CutyCapt ...' –

+0

そのフォルダに0777を設定しようとしました。まだ変更はありません。 – Kris

+0

私はすでにwww-data(WebServer)ユーザーに特権を与えています。しかし、いくつかのコマンドには問題があります。 'lsのように、psは正常に動作しますが、' la 'はいけません。なぜ私は動作しないのか分かりません。 – Kris

答えて

0

利用システム()またはEXEC()とパススルー はphp.net

+0

はすべて3を使用しました.no結果 – Kris

+0

exec(command、$ data)のように。 var_dump($ data); – Spidfire

+0

配列(0){}が出力されました – Kris

関連する問題