質問は、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を使用しています。
おかげ
でそれを調べるには、WebサーバはCutyCaptに実行権限を持っている、とシェルのパスにそのアプリですしていますか? trials.pngで作業するための書き込み権限もありますか?パスの問題を回避するには絶対パスを使います: '/ usr/bin/CutyCapt ...' –
そのフォルダに0777を設定しようとしました。まだ変更はありません。 – Kris
私はすでにwww-data(WebServer)ユーザーに特権を与えています。しかし、いくつかのコマンドには問題があります。 'lsのように、psは正常に動作しますが、' la 'はいけません。なぜ私は動作しないのか分かりません。 – Kris