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 04/11/2007, à 18:31

Haplo

PHP : redémarer apache a partir d'une page oueb.

Bonjour.

quelqu'un aurai une idée sur comment pourrai-je m'y prendre pour faire redémarer le serveur apache a partir d'un chargement d'une page php ?



<?php

echo exec('sudo apache2ctl graceful');


?>


le seul problème, c'est le mot de passe... et pour sudo, y a pas d'option genre sudo -p monmotdepasse .

merci wink

Hors ligne

#2 Le 04/11/2007, à 18:40

damunix

Re : PHP : redémarer apache a partir d'une page oueb.

tu peux définir dans le fichier de config de sudo (tu l'ouvre en lancant `visudo`) que tel comamnde ne necessitera pas de mot-de-passe pour un utilisateur en particulier.

cf la documentation sur le web

Hors ligne

#3 Le 04/11/2007, à 18:48

Haplo

Re : PHP : redémarer apache a partir d'une page oueb.

Oui, mais après, tout les utilisateur du serveur pourront faire un reboot de ce dernier... ce que je ne veut pas vraiment non plus ^^.

Il n'y a pas moyen de lui donner le mot de passe ?

Hors ligne

#4 Le 04/11/2007, à 19:20

Zapan

Re : PHP : redémarer apache a partir d'une page oueb.

Ben tu fais une page qui envois le mdp dans un $_POST, je vois pas vraiment le problème hmm

Hors ligne

#5 Le 04/11/2007, à 19:29

Haplo

Re : PHP : redémarer apache a partir d'une page oueb.

Zapan, faudra que tu m'explique la... ^^
le problème est l'envoi du mot de passe pour exécuter la commande...

Quand tu fait cette commande dans un shell, il va te demander qqch du genre entrer le mot de passe sudo.

et c'est a ce moment la que je bloque...

Hors ligne

#6 Le 04/11/2007, à 19:40

Haplo

Re : PHP : redémarer apache a partir d'une page oueb.

bon bon bon.

j'ai fouiller a fond le man, et, l'empirisme est assez accablant : RTFM Haplo.

eh oui, y a un petit truc qui se cache, c'est -p.

donc, la commande a executé, c'est :

sudo -p monpwd apache2ctl graceful

merci wink

Hors ligne

#7 Le 05/11/2007, à 10:05

gillouz

Re : PHP : redémarer apache a partir d'une page oueb.

j'ai le même problème pour redémarrer squid depuis une page web

on m'a conseillé de créer un script appartenant à root qui redémarre le serveur et de lui activer le bit suid pour permettre a www-data de l'executer sans sudo
(bon je n'ai pas encore reussi)

Une autre personne m'a proposé d'utiliser cron pour faire redemarrer le serveur tout les soirs

Hors ligne

#8 Le 06/11/2007, à 22:26

gillouz

Re : PHP : redémarer apache a partir d'une page oueb.

j'ai resolu mon problème avec le bit suid

ATTENTION! ce bit ne marche que avec les programmes compilés

il faut donc écrire un programme en C qui lance la commande désirée ce programme doit appartenir à root et avoir le bit suid activé

#include <stdio.h>

int main(void)
{
system("/etc/apache2 -k restart");
return 0;
}

ce programme doit être compilé avec

$ gcc -o restartapache <nom_du_fichier>

il faut placer "restartapache" là ou sont les pages web de ton site et créer le scripte php

<?php

sytem("./restartapache");

?>

voila voila! ca a marché pour moi.

Hors ligne

#9 Le 08/11/2007, à 00:06

damunix

Re : PHP : redémarer apache a partir d'une page oueb.

mouai, a mon sens ca sert a rien.

Qui plus est tu peux avec sudo sire que TEL utilisateur aura pas besoin de emttre le mdp, du coup ca restrain énormément que d'autres utilisateurs le fasse smile

Hors ligne

#10 Le 08/11/2007, à 22:20

gillouz

Re : PHP : redémarer apache a partir d'une page oueb.

sauf que avec ta méthode l'utilisateur www-data peut faire ce qu'il veut sur le serveur, c'est une faille de sécurité inacceptable. Si tu fait un site pour le mariage d'un copain ce n'est rien mais en entreprise avec des données sensibles c'est trop dangereux... c'est mon avis en tout cas je ne le ferais pas chez moi.

Hors ligne