p
u
b
l
i
c
i
t
é
publicité
  1. #1
    Candidat au titre de Membre du Club
    Homme Profil pro
    bidouilleur
    Inscrit en
    novembre 2012
    Messages
    44
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : bidouilleur
    Secteur : Industrie

    Informations forums :
    Inscription : novembre 2012
    Messages : 44
    Points : 12
    Points
    12

    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 : Sélectionner tout - Visualiser dans une fenêtre à part
    exec ("/usr/bin/mplayer /var/www/sound/bip.wav");
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    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 : Sélectionner tout - Visualiser dans une fenêtre à part
    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.

  2. #2
    Candidat au titre de Membre du Club
    Homme Profil pro
    bidouilleur
    Inscrit en
    novembre 2012
    Messages
    44
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : bidouilleur
    Secteur : Industrie

    Informations forums :
    Inscription : novembre 2012
    Messages : 44
    Points : 12
    Points
    12

    Par défaut

    Encore une précision, visiblement c'est exec qui ne fonctionne pas, et je ne comprend pas pourquoi. Si je fais:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    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.

  3. #3
    Candidat au titre de Membre du Club
    Homme Profil pro
    bidouilleur
    Inscrit en
    novembre 2012
    Messages
    44
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : bidouilleur
    Secteur : Industrie

    Informations forums :
    Inscription : novembre 2012
    Messages : 44
    Points : 12
    Points
    12

    Par défaut

    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.

  4. #4
    Modérateur
    Avatar de sabotage
    Homme Profil pro
    Inscrit en
    juillet 2005
    Messages
    24 182
    Détails du profil
    Informations personnelles :
    Sexe : Homme

    Informations forums :
    Inscription : juillet 2005
    Messages : 24 182
    Points : 35 566
    Points
    35 566

    Par défaut

    Justement : est-ce que www-data a le droit d'execution ?

  5. #5
    Candidat au titre de Membre du Club
    Homme Profil pro
    bidouilleur
    Inscrit en
    novembre 2012
    Messages
    44
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : bidouilleur
    Secteur : Industrie

    Informations forums :
    Inscription : novembre 2012
    Messages : 44
    Points : 12
    Points
    12

    Par défaut

    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 : Sélectionner tout - Visualiser dans une fenêtre à part
    sudo chown www-data:www-data  /var/www/Mon-site
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    sudo chmod 755 /var/www/Mon-site/test.php
    dans test.php il y a:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    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 : Sélectionner tout - Visualiser dans une fenêtre à part
    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).

  6. #6
    Candidat au titre de Membre du Club
    Homme Profil pro
    bidouilleur
    Inscrit en
    novembre 2012
    Messages
    44
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : bidouilleur
    Secteur : Industrie

    Informations forums :
    Inscription : novembre 2012
    Messages : 44
    Points : 12
    Points
    12

    Par défaut

    Bon, pour être plus précis, les droits sont les suivants, pour www:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    drwxr-xr-x  6 www-data www-data 4096 www
    Même chose pour www/Mon-site:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    drwxr-xr-x 7 www-data www-data 4096  Mon-site
    et pour test.php c'est webadmin qui est le propriétaire.
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    -rwxrwxrwx webadmin www-data   test.php
    Mais si je change webadmin en www-data:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    -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.

  7. #7
    Membre Expert
    Homme Profil pro
    Étudiant
    Inscrit en
    avril 2012
    Messages
    771
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : avril 2012
    Messages : 771
    Points : 1 430
    Points
    1 430

    Par défaut

    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.

  8. #8
    Modérateur
    Avatar de sabotage
    Homme Profil pro
    Inscrit en
    juillet 2005
    Messages
    24 182
    Détails du profil
    Informations personnelles :
    Sexe : Homme

    Informations forums :
    Inscription : juillet 2005
    Messages : 24 182
    Points : 35 566
    Points
    35 566

    Par défaut

    Utilise passthru pour voir si tu as un retour :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    <?php
    passthru('aplay sound/bip.wav', $result);
    ecoh $result;
    ?>

  9. #9
    Candidat au titre de Membre du Club
    Homme Profil pro
    bidouilleur
    Inscrit en
    novembre 2012
    Messages
    44
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : bidouilleur
    Secteur : Industrie

    Informations forums :
    Inscription : novembre 2012
    Messages : 44
    Points : 12
    Points
    12

    Par défaut

    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 : Sélectionner tout - Visualiser dans une fenêtre à part
    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 : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    User ${APACHE_RUN_USER}
    Group ${APACHE_RUN_GROUP}
    J'ai essayé de changer en:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    User www-data
    Group www-data
    en relançant apache, ca n'y change rien (j'ai donc remis à l'origine).

  10. #10
    Modérateur
    Avatar de sabotage
    Homme Profil pro
    Inscrit en
    juillet 2005
    Messages
    24 182
    Détails du profil
    Informations personnelles :
    Sexe : Homme

    Informations forums :
    Inscription : juillet 2005
    Messages : 24 182
    Points : 35 566
    Points
    35 566

    Par défaut

    Le droit d'execution c'est sur aplay qu'il doit porter.
    Utilise de plus le chemin d'accès complet au programme.

  11. #11
    Candidat au titre de Membre du Club
    Homme Profil pro
    bidouilleur
    Inscrit en
    novembre 2012
    Messages
    44
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : bidouilleur
    Secteur : Industrie

    Informations forums :
    Inscription : novembre 2012
    Messages : 44
    Points : 12
    Points
    12

    Par défaut

    Merci encore pour ton attention...
    Alors, j'ai porté les droits suivants sur /usr/bin/aplay:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    -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 : Sélectionner tout - Visualiser dans une fenêtre à part
    -rwxrwxr-x 1 www-data www-data 55296  aplay
    et dans test.php j'ai mis:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    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...

Discussions similaires

  1. Lancer un exe sur le serveur depuis une page PHP
    Par Bundy*Al dans le forum Apache
    Réponses: 1
    Dernier message: 27/04/2010, 08h27
  2. Réponses: 0
    Dernier message: 26/03/2010, 10h33
  3. jouer un son sur une image passage souris
    Par ideal23 dans le forum JavaScript
    Réponses: 10
    Dernier message: 16/11/2009, 08h37
  4. Jouer un son sur le micro
    Par benji_11 dans le forum Windows
    Réponses: 5
    Dernier message: 05/09/2007, 16h53
  5. executer une commande sur un serveur depuis une page web
    Par nico33410 dans le forum Général Conception Web
    Réponses: 12
    Dernier message: 21/04/2007, 19h02

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo