Bonjour, tout le monde. Je vous remercie d'avance pour votre aide.
Problème:
Je voudrais lancer un script python depuis php. Le script python fonctionne quand je le lance depuis la ligne de commande sous ubuntu.
Voici le code php pour lancer le script python(qui donc ne fonctionne pas):
Ce qui est assez enfin peut être "étrange" quand la commande est "simple" exemple $cmd="ls -l" la variable $ouput envoie bien le resultat de ls -l. Tandis que lorque $cmd="./script_python.py" quand je lance mon script php dans firefox il tourne et ne s'arrête pas.
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12 <?php chdir("/var/www/site/script/python/"); //je me place dans le bon repertoire $cmd="./script_python.py"; $pid=exec($cmd,$output,$return_var); //je lance le script python if($return_var!=0){ print_r($output); echo $pid; }else{ print_r($output); ?> }
Je ne sais pas si il est nécessaire de déposer mon script python ici vu qu'il fonctionne très bien lancé en ligne de commande je ne pense que cela vienne de lui. Si vous croyez que ce n'est pas le cas je le posterai volontier.( Ce script python converti une vidéo quelconque en flv ,prend une petite image de la vidéo et manipule une base de donnée.)
Voilà j'espère que j'ai été assez précis. Merci à vous.
Edit:
Rebonjour, j'ai recodé mon script python en php et le problème viendrai des commandes ffmpeg que je lance dans exec il semblerai qu'elle ne s'exécute pas.(Néanmoins la commande marche bien quand je suis sur la console).
Voilà le code:
D'après mes essais $return_value=1.
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31 <?php include('connection_bdd.php'); function ffmpeg_convertion_video($adresse_origine,$adresse_final){ $adresse_origine=mysql_real_escape_string($adresse_origine); $adresse_final=mysql_real_escape_string($adresse_final); chdir("/var/www/"); $cmd=' ffmpeg -i '.$adresse_origine.' -sameq '.$adresse_final.' '; $pid=exec($cmd,$output,$return_value); if($return_value!=0){ echo "Dernière erreur:".$pid; print_r($output); }else{ print_r($output); } } function ffmpeg_image_video($adresse_origine,$adresse_final){ $adresse_origine=mysql_real_escape_string($adresse_origine); $adresse_final=mysql_real_escape_string($adresse_final); chdir("/var/www/"); $cmd=' ffmpeg -i '.$adresse_origine.' -sameq -vcodec mjpeg -vframes 1 -an -f rawvideo -ss 30 '.$adresse_final.' '; $pid=exec($cmd,$output,$return_value); if($return_value!=0){ echo "Dernière erreur:".$pid; print_r($output); }else{ print_r($output); } } ffmpeg_image_video($path,$path_final); ffmpeg_conversion_video($path_video,$path_video_final); ?>
Le print_r($output) me renvoie un Array() vide et $pid ne renvoie rien.
Cela doit venir des droits mais je ne vois pas comment faire j'ai mis tout les droits à tout le monde sur le fichier php.
Partager