Page 1 sur 2
[php]execute un programme externe et attand sa fin
Posté : 09 avr. 2015, 19:13
par raouf-bnj
slt,
je veux lancer un programme java à partire de scrpte php et attender la fin de se programme pour continuer le scripte j'ai essye avec exec () et system() mes le programme et tout joure arriter avant sa fin (il s'execute 1 ou 2 second ) et les deux fonction return la valeur 1
Re: [php]execute un programme externe et attand sa fin
Posté : 10 avr. 2015, 00:36
par Saian
D'après la doc de exec et system :
Si vous démarrez un programme en utilisant cette fonction et que vous voulez le laisser tourner en arrière plan, vous devez vous assurer que la sortie du programme est redirigée vers un fichier, ou un autre flux de sortie, sinon PHP attendra jusqu'à la fin de l'exécution du programme.
Alors, à priori, soit la sortie est redirigée vers un fichier ou autre flux de sortie, soit le programme s'est bel et bien arrêté.
Tu peux tester ta commande directement dans le terminal ou essayer de récupérer la sortie pour voir ce qu'elle retourne.
D'après la doc la fonction passthru affiche la sortie.
Re: [php]execute un programme externe et attand sa fin
Posté : 10 avr. 2015, 15:06
par raouf-bnj
merci pour votre reponse
mes j'ai testé mon scripte a partir de console (php monscrypte.php) et sa marche tres bien le pogramme continuer jusqu'a la fin. mes a partir de apatche sa marche pas
Re: [php]execute un programme externe et attand sa fin
Posté : 10 avr. 2015, 15:12
par Saian
Peut être un problème de droits. Ce n'est pas le même utilisateur quand tu exécutes le script dans la console et quand tu l’exécutes via le serveur.
Re: [php]execute un programme externe et attand sa fin
Posté : 11 avr. 2015, 02:02
par raouf-bnj
tu peux m'aider pour une solution ??
merci

Re: [php]execute un programme externe et attand sa fin
Posté : 11 avr. 2015, 12:19
par Saian
Pour ça il faudrait un peu plus d'informations, comme par exemple le code php qui pose problème.
As tu testé avec passthru ? quel est le retour ?
As tu vérifié s'il n'y a pas de problème de droits ?
Re: [php]execute un programme externe et attand sa fin
Posté : 11 avr. 2015, 13:17
par raouf-bnj
oui j'ai testé mais c'est la même valeur de retoure et programme s'arrite.
remrque : le programme que je lancer cré et manipulé des fichiers (et il est ecrite en java).

Re: [php]execute un programme externe et attand sa fin
Posté : 11 avr. 2015, 13:24
par Saian
Et ça se passe sur quel environnement ? linux, windows, mac os ?
Re: [php]execute un programme externe et attand sa fin
Posté : 11 avr. 2015, 13:42
par raouf-bnj
linux ubuntu 14.10
Re: [php]execute un programme externe et attand sa fin
Posté : 11 avr. 2015, 13:49
par Saian
Ok et quels sont les droits sur le bin java, sur les fichiers manipulés et sur le dossier qui les contient (ls -l) ?
A priori l'utilisateur d'apache est www-data donc s'il n'a pas les droits le bin peut pas faire son boulot.
Re: [php]execute un programme externe et attand sa fin
Posté : 11 avr. 2015, 14:27
par raouf-bnj
le dossier de traville et /var/www/html donc l'utilsateur www-data a tout les droit sur ce repertoire
www-data

33:33:www-data:/var/www:/usr/sbin/nologin

Re: [php]execute un programme externe et attand sa fin
Posté : 11 avr. 2015, 14:49
par Saian
Difficile d'y voir clair avec ce screen sans savoir précisément ce que fait le bin java (seqmaker_web.jar ?) et à quoi ressemble la commande (dans test_exec.php ?).
Tu peux toujours tester de tout passer en chown -R adminraouf:www-data et le dossier qui doit être en écriture en chmod -R 775 (www-data aura tous les droits dessus rwx et tous les autres utilisateurs autres que adminraouf et www-data auront des droits de lecture et exécution r-x).
Peut être le bin java génère-t-il ou peut-il générer un fichier de log ou tu pourrais trouver ce qu'il a fait ou ce qui le fait bloquer...
PS : c'est un script de hack ? ^^
EDIT : c'est pas parce que le dossier de travail est /var/www/html que www-data a tous les droits sur ce qu'il contient.
Par exemple tu as 3 fichiers en -rw--w--w- adminraouf adminraouf qui ne peuvent donc pas être lu par www-data (bien qu'il puisse les écraser w).
Et en l'occurrence aucun des dossiers et fichiers listés n'ont de droits spécifiques pour www-data. www-data a les permissions du troisième groupe rwx (celles de tous les utilisateurs autres que le propriétaire ou le groupe).
Re: [php]execute un programme externe et attand sa fin
Posté : 11 avr. 2015, 16:03
par moogli
salut,
J'ajouterais qu'il est simple d'ajouter des logs en java ce qui pourrait grandement t'aider (parce qu'avec un message d'erreur tu avancera plus vite

).
De plus attention au temps d’exécution du script, par défaut le temps d’exécution en web est de 30s.
@+
Re: [php]execute un programme externe et attand sa fin
Posté : 11 avr. 2015, 19:05
par raouf-bnj
Difficile d'y voir clair avec ce screen sans savoir précisément ce que fait le bin java (seqmaker_web.jar ?) et à quoi ressemble la commande (dans test_exec.php ?).
Tu peux toujours tester de tout passer en chown -R adminraouf:www-data et le dossier qui doit être en écriture en chmod -R 775 (www-data aura tous les droits dessus rwx et tous les autres utilisateurs autres que adminraouf et www-data auront des droits de lecture et exécution r-x).
Peut être le bin java génère-t-il ou peut-il générer un fichier de log ou tu pourrais trouver ce qu'il a fait ou ce qui le fait bloquer...
PS : c'est un script de hack ? ^^
EDIT : c'est pas parce que le dossier de travail est /var/www/html que www-data a tous les droits sur ce qu'il contient.
Par exemple tu as 3 fichiers en -rw--w--w- adminraouf adminraouf qui ne peuvent donc pas être lu par www-data (bien qu'il puisse les écraser w).
Et en l'occurrence aucun des dossiers et fichiers listés n'ont de droits spécifiques pour www-data. www-data a les permissions du troisième groupe rwx (celles de tous les utilisateurs autres que le propriétaire ou le groupe).
merci pour tes réponse....
les droits sont comme ca c'est parce que je les modifier et concernant les fichier rw- rw- rw- le bin jar utiliser just en lecture le bin jar ecrire sur le dossier cuckoo (mes ce dossier a rwx rwx rwx en recursion ) donc sur tout les ficher de dossier de plus le programme java cree un fichier et commance de ecriire quelle que ligne avant qu'il s'arrite donc je panse pas que c'est une qustion des droit ?????
Re: [php]execute un programme externe et attand sa fin
Posté : 11 avr. 2015, 19:08
par raouf-bnj
salut,
J'ajouterais qu'il est simple d'ajouter des logs en java ce qui pourrait grandement t'aider (parce qu'avec un message d'erreur tu avancera plus vite

).
De plus attention au temps d’exécution du script, par défaut le temps d’exécution en web est de 30s.
@+
mais le programme il s'execute même pas 30 sec .