#1 Le 01/11/2006, à 00: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?
Merci.
Dernière modification par gruzlor (Le 01/11/2006, à 00:26)
Hors ligne
#2 Le 01/11/2006, à 00: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, à 10: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, à 10:43)
Hors ligne
#4 Le 01/11/2006, à 21: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, à 10: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, à 22: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, à 09:37
- gruzlor
Re : Problème pour lancer un script bash depuis une page PHP
Ok... merci pour le coup de main
Hors ligne