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):

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);
?>
}
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.

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:
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);
?>
D'après mes essais $return_value=1.
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.