Exécuter une commande linux en php

Par redkill2108, il y a 12 ans


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

antho07, il y a 12 ans

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

redkill2108, il y a 12 ans

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

Xen0risDEV, il y a 12 ans

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

redkill2108, il y a 12 ans

non, c'est quoi?

Xen0risDEV, il y a 12 ans

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

Nairolf, il y a 12 ans

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

Xen0risDEV, il y a 12 ans

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

redkill2108, il y a 12 ans

oui j'ai essayé la fonction exec()

Xen0risDEV, il y a 12 ans

Hum... Bizard ça ..

antho07, il y a 12 ans

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

antho07, il y a 12 ans

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

antho07, il y a 12 ans

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

iriven, il y a 12 ans

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.

redkill2108, il y a 12 ans

Ca me retourne la commande est c'es tous

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

antho07, il y a 12 ans

Qu'as retournée whoami ??