Publicité
+ Répondre à la discussion
Affichage des résultats 1 à 11 sur 11
  1. #1
    Invité de passage
    Homme Profil pro Christophe
    bidouilleur
    Inscrit en
    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.

  2. #2
    Invité de passage
    Homme Profil pro Christophe
    bidouilleur
    Inscrit en
    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

    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.

  3. #3
    Invité de passage
    Homme Profil pro Christophe
    bidouilleur
    Inscrit en
    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

    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 Vincent
    Inscrit en
    juillet 2005
    Messages
    20 921
    Détails du profil
    Informations personnelles :
    Nom : Homme Vincent

    Informations forums :
    Inscription : juillet 2005
    Messages : 20 921
    Points : 27 315
    Points
    27 315

    Par défaut

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

  5. #5
    Invité de passage
    Homme Profil pro Christophe
    bidouilleur
    Inscrit en
    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

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

  6. #6
    Invité de passage
    Homme Profil pro Christophe
    bidouilleur
    Inscrit en
    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

    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.

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

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : avril 2012
    Messages : 763
    Points : 1 230
    Points
    1 230

    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 Vincent
    Inscrit en
    juillet 2005
    Messages
    20 921
    Détails du profil
    Informations personnelles :
    Nom : Homme Vincent

    Informations forums :
    Inscription : juillet 2005
    Messages : 20 921
    Points : 27 315
    Points
    27 315

    Par défaut

    Utilise passthru pour voir si tu as un retour :
    Code :
    1
    2
    3
    4
    <?php
    passthru('aplay sound/bip.wav', $result);
    ecoh $result;
    ?>

  9. #9
    Invité de passage
    Homme Profil pro Christophe
    bidouilleur
    Inscrit en
    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

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

  10. #10
    Modérateur
    Avatar de sabotage
    Homme Profil pro Vincent
    Inscrit en
    juillet 2005
    Messages
    20 921
    Détails du profil
    Informations personnelles :
    Nom : Homme Vincent

    Informations forums :
    Inscription : juillet 2005
    Messages : 20 921
    Points : 27 315
    Points
    27 315

    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
    Invité de passage
    Homme Profil pro Christophe
    bidouilleur
    Inscrit en
    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

    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...

Liens sociaux

Règles de messages

  • Vous ne pouvez pas créer de nouvelles discussions
  • Vous ne pouvez pas envoyer des réponses
  • Vous ne pouvez pas envoyer des pièces jointes
  • Vous ne pouvez pas modifier vos messages
  •