Précédent   Forum du club des développeurs et IT Pro > PHP > Scripts
Scripts Forum d'entraide sur les scripts PHP téléchargés. Les meilleurs scripts PHP, la FAQ scripts PHP, toutes les FAQ PHP
Partagez cette discussion sur d'autres réseaux sociaux : Viadeo Twitter Google Facebook Digg Delicious MySpace Yahoo
Réponse
 
Outils de la discussion
Publicité
'
Vieux 07/11/2012, 00h54   #1
Christophe.G
Invité de passage
 
Homme Christophe
bidouilleur
Inscription : novembre 2012
Messages : 11
Détails du profil
Informations personnelles :
Nom : Homme Christophe
Localisation : France

Informations professionnelles :
Activité : bidouilleur
Secteur : Industrie

Informations forums :
Inscription : novembre 2012
Messages : 11
Points : 1
Points : 1
Par défaut Jouer un son sur le serveur depuis un script PHP

Bonsoir à tous.

J'aimerai savoir comment jouer un son (coté serveur) depuis une page PHP avec mplayer par exemple (je suis sous linux).

J'ai essayé sans succès:

Code :
exec ("/usr/bin/mplayer /var/www/sound/bip.wav");
Code :
exec ("/usr/bin/mplayer sound/bip.wav");

Je précise qu'à priori j'ai les bonnes permissions sur le fichier bib.wav ou encore sur son répertoire du moins je pense.

Et que si je lance
Code :
mplayer /var/www/sound/bip.wav
depuis un terminal, le son est correctement joué.

Pour moi ça devrait marcher mais je me trompe peut être, si quelqu'un à une idée je suis preneur. Merci par avance pour l'attention que vous porterez à mon problème.
Christophe.G est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 07/11/2012, 02h01   #2
Christophe.G
Invité de passage
 
Homme Christophe
bidouilleur
Inscription : novembre 2012
Messages : 11
Détails du profil
Informations personnelles :
Nom : Homme Christophe
Localisation : France

Informations professionnelles :
Activité : bidouilleur
Secteur : Industrie

Informations forums :
Inscription : novembre 2012
Messages : 11
Points : 1
Points : 1
Encore une précision, visiblement c'est exec qui ne fonctionne pas, et je ne comprend pas pourquoi. Si je fais:
Code :
exec(usr/bin/n.importe.quel.programme);
rien ne s'exécute. Je dois faire une erreur grossière quelque part mais je ne vois pas où.

Edit: Je viens de regarder dans le fichier /etc/php5/apache2/php.ini

safe_mode est sur Off et disable_functions est vide. Je ne comprend pas.
Je précise que j'utilise Backtrack, je suis donc en root, je ne sais pas si ça peut jouer.
Christophe.G est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 13/11/2012, 08h02   #3
Christophe.G
Invité de passage
 
Homme Christophe
bidouilleur
Inscription : novembre 2012
Messages : 11
Détails du profil
Informations personnelles :
Nom : Homme Christophe
Localisation : France

Informations professionnelles :
Activité : bidouilleur
Secteur : Industrie

Informations forums :
Inscription : novembre 2012
Messages : 11
Points : 1
Points : 1
Bon, je reviens vers vous (oui-oui j'insiste lourdement) car vraiment je désespère avec cette fonction exec (mais c'est la même chose avec passthru ou system).
Alors m'étant persuadé que le problème était lié à Backtrack, j'ai installé Apache sur Ubuntu pour tester. Le problème reste le même, donc l'erreur ne peut venir que de moi, et vraiment je nage.
Par contre, je me suis apperçu de ça, comme je l'ai dis précédemment : Ne fonctionne pas, peu importe le programme avec ou sans le chemin (relatif ou non j'ai tout testé ça ne marche pas).
Par contre (et c'est pour ça que je pense que c'est moi qui fais une erreur) si je fais: www-data s'affiche. Donc ça voudrait dire que exec fonctionne ou alors je ne comprend vraiment rien du tout.
Bref, je suis complètement perdu, alors si quelqu'un à ne serait-ce qu'un début d'idée ou peu simplement m'éclairer un peu, je suis preneur.
Christophe.G est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 13/11/2012, 10h57   #4
sabotage
Modérateur
 
Avatar de sabotage
 
Homme Vincent
Inscription : juillet 2005
Messages : 16 514
Détails du profil
Informations personnelles :
Nom : Homme Vincent

Informations forums :
Inscription : juillet 2005
Messages : 16 514
Points : 21 351
Points : 21 351
Justement : est-ce que www-data a le droit d'execution ?
sabotage est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 13/11/2012, 18h38   #5
Christophe.G
Invité de passage
 
Homme Christophe
bidouilleur
Inscription : novembre 2012
Messages : 11
Détails du profil
Informations personnelles :
Nom : Homme Christophe
Localisation : France

Informations professionnelles :
Activité : bidouilleur
Secteur : Industrie

Informations forums :
Inscription : novembre 2012
Messages : 11
Points : 1
Points : 1
Tout d'abord, merci pour ta réponse. Alors déjà, la, je me plantais, je pensais que www-data avait forcément les droit d'exécution (ne me demande pas pourquoi...)
Alors ça ne marche toujours pas mais je pense que le problème vient de la, car voici ce que j'ai fais.

Code :
sudo chown www-data:www-data  /var/www/Mon-site
Code :
sudo chmod 755 /var/www/Mon-site/test.php
dans test.php il y a:
Code :
1
2
3
<?php
exec('aplay sound/bip.wav');
?>
Donc effectivement ça ne marche toujours pas, mais je pense que le problème vient de la car maintenant la page cherche quelques secondes avant de stopper, ce qui n'était pas le cas avant.
Donc je te remercie, ta réponse va probablement m'aider à avancer, si je fais une autre erreur (notamment sur les bons droits et la commande à utiliser pour ça) ou si tu as une autre idée n'hésite pas à me le dire.
Moi je vais gratter ça de mon coté (je viens seulement de voir ta réponse) et je reviens vers vous ensuite que je trouve ou non.
Merci de ton attention en tout cas.

A petite précision au cas ou, si je remet root comme propriétaire de www avec
Code :
sudo chown root:root /var/www
alors la page ne se charge à nouveau plus (actualisée en une fraction de seconde, ça ne cherche pas quoi).
Christophe.G est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 13/11/2012, 20h51   #6
Christophe.G
Invité de passage
 
Homme Christophe
bidouilleur
Inscription : novembre 2012
Messages : 11
Détails du profil
Informations personnelles :
Nom : Homme Christophe
Localisation : France

Informations professionnelles :
Activité : bidouilleur
Secteur : Industrie

Informations forums :
Inscription : novembre 2012
Messages : 11
Points : 1
Points : 1
Bon, pour être plus précis, les droits sont les suivants, pour www:
Code :
drwxr-xr-x  6 www-data www-data 4096 www
Même chose pour www/Mon-site:
Code :
drwxr-xr-x 7 www-data www-data 4096  Mon-site
et pour test.php c'est webadmin qui est le propriétaire.
Code :
-rwxrwxrwx webadmin www-data   test.php
Mais si je change webadmin en www-data:
Code :
-rwxrwxr-x 1 www-data www-data     55 test.php
Rien ne change. J'avoue avoir un peu de mal avec les droits... Merci de ton aide.
Christophe.G est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 13/11/2012, 20h58   #7
Exia93
Membre Expert
 
Homme
Étudiant
Inscription : avril 2012
Messages : 612
Détails du profil
Informations personnelles :
Sexe : Homme
Localisation : France

Informations professionnelles :
Activité : Étudiant

Informations forums :
Inscription : avril 2012
Messages : 612
Points : 1 070
Points : 1 070
Bonsoir,

je pense que saboteur parlait des droits sur le fichier son et si www-data à le droit de lancer l'application mplayer, en passant il me semble que les fichiers php doivent avoir les droits 644 (rw-r--r--) et non 755 (rwxr-xr-x) qui sont réservés aux applications ou dossiers mais je peu me tromper.

Une dernière chose n'oublie pas que tu est l'utilisateur www-data quand tu exécute ton script php donc tu n'a pas forcement les mêmes droits que l'utilisateur que tu utilise en tant qu'utilisateur courant.
Exia93 est actuellement connecté   Envoyer un message privé Réponse avec citation 00
Vieux 13/11/2012, 21h00   #8
sabotage
Modérateur
 
Avatar de sabotage
 
Homme Vincent
Inscription : juillet 2005
Messages : 16 514
Détails du profil
Informations personnelles :
Nom : Homme Vincent

Informations forums :
Inscription : juillet 2005
Messages : 16 514
Points : 21 351
Points : 21 351
Utilise passthru pour voir si tu as un retour :
Code :
1
2
3
4
<?php
passthru('aplay sound/bip.wav', $result);
ecoh $result;
?>
sabotage est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 13/11/2012, 21h21   #9
Christophe.G
Invité de passage
 
Homme Christophe
bidouilleur
Inscription : novembre 2012
Messages : 11
Détails du profil
Informations personnelles :
Nom : Homme Christophe
Localisation : France

Informations professionnelles :
Activité : bidouilleur
Secteur : Industrie

Informations forums :
Inscription : novembre 2012
Messages : 11
Points : 1
Points : 1
Merci à vous... Alors:

@Exia93 Je viens de réessayer sans succès (avec 755 pour être le plus permissif possible pour tester) en ayant exécuté:
Code :
sudo chmod 755 /var/www/Mon-site/sound/bip.wav
Et en ayant relancé apache bien que ça ne soit pas nécessaire (du moins je pense).

@sabotage J'ai juste 0 en retour du echo, je précise que je n'arrive à utiliser ni exec, ni passthru et ni system. Mais je pense que le problème se situe bien au niveau des droits.

Merci à vous de vous pencher sur mon problème.

Edit: Je ne sais pas si ça peut jouer, dans apache2.conf j'ai:
Code :
1
2
User ${APACHE_RUN_USER}
Group ${APACHE_RUN_GROUP}
J'ai essayé de changer en:
Code :
1
2
User www-data
Group www-data
en relançant apache, ca n'y change rien (j'ai donc remis à l'origine).
Christophe.G est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 13/11/2012, 22h22   #10
sabotage
Modérateur
 
Avatar de sabotage
 
Homme Vincent
Inscription : juillet 2005
Messages : 16 514
Détails du profil
Informations personnelles :
Nom : Homme Vincent

Informations forums :
Inscription : juillet 2005
Messages : 16 514
Points : 21 351
Points : 21 351
Le droit d'execution c'est sur aplay qu'il doit porter.
Utilise de plus le chemin d'accès complet au programme.
sabotage est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 13/11/2012, 23h14   #11
Christophe.G
Invité de passage
 
Homme Christophe
bidouilleur
Inscription : novembre 2012
Messages : 11
Détails du profil
Informations personnelles :
Nom : Homme Christophe
Localisation : France

Informations professionnelles :
Activité : bidouilleur
Secteur : Industrie

Informations forums :
Inscription : novembre 2012
Messages : 11
Points : 1
Points : 1
Merci encore pour ton attention...
Alors, j'ai porté les droits suivants sur /usr/bin/aplay:
Code :
-rwxr-xr-x 1 www-data www-data 55296  aplay
J'ai essayé aussi de mettre une copie de aplay dans www/mon-site/aplay avec les droits suivants:
Code :
-rwxrwxr-x 1 www-data www-data 55296  aplay
et dans test.php j'ai mis:
Code :
1
2
3
4
5
6
<?php
exec('aplay sound/bip.wav');
exec('aplay /var/www/Mon-site/sound/bip.wav');
exec('/usr/bin/aplay sound/bip.wav');
exec('/usr/bin/aplay /var/www/Mon-site/sound/bip.wav');
?>
Et rien n'y fait, ça ne marche pas...
Christophe.G est déconnecté   Envoyer un message privé Réponse avec citation 00
Réponse
Outils de la discussion

Navigation rapide


Fuseau horaire GMT +2. Il est actuellement 19h26.


 
 
 
 
Partenaires

Hébergement Web