shell_exec

Petit nouveau ! | 2 Messages

25 avr. 2012, 12:10

Bonjour à tous,

Je voudrais, depuis ma page web en php, redémarrer un service sur mon serveur Web apache.
Par exemple pouvoir faire: sudo /etc/init.d/openvpn stop, depuis ma page web.

-Dans mon fichier index.php: j'ai mis

Code : Tout sélectionner

<html> <head><title>Exemple</title></head> <body> <a href="ls.php">Le contenu du répertoire</a> <a href="restartvpn.php">Redémarrer le VPN</a> </body> </html>
dans le fichier ls.php:

Code : Tout sélectionner

<?php $output = shell_exec('ls -lart'); echo "<pre>$output</pre>"; ?>
Et dans le fichier restartvpn.php:

Code : Tout sélectionner

<?php $output = shell_exec('sudo /etc/init.d/tomcat6 stop'); echo "<pre>$output</pre>"; ?>
Quand je clique sur Le contenu du répertoire, je vois bien tout ce qui est dans le répertoire.
Par contre, quand je clique sur Redémarrer le VPN, rien ne passe juste une page blanche qui s'affiche.

Dans /etc/sudoers, j'ai ajouté la ligne suivante:

Code : Tout sélectionner

apache ALL=(root) NOPASSWD:/etc/init.d/tomcat6
Et les fichiers appartiennent au user apache:

Code : Tout sélectionner

-rw-r--r--. 1 apache apache 72 Apr 25 10:52 ls.php -rw-r--r--. 1 apache apache 169 Apr 25 10:54 index.php -rw-r--r--. 1 apache apache 94 Apr 25 11:43 restartvpn.php
Le problème est que sa marche pas.
Est ce que quelqu'un aurait une idée??

Merci d'avance.

ViPHP
ViPHP | 2577 Messages

25 avr. 2012, 14:44

Essayes de rediriger les erreurs dans la sortie standard : "2>&1" en fin de commande (je ne suis pas un pro unix)
Ou redirige dans un fichier sur disque.

Petit nouveau ! | 2 Messages

25 avr. 2012, 16:09

J'ai essayé et maintenant quand je clique sur Remarrer le VPN, j'ai l'erreur suivante:

Code : Tout sélectionner

sudo: unable to open audit system: Permission denied
Des idées?