J'aimerais exécuter une commande shell via une page php.
Je "developpe" une interface pour générer des timelapses, le serveur apache/php tourne sur un raspberry pi.
Via un formulaire, je récupère les paramètres du timelapse en tant que variables puis je passe la commande.
Le formulaire brut de pomme: http://www.moreau-fr.net/tmp/timelapse/index.php
Je concatène ensuite la ligne de commande avec les variables, c'est fonctionnel.
Je stocke ma ligne de commande dans une variable "cmd"
Code : Tout sélectionner
<?
$cmd = "sudo raspivid -t $t -tl $tl -o $o%0$d.jpg -w $w -h $h -q $q -ev $ev -co $co -br $br -sa $sa -ex $ex -awb $awb"
;?>
Code : Tout sélectionner
sudo raspivid -t 10000 -tl 1000 -o IMG_%04d.jpg -w 2592 -h 1944 -q 100 -ev 0 -co 0 -br 0 -sa 0 -ex auto -awb off
Je me doute qu'il y a un problème de syntaxe.
Code : Tout sélectionner
<?
$output = shell_exec('echo "$cmd"');
echo "<pre>$output</pre>";
?>
J'ai éssayé les syntaxes suivantes :
Code : Tout sélectionner
<?
//$output = shell_exec('sudo raspivid -t "'.$t.'" -tl "'.$tl.'" -o "'.$o.'" %0 "'.$d.'".jpg -w "'.$w.'" -h "'.$h.'"');
//$output = shell_exec('sudo raspivid -t '.$t.' -tl '.$tl.' -o '.$o.' %0 '.$d.'.jpg -w '.$w.' -h '.$h.'');
//$output = shell_exec('sudo raspivid -t "$t" -tl "$tl" -o "$o" %0 "$d".jpg -w "$w" -h "$h"');
//$output = shell_exec('sudo raspivid -t '.escapeshellarg($t).' -tl '.escapeshellarg($tl).' -o '.escapeshellarg($o).' %0 '.escapeshellarg($d).'.jpg -w '.escapeshellarg($w).' -h '.escapeshellarg($h).'');
echo "<pre>$output</pre>";
?>
Code : Tout sélectionner
<?
$ls = shell_exec('ls -la');
echo "<pre>$ls</pre>";
?>
Code : Tout sélectionner
<?php
//$output = shell_exec('sudo /home/pi/timelapse.sh');
//echo "<pre>$output</pre>";
?>
Cordialement,
Laurent