Forum Programmation.shell Problème pour lancer un script bash depuis une page PHP

Posté par  .
Étiquettes : aucune
0
1
nov.
2006
Salut à vous

Je suis sous Dapper et mon objectif est de lancer un transcodage de vidéo via VLC depuis une page PHP. J'utilise la commande exec() mais y'a queqlue chose qui cloche avec les droits.

Voilà mon message d'erreur (affiché dans la page PHP):

VLC media player 0.8.5 Janus
[00000281] dummy interface: using the dummy interface module...
[00000286] access_output_file private error: cannot open `/home/gruzlor/fichierEnc.ogg' (Permission denied)
[00000285] stream_out_standard private error: no suitable sout access module for `file/ogg:///home/gruzlor/fichierEnc.ogg'
[00000284] main stream output error: stream chain failed for `std{access=file,mux=ogg,dst="/home/gruzlor/fichierEnc.ogg"}'
[00000282] main input error: cannot start stream output instance, aborting
[00000291] dummy demuxer: command `quit'
[00000277] main playlist: nothing to play
[00000277] main playlist: stopping playback
[00000001] main vlc error: could not create /var/www/.vlc (Permission denied)
[00000001] main vlc error: could not create /var/www/.vlc/cache (No such file or directory)

J'ai donc copié le répertoire .vlc dans /var/www/, la partie concernée du message d'erreur n'apparaît plus mais il y a toujours un probleme avec access_output_file (Permission...).

Voilà le code (trés simple) de ma page PHP :

<?php
echo "Beginning of transcoding...";
$cmd= "/home/gruzlor/public_html/transcode.sh";
exec("$cmd 2>&1", $output);
foreach($output as $outputline)
{
echo("$outputline");
}
echo " End ";
?>
Et mon script Bash (J'ai essayé de lancer vlc avec et sans sudo):

#!/bin/bash

chemin='/home/gruzlor/'
origfile='fichier.mpg'
encfile='fichierEnc'

for conteneur in ogg asf
do
vlc --intf dummy --plugin-path /home/gruzlor/.vlc/cache $chemin$origfile :sout='#std{access=file,mux='$conteneur',dst="'$chemin$encfile'.'$conteneur'"}' vlc:quit
done
exit 0

Je ne vois pas ce qui roule pas dans cette affaire. Une idée?

Merci.
  • # droit apache ...

    Posté par  . Évalué à 1.

    si tu execute ton script php depuis une page WEB il prend les droits du serveur apache (souvent www-data, à voir dans la conf).

    du coup pour ouvrir des fichiers (pour executer ou remplir) il faut que l'utilisateur www-data ou le groupe correspondant ait les droits sur le dossier (en lecture ou en ecriture selon le besoin)

    par defaut le dossier
    /home/user/toto
    aura les droits 755 soit :
    rwx pour l'utilisateur toto
    r-x pour les gens de son groupe
    r-x pour les gens des autres groupes

    pour un fichier
    R : read/lecteur, W : write/ecriture, X: eXecute
    pour un dossier
    R : read/lecteur, W : write/ecriture, X: traverse

Suivre le flux des commentaires

Note : les commentaires appartiennent à celles et ceux qui les ont postés. Nous n’en sommes pas responsables.