Pages : 1
#1 Le 19/11/2008, à 16:11
- mandra
Fonction exec
Bonjour,
Je souhaiterais lançer un fichier contenant des commandes Linux en passant par liens Hypertextes.
Je souhaites pour celà utiliser la fonction exec de php mais celle-ci ne me renvoi aucun affichage a l'écran, ni erreur, ni résultat.
Fichier à éxécuter :
sudo mkdir //var/www/test
Fichier PHP :
<a href="<?php exec('test.sh'); ?>">Click me</a>
J'ai dejâ vérifié dans mon PHP.ini les fonctions désactivées, celle-ci n'en fait pas partie et mon safe_mode est bien sur OFF.
Voilà, je suis un peu paumé avec cette fonction.
Merci de votre attention.
A+
#2 Le 19/11/2008, à 16:28
- Link31
Re : Fonction exec
sudo va te demander un mot de passe... comment espères-tu l'entrer ?
Il suffit de t'assurer que l'utilisateur sous l'identité duquel tourne PHP a le droit de créer un dossier dans /var/www, et d'utiliser mkdir() directement depuis PHP.
Hors ligne
#3 Le 19/11/2008, à 16:32
- mandra
Re : Fonction exec
Donc cela devrait fonctionner ?
<a href="<?php exec('mkdir //var/www/test'); ?>">Click me</a>
Mais cela ne change rien donc comment m'assurer que l'utilisateur sous lequel tourne PHP à bien les droit néscéssaires ? Dans quel fichiers je peut modifier cela ?
Merci de ta réponse.
A+
#4 Le 19/11/2008, à 16:48
- Link31
Re : Fonction exec
Non, ça ne marchera pas. Le PHP ne s'utilise pas comme ça.
Exemple de ce qu'il faut faire :
test.html
<a href="test.php">Click me</a>
test.php
<?php echo mkdir("/var/www/test") ? "Opération effectuée avec succès" : "Échec de l'opération"; ?>
Pour les permissions, regarde avec ps aux sous quel utilisateur tourne PHP, puis :
sudo chown nom_de_l'utilisateur /var/www
Dernière modification par Link31 (Le 19/11/2008, à 16:48)
Hors ligne
#5 Le 19/11/2008, à 16:50
- Seren
Re : Fonction exec
De tête, il me semble que PHP est lancé par l'utilisateur www qui appartient au groupe www.
En faisant un chown www:www, ça fonctionne je crois.
(Par contre c'est peut être un peu dangereux que cet utilisateur puisse accéder à ce répertoire, si c'est mal codé potentiellement depuis le site web on peut t'efface le-dit site...Il vaut mieux restreindre à un sous répertoire genre /var/www/log ou /var/www/tmp...)
Dernière modification par Seren (Le 19/11/2008, à 16:52)
"I am not young enough to know everything". Oscar Wilde
Hors ligne
#6 Le 19/11/2008, à 16:54
- mandra
Re : Fonction exec
Le soucis c'est que le mkdir était là pour simplifier mon problème à vos yeux.
Car au final je souhaite lançer une commande samba (smbmount).
D'ou le fait que je cherche à utiliser la commande exec et non des fonction intégrée à php. A moin bien sur qu'une fonction de php permet d'utiliser directement la fonction smbmount mais j'en doute.
Merci encore
Pages : 1