IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

Langage PHP Discussion :

[Système] PHP & exécution d'un commande sur Linux


Sujet :

Langage PHP

  1. #1
    Membre à l'essai
    Inscrit en
    Octobre 2005
    Messages
    32
    Détails du profil
    Informations forums :
    Inscription : Octobre 2005
    Messages : 32
    Points : 14
    Points
    14
    Par défaut [Système] PHP & exécution d'un commande sur Linux
    Bonjour,

    J'ai réalisé un script php et à la fin de celui ci j'aimerais reloader mon application qui tourne sur linux pour qu'elle prenne en considérarion les nouveaux paramètres.

    La commande pour faire ceci est:J'ai essayer en mettant dans mon script php:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
     system("asterisk -rx \"reload\"");
    ou
     exec("asterisk -rx \"reload\"");
    mais ça ne fonctionne pas...

    Par contre si je fait un simple ls:
    ça m'affiche ce que contient mon répertoire.

    Est ce que quelqu'un pourrait m'aider..

    Merci beaucoup

  2. #2
    Expert confirmé
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Décembre 2003
    Messages
    3 549
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Essonne (Île de France)

    Informations professionnelles :
    Activité : Ingénieur développement logiciels

    Informations forums :
    Inscription : Décembre 2003
    Messages : 3 549
    Points : 4 625
    Points
    4 625
    Par défaut
    mais ça ne fonctionne pas...
    C'est-à-dire ?

  3. #3
    Expert confirmé
    Avatar de siddh
    Inscrit en
    Novembre 2005
    Messages
    3 868
    Détails du profil
    Informations personnelles :
    Âge : 48

    Informations forums :
    Inscription : Novembre 2005
    Messages : 3 868
    Points : 5 011
    Points
    5 011
    Par défaut
    ca serais pas un probleme de path ?

  4. #4
    Expert éminent
    Avatar de Michaël
    Profil pro
    Ingénieur systèmes et réseaux
    Inscrit en
    Juillet 2003
    Messages
    3 497
    Détails du profil
    Informations personnelles :
    Âge : 37
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Ingénieur systèmes et réseaux

    Informations forums :
    Inscription : Juillet 2003
    Messages : 3 497
    Points : 8 239
    Points
    8 239
    Par défaut
    salut,
    tu as essayé
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    system('asterisk -rx "reload"');
    peut-être que cette appli demande des accès root que php n'a pas ?

  5. #5
    Expert confirmé
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Décembre 2003
    Messages
    3 549
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Essonne (Île de France)

    Informations professionnelles :
    Activité : Ingénieur développement logiciels

    Informations forums :
    Inscription : Décembre 2003
    Messages : 3 549
    Points : 4 625
    Points
    4 625
    Par défaut
    Utilise proc_open comme ça tu pourrais voir le stderr.

  6. #6
    Membre à l'essai
    Inscrit en
    Octobre 2005
    Messages
    32
    Détails du profil
    Informations forums :
    Inscription : Octobre 2005
    Messages : 32
    Points : 14
    Points
    14
    Par défaut
    Citation:
    mais ça ne fonctionne pas...

    C'est-à-dire ?
    Je veux dire par le faite que ça ne fonctionne pas que sur l'écran je vois que mon application n'est pas reloader.

    salut,
    tu as essayé
    Code:
    system('asterisk -rx "reload"');
    peut-être que cette appli demande des accès root que php n'a pas ?
    J'ai essayé cette commande mais ça ne fonctionne toujours pas, je suis en root.

    Je ne pense pas que c'est un problème de path vu que dans le répertoire ou est le fichier php si je tape la commande pour reloader mon appli ça fonctionne.

    Comment je dois utiliser cette commande proc_open?

    Merci beaucoup pour votre aide!

  7. #7
    Expert éminent
    Avatar de Michaël
    Profil pro
    Ingénieur systèmes et réseaux
    Inscrit en
    Juillet 2003
    Messages
    3 497
    Détails du profil
    Informations personnelles :
    Âge : 37
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Ingénieur systèmes et réseaux

    Informations forums :
    Inscription : Juillet 2003
    Messages : 3 497
    Points : 8 239
    Points
    8 239
    Par défaut
    Citation Envoyé par carlos20
    J'ai essayé cette commande mais ça ne fonctionne toujours pas, je suis en root.
    tu as donné les droits root à php avec la fonction system activée t'as pas peur !
    Citation Envoyé par carlos20
    Je ne pense pas que c'est un problème de path vu que dans le répertoire ou est le fichier php si je tape la commande pour reloader mon appli ça fonctionne.
    le chroot pour apache, tu connais ? tu es peut être dans ce cas

    Citation Envoyé par carlos20
    Comment je dois utiliser cette commande proc_open?
    comme ça

  8. #8
    Membre à l'essai
    Inscrit en
    Octobre 2005
    Messages
    32
    Détails du profil
    Informations forums :
    Inscription : Octobre 2005
    Messages : 32
    Points : 14
    Points
    14
    Par défaut
    désolé mais je suis novice en php...

    Non je n'ai pas donnée de droit quel qu'il soit à php... mais je pensais qu'en étant en mode root php avait les même droit

    Je ne comprend pas j'ai essayé ce script là:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    <?php
      error_reporting(E_ALL);
     
    /* Ajoute une redirection pour que vous puissiez lire stderr */
      $handle = popen('ls', 'r');
      echo "'$handle'; " . gettype($handle) . "\n";
      $read = fread($handle, 2096);
      echo $read;
      pclose($handle);
    ?>
    et j'obtient le contenu de mon répertoire:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    'Resource id #2'; resource Ajout.html IW_index.html Resetpin.html Supprimer.html ajout.php images.jpg images2.jpg supprimer.php testexec.php verifreset.php
    et avec ce script là:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
     
    <?php
      error_reporting(E_ALL);
     
    /* Ajoute une redirection pour que vous puissiez lire stderr */
      $handle = popen('asterisk -rx "reload"', 'r');
      echo "'$handle'; " . gettype($handle) . "\n";
      $read = fread($handle, 2096);
      echo $read;
      pclose($handle);
    ?>
    ça donne rien:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    'Resource id #2'; resource
    Il n'y a pas quelqu'un qui a un exemple de code pour lancer une commande sur linux depuis un script php...

    Merci d'avance

  9. #9
    FFF
    FFF est déconnecté
    Membre actif Avatar de FFF
    Profil pro
    Inscrit en
    Mai 2002
    Messages
    342
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mai 2002
    Messages : 342
    Points : 282
    Points
    282
    Par défaut
    ce ne serait pas un problèmre de simple et double quote essaie :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    <?php
    // Affiche le nom d'utilisateur qui fait tourner le processus php/http
    // (sur un système ayant "whoami" dans le chemin d'exécutables)
    echo exec('whoami');
    ?>
    Sinon regarde si la config de ton php.ini n'empêche pas d'executer une telle fonction.

    essaie sinon de passer par une script shell <=> .bat de windows. et essaie :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    <?
    exec('monbat.bat',$tab);
    ?>

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. commande sur linux
    Par meriemeriem dans le forum Linux
    Réponses: 4
    Dernier message: 15/03/2010, 13h32
  2. exécuter script/bach/commande sur machine distante
    Par bossun dans le forum VBScript
    Réponses: 1
    Dernier message: 20/01/2009, 18h24
  3. [Système] PHP et exécution de mysqldump
    Par Protecteur59 dans le forum Langage
    Réponses: 3
    Dernier message: 20/08/2007, 22h33
  4. [Système] erreur d'exécution d'une commande
    Par kenny49 dans le forum Langage
    Réponses: 1
    Dernier message: 13/04/2007, 15h02
  5. Réponses: 6
    Dernier message: 09/11/2005, 17h29

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo