Forum Programmation.php PHP et les commandes LINUX

Posté par  .
Étiquettes : aucune
0
18
juil.
2006
Bonjour,
Je voudrait savoir comment executer des commandes linux sur un serveur depuis une page php (par exmple quand j'appuit sur un bouton collecte de ma page j'execute une commande comme : /root/java -jar collecte.jar sur mon serveur...). On faisant une petite recherche sur le net j'ai trouver que les commande de base comme redemarrer le serveur , afficher la memoire disponible libre ...
Pouvez-vous m'aider a trouver une documentation detailler pour executer des commandes depuis une page php.
J'espere que je me suis bien expliquer et merci pour votre aide.
  • # PHP et les commandes (LINUX,WIN,...)

    Posté par  . Évalué à 2.

    la commande de base est exec();

    il faut l'utiliser sous la forme

    exec("ls -l",$resilt);

    ou

    $commande="ls -l";
    exec($commande,$result);

    ton flux de retour ($result) est un tableau ...

    foreach ($result as $row)
    {
    [...]
    }
    !!! : ca ne marche que sur le serveur d'appli ou tourne php
    ...

    @+

    http://maconlinux.net/php-online-manual/fr/function.exec.htm(...)
    • [^] # /!\ configuration du serveur

      Posté par  . Évalué à 3.

      Tu ferais bien de jeter un coup d'œil à la configuration du mod_php d'Apache avant de te lancer, parce que s'il est configuré avec l'option safe_mode ( http://us2.php.net/features.safe-mode ) ce type de fonction est désactivée.
      • [^] # Re: /!\ configuration du serveur

        Posté par  . Évalué à 1.

        Bonjour j'ai essayer la commande exec j'ai eu l'erreur suivante :
        Voici la commande :
        $lan = "screen -a java -jar heykel.jar";
        exec($lan);
        L'erreur :
        Must be connected to a terminal.
        Y a t il une autre commande qui detourne cette ??
        Merci pour votre aide
        • [^] # Re: /!\ configuration du serveur

          Posté par  . Évalué à 2.

          screen doit avoir une option pour ne pas avoir besoin de terminal.

          Sinon je ne pense pas que screen soit obligatoire pour lancer une commande, même pour la lancer en arrière plan.
      • [^] # Re:PHP et les commandes LINUX

        Posté par  . Évalué à 1.

        Bonjour j'ai essayer la commande exec j'ai eu l'erreur suivante :
        Voici la commande :
        $lan = "screen -a java -jar heykel.jar";
        exec($lan);
        L'erreur :
        Must be connected to a terminal.
        Y a t il une autre commande qui detourne cette ??
        Merci pour votre aide
        • [^] # Re: Re:PHP et les commandes LINUX

          Posté par  . Évalué à 1.

          Attention, si tu veux lancer une commande en arrière-plan qui survive au process qui l'a lancé, il faut utiliser nohup plutôt que screen quand tu n'es pas sur un terminal interactif:

          exec("nohup /ma/commande et mes arguments &");

  • # hum

    Posté par  . Évalué à 1.

    ça m'étonnerais que l'utilisateur qui exécute apache
    ait le droit de ne serait ce que lire les fichiers se trouvant
    dans le dossier /root...
  • # Documentation detaillée pour executer des commandes depuis une page php

    Posté par  . Évalué à 2.

    Il y a toutes les fonctions pour exécuter des commandes sur cette page: http://fr2.php.net/exec . De exec pour une commande simple avec la sortie dans un tableau à proc_* pour avoir les pointeurs sur les entrées/sorties/erreurs.

Suivre le flux des commentaires

Note : les commentaires appartiennent à celles et ceux qui les ont postés. Nous n’en sommes pas responsables.