bonjour,

j'ai essayé de faire fonctionner une commande linux en php, avec $m en notification, mais les commande ne s’exécute pas.

je script en question

if (isset($_GET'srv'])) {
    if ($_GET'srv'] == 'start') { 
         if(shell_exec("/etc/init.d/craft4time start")){
            $m'class'] = "success";
            $m'msg'] = "Le serveur a bien été démarré";
        }else{
            $m'class'] = "error";
            $m'msg'] = "Une erreur de communication est survenue";
        }
    } elseif($_GET'srv'] == 'stop') {
         if(shell_exec("/etc/init.d/craft4time stop")){
            $m'class'] = "success";
            $m'msg'] = "Le serveur a bien été stoppé";
        }else{
            $m'class'] = "error";
            $m'msg'] = "Une erreur de communication est survenue";
        }
    }elseif ($_GET'srv'] == 'restart') {
        if(shell_exec("/etc/init.d/craft4time restart")){
            $m'class'] = "success";
            $m'msg'] = "Le serveur a bien été redémarré";
        }else{
            $m'class'] = "error";
            $m'msg'] = "Une erreur de communication est survenue";
        }
    }elseif ($_GET'srv'] == 'info') {
            $m'class'] = "info";
            $m'msg'] = shell_exec("/etc/init.d/craft4time");
    }
}

Merci de votre aide.

17 réponses


Xen0risDEV
Réponse acceptée

Un utilitaire (plugin) pour bukkit pour exécuter des commande

Bonsoir, une erreur remontée?
tu essayes de lancer une commande qui nécéssite les droits root là non ?

le fichier a les doit en root, et non aucune erreur

...JsonAPI à tu pensé à ceci ? :p

non, c'est quoi?

http://dev.bukkit.org/bukkit-plugins/jsonapi/

Ça, n pugin pour ton serveur, en gros tu peux contrôler tout ton serveur Minecraft, et aussi récupérer des infos avec différent langage web et autre, il y a du PHP, JS, et même NodeJS

Ps: à tu essayer les commande exec(); ?
Enlève les Shell_exec et mes exec à la place

oui j'ai essayé la fonction exec()

Hum... Bizard ça ..

Le fichier a les droits en root ?? c'est à dire? quel fichier?

<?php echo shell_exec('whoami'); ?> devrait sans doute t'éclaircir. Poste la sortie.

au pire des cas crée a la racine du disque un dossier 777 test puis fait

shell_exec("/etc/init.d/craft4time start >> /test/log.txt ")

puis vas lire le log

as-tu vérifié si cette commande n'est pas désactiver dans le php.ini.
car elle fait partie des commandes à désactiver sur un serveur pour des raisons de sécurité;
une autre piste serait de vérifier les valeurs de retour à l’exécution de ta commande.

Ca me retourne la commande est c'es tous

pour la sécurité je suis sur un dédié kimsufi

Qu'as retournée whoami ??

sudo oui mais attention .. S'il s'agit d'un problème de droit, il ne faut surtout pas donner à l'utilisateur web les droits root sur ton serveur!! il faut lui donner l'autorisation d''accèder à certaines commandes en tant que root mais uniquement celles la !

http://blogmotion.fr/systeme/executer-un-script-shell-avec-permission-root-en-php-1312