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

Unix Discussion :

executer une commande system linux en php


Sujet :

Unix

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre régulier
    Femme Profil pro
    Étudiant
    Inscrit en
    Février 2013
    Messages
    9
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Localisation : Sénégal

    Informations professionnelles :
    Activité : Étudiant
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Février 2013
    Messages : 9
    Par défaut executer une commande system linux en php
    Bonjour à tous,

    J'aimerais exécuter une commande linux sous php. J'ai essayé avec shell_exec et exec aussi mais ça ne passe pas.

    Voici la commande :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    <?php
    shell_exec('asterisk -rx "gsm send ussd 3 *222#" >> solde.txt');
    ?>
    Merci de m'aider

  2. #2
    Expert confirmé Avatar de Flodelarab
    Homme Profil pro
    Inscrit en
    Septembre 2005
    Messages
    5 295
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Charente (Poitou Charente)

    Informations forums :
    Inscription : Septembre 2005
    Messages : 5 295
    Par défaut
    Bonjour

    Question bête: Es-tu sûr que ton serveur est un serveur linux et non un serveur windows ?

    Sinon, comment sais-tu que la commande ne fonctionne pas ?

  3. #3
    Membre régulier
    Femme Profil pro
    Étudiant
    Inscrit en
    Février 2013
    Messages
    9
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Localisation : Sénégal

    Informations professionnelles :
    Activité : Étudiant
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Février 2013
    Messages : 9
    Par défaut
    Bah j'ai executé le script via la page web, après execution le script devrait me créér le fichier solde.txt y compris le resultat de la commande asterisk -rx .....

    J'ai un system linux Centos 6

  4. #4
    Expert confirmé Avatar de Flodelarab
    Homme Profil pro
    Inscrit en
    Septembre 2005
    Messages
    5 295
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Charente (Poitou Charente)

    Informations forums :
    Inscription : Septembre 2005
    Messages : 5 295
    Par défaut
    Et 'pwd' renvoie le dossier dans lequel tu cherches le fichier ?

    Si le serveur php est en safe-mode, pas d'exécution de shell.

  5. #5
    Membre régulier
    Femme Profil pro
    Étudiant
    Inscrit en
    Février 2013
    Messages
    9
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Localisation : Sénégal

    Informations professionnelles :
    Activité : Étudiant
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Février 2013
    Messages : 9
    Par défaut
    Je ne cherche pas de fichier au fait, j'essaie d'executer la premier instruction asterisk -rx "gsm send ussd *222#" dont j'aimerais que le resultat soit renvoyé dans un fichier solde.txt. La commande shell_exec s'excute je crois car le fichier est créé mais le probleme est qu'il n'ya rien dedans.

  6. #6
    Expert confirmé Avatar de Flodelarab
    Homme Profil pro
    Inscrit en
    Septembre 2005
    Messages
    5 295
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Charente (Poitou Charente)

    Informations forums :
    Inscription : Septembre 2005
    Messages : 5 295
    Par défaut
    Les applications, quelles qu'elles soient, ont différents canaux pour communiquer.
    0 est l'entrée standard.
    1 est la sortie standard.
    2 est la sortie d'erreur.
    3 et + sont des canaux libres d'utilisation.

    Lorsque tu écris ">>fichier" tu sous-entends "1>>fichier".
    Mais si ton application renvoie des messages d'erreur, elle le fait sur le canal 2.

    Donc, 2 solutions pour avoir des messages:
    • En utilisant "2>>" pour rediriger le canal d'erreur.
      Code : Sélectionner tout - Visualiser dans une fenêtre à part
      1
      2
      3
      4
      5
      6
      7
      8
      $ ls prout
      ls: impossible d'accéder à prout: Aucun fichier ou dossier de ce type
      $ ls prout >>/dev/null
      ls: impossible d'accéder à prout: Aucun fichier ou dossier de ce type
      $ ls prout 1>>/dev/null
      ls: impossible d'accéder à prout: Aucun fichier ou dossier de ce type
      $ ls prout 2>>/dev/null
      $
    • En redirigeant le canal d'erreur dans la sortie standard, auquel cas, les messages d'erreur et de sortie seront mélangés.
      Code : Sélectionner tout - Visualiser dans une fenêtre à part
      1
      2
      $ ls >/dev/null 2>&1 
      $
      Attention, l'ordre est important! >/dev/null 2>&1 n'est pas équivalent à 2>&1 >/dev/null


    Sinon, en récupérant le code par la fonction exec() plutôt que shell_exec(), tu peux savoir ce qui s'est mal passé.

Discussions similaires

  1. Linux executer une commande avec php
    Par xunil2003 dans le forum Langage
    Réponses: 6
    Dernier message: 14/04/2012, 10h05
  2. Executer une commande sur un serveur linux à partir de php
    Par lanjolanjo dans le forum EDI, CMS, Outils, Scripts et API
    Réponses: 2
    Dernier message: 31/07/2009, 10h14
  3. Executer une commande System en silence ?
    Par t0ny95 dans le forum Débuter
    Réponses: 7
    Dernier message: 18/08/2008, 15h44
  4. executer une commande system
    Par warubi dans le forum VB.NET
    Réponses: 1
    Dernier message: 26/05/2007, 22h57
  5. [Debutant(e)][Système]Executer une commande DOS
    Par iceman dans le forum API standards et tierces
    Réponses: 4
    Dernier message: 18/05/2004, 14h30

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