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 23/04/2008, à 16:25

Chekiil

Php, Apache, et droits fonction exec()

Bonjour tous le monde,

C'est la première fois que je poste sur ce forum.
j'ai un script qui lance un film dans VLC et redirige en même temps sur ma page
d'accueil du serveur VLC...
Sous windows , ca ne pose aucune problème:

Soit j'écris la commande complète dans le shell_exec:

shell_exec('C:\SITE_VLC\VLC_serv1\vlc.exe --extraintf http --http-host="127.0.0.1:8080" 
"C:\vids_serv1\La voix des morts.avi":sout=#duplicate{dst=std{access=
udp,mux=ts,dst=127.0.0.1:1234}}');


soit je démarre le fichier bat qui contient la commande ci dessus:

shell_exec("127.0.0.1.bat");   

Les 2 méthodes fonctionnent parfaitement... sous windows...


Sous linux , j'ai un problème, je n'ai pas de message d'erreur, mais rien ne se passe,
certain disent que c'est un problème de droit. L'utilisateur Apache n'aurait pas les
droits d'exécuter des fichiers...

J'essai toute les méthodes :
-exec();
-system();
-shell_exec;


rien n'y fait... même en écrivant directement la commande dans le script.
Le safe mode est sur Off.

Je suis sous ubuntu bien sûr. Je cherche sur de nombreux forum, en vain.

Quelqu'un a une idée?

Merci

#2 Le 23/04/2008, à 18:48

stopher

Re : Php, Apache, et droits fonction exec()

Salut ,
Je te conseil plutôt d'utiliser du cgi pour executer des programmes externes ..

Sinon , à mon avis , oui c'est un problème de droits ..

Ou se trouve ton script dans ton serveur ?
Quels sont les droits actuels ?

Hors ligne

#3 Le 24/04/2008, à 14:12

Chekiil

Re : Php, Apache, et droits fonction exec()

Le cgi peut être une solution, mais avant je vais essayer de définir le user en root dans le fichier conf de apache 2...C'est une faille de sécurité, mais le serveur et le reste de l'application seront en local, alors ce n'est pas très grave.
Sinon je peux essayer le chmod, mais je préfère éviter d'attribuer les droit au dossier bin. J'ai
déjà eu pas mal de problèmes à cause de manipulations de ce genre.
Je vous tient au courant, des fois que aide aussi d'autres personnes...

#4 Le 24/04/2008, à 14:16

Chekiil

Re : Php, Apache, et droits fonction exec()

Excuse moi , je n'ai pas répondu à tes questions. Mon fichier php est dans www/Serv3/Fichier php.
Même si dans le terminal je suis en root, je passe automatiquement en user quand je lance une page sur un serveur apache.

#5 Le 24/04/2008, à 14:19

wblitz

Re : Php, Apache, et droits fonction exec()

Le cgi peut être une solution, mais avant je vais essayer de définir le user en root dans le fichier conf de apache 2...C'est une faille de sécurité, mais le serveur et le reste de l'application seront en local, alors ce n'est pas très grave.

il existe sudo pour une escalade des privilèges pour un utilisateur sur un (ou plusieurs) exécutables particuliers. dans ton cas, après avoir lancé la commande 'sudo visudo', ajoute une ligne comme suit à la fin du fichier ouvert :

www-data    ALL=NOPASSWD:<chemin absolu vers le script en question>*

(pas d'espace entre le chemin vers le script et l'étoile et une tabulation après 'www-data')

n'oublie pas de donner les droits d'exécution au script (chmod +x fera l'affaire) il te restera à appeler ton script, depuis ton code php, comme suit :

<?php
    exec("sudo $script");
?>

"Un optimiste, c'est un homme qui plante deux glands et qui s'achète un hamac" - Jean de Lattre de Tassigny
Pensez à mettre [RÉSOLU] dans le sujet de vos posts une fois qu'ils le sont...
quelques docs

Hors ligne

#6 Le 24/04/2008, à 14:22

stopher

Re : Php, Apache, et droits fonction exec()

l'utilisateur qui vat executer ton script est www-data

Si cet utilisateur n'a pas les droits sur ton script , il ne pourra rien faire ...

pour modifier le propriétaire du script , tu fais :

chown www-data:www-data moscript.pl

A ce moment là www-data pourra executer ton script .

Hors ligne