Contenu | Rechercher | Menus

Annonce

Si vous avez des soucis pour rester connecté, déconnectez-vous puis reconnectez-vous depuis ce lien en cochant la case
Me connecter automatiquement lors de mes prochaines visites.

À propos de l'équipe du forum.

#1 Le 01/11/2006, à 01:08

gruzlor

Problème pour lancer un script bash depuis une page PHP

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...<br />";
$cmd= "/home/gruzlor/public_html/transcode.sh";
exec("$cmd 2>&1", $output);
foreach($output as $outputline)
{
	echo("$outputline<br />");
}
echo " <br /> End <br />";
?>

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? hmm

Merci.

Dernière modification par gruzlor (Le 01/11/2006, à 01:26)

Hors ligne

#2 Le 01/11/2006, à 01:31

murlock

Re : Problème pour lancer un script bash depuis une page PHP

essaye de faire un chmod 777 de ton fichier source et/ou de ton repertoire /home/gruzlor pour vérifier les droits (vu que le script tourne sans doute avec l'utilisateur www-data )


Gloire à mon Saigneur Arioch

Hors ligne

#3 Le 01/11/2006, à 11:21

gruzlor

Re : Problème pour lancer un script bash depuis une page PHP

Merci pour le coup de main.
Finalement ça marche si je crée un fichier vide avant de lancer le transcodage

touch $chemin$encfile'.'$conteneur

, et que je donne les droits 777 sur /home/gruzlor.

Du coup, ça m'embête un peu. Parce que sans être un féru de sécurité, j'imagine que de laisser un répertoire en 777 sur un serveur, c'est pas top... (Au passage, si vous connaissez une distri un peu plus orientée serveur, je suis preneur).

Est-ce vraiment risqué?

Dernière modification par gruzlor (Le 01/11/2006, à 11:43)

Hors ligne

#4 Le 01/11/2006, à 22:59

murlock

Re : Problème pour lancer un script bash depuis une page PHP

Oui c'est risqué...
par contre, tu peux créer un répertoire ailleurs et affiner les droits... (juste droit de lecture / ecriture dans un autre répertoire que le home, attribuer les fichiers  à l'utilisateur www-data, ...)


Gloire à mon Saigneur Arioch

Hors ligne

#5 Le 02/11/2006, à 11:40

gruzlor

Re : Problème pour lancer un script bash depuis une page PHP

Merci pour ta réactivité.
Finalement j'ai déplacé tout mes scripts vers /var/www/. J'ai créé un dossier /var/www/films sur lequel j'ai mis des droits 777 (il me semble que www-data est déjà l'utilisateur attribué). Je pense faire un .htaccess pour limiter l'accès aux vidéos mais je crains qu'on ne puisse effacer le répertoire puisqu'il est maintenant en 777.
Suis-je dans l'erreur?

Hors ligne

#6 Le 02/11/2006, à 23:46

murlock

Re : Problème pour lancer un script bash depuis une page PHP

déjà, tu devrais virer le droit d'execution !!! (et eventuellement protéger tes scripts pour être sûr que les chemins ne puissent pas être modifiés)


Gloire à mon Saigneur Arioch

Hors ligne

#7 Le 03/11/2006, à 10:37

gruzlor

Re : Problème pour lancer un script bash depuis une page PHP

Ok... merci pour le coup de main

Hors ligne