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

Apache Discussion :

Execution d'un script bash en PHP


Sujet :

Apache

  1. #1
    Membre averti
    Homme Profil pro
    Etudiant
    Inscrit en
    Novembre 2014
    Messages
    36
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 29
    Localisation : France, Somme (Picardie)

    Informations professionnelles :
    Activité : Etudiant

    Informations forums :
    Inscription : Novembre 2014
    Messages : 36
    Par défaut Execution d'un script bash en PHP
    Salut.

    Pour terminer mon projet, j'ai besoin d'éxecuter un script de remplacement de fichiers via apache. J'ai donc donner les autorisations d'executions avec visudo et lorsque j'execute le fichier en me connectant à la console en tant qu'apache, ça fonctionne.

    Mais lorsque je veux automatiser avec PHP, ça ne va plus...


    Code PHP : Sélectionner tout - Visualiser dans une fenêtre à part
    $exec = shell_exec('sudo /usr/local/nconf/ADD-ONS/deploy_local.sh');

    Code bash : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    #!/bin/bash
     
    OUTPUT_DIR="/usr/local/nagiosplus/nagioscfg/etc/BonneCfg/"
    NAGIOS_DIR="/usr/local/nagios/etc/"
    TEMP_DIR=${NAGIOS_DIR}"import/"
    CONF_ARCHIVE="NagiosConfig_3_pc.tgz"
    CMDPATH="/usr/local/nagios/var/rw/nagios.cmd"
     
     
    if [ ! -e ${TEMP_DIR} ] ; then
    mkdir -p ${TEMP_DIR}
    fi
     
    if [ ${OUTPUT_DIR}${CONF_ARCHIVE} -nt ${TEMP_DIR}${CONF_ARCHIVE} ] ; then
    sudo cp -p ${OUTPUT_DIR}${CONF_ARCHIVE} ${TEMP_DIR}${CONF_ARCHIVE}
    sudo tar -xf ${TEMP_DIR}${CONF_ARCHIVE} -C ${NAGIOS_DIR}
    sudo rm -rf ${TEMP_DIR}${CONF_ARCHIVE}
     
    fi
     
    exit
    A NOTER : dans visudo, j'ai pris garde à ne pas demander de mots de passe !

    Les droits du script :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    -rwxr-xr-x 1 apache apache 534  2 juin  10:49 /usr/local/nconf/ADD-ONS/deploy_local.sh
    Merçi d'avance.

  2. #2
    Membre averti
    Homme Profil pro
    Etudiant
    Inscrit en
    Novembre 2014
    Messages
    36
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 29
    Localisation : France, Somme (Picardie)

    Informations professionnelles :
    Activité : Etudiant

    Informations forums :
    Inscription : Novembre 2014
    Messages : 36
    Par défaut
    Je suis obligé d'up ce topic puisque j'ai remarqué un truc bizarre.

    Je viens de réussir de passer d'une archive à l'autre, mais ne peux pas repasser à l'ancienne archive. Impossible de comprendre pourquoi.
    Tout ce que je peux dire, c'est que l'archive que je souhaite chargé est plus lourde. Et manuellement, ça fonctionne.

  3. #3
    Membre éprouvé
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Avril 2003
    Messages
    1 309
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Seine Saint Denis (Île de France)

    Informations professionnelles :
    Activité : Ingénieur développement logiciels
    Secteur : Service public

    Informations forums :
    Inscription : Avril 2003
    Messages : 1 309
    Par défaut
    Citation Envoyé par Nicotyrox Voir le message
    Mais lorsque je veux automatiser avec PHP, ça ne va plus...
    Y a-t-il un message d'erreur ? Qu'est-ce qui ne va plus ?

  4. #4
    Membre averti
    Homme Profil pro
    Etudiant
    Inscrit en
    Novembre 2014
    Messages
    36
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 29
    Localisation : France, Somme (Picardie)

    Informations professionnelles :
    Activité : Etudiant

    Informations forums :
    Inscription : Novembre 2014
    Messages : 36
    Par défaut
    Je ne vois pas de message d'erreur excepté celui là :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    sudo: sorry, you must have a tty to run sudo
    Le truc, c'est que sudo marche si je me connecte en tant qu'apache et lance le script

  5. #5
    Membre averti
    Homme Profil pro
    Etudiant
    Inscrit en
    Novembre 2014
    Messages
    36
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 29
    Localisation : France, Somme (Picardie)

    Informations professionnelles :
    Activité : Etudiant

    Informations forums :
    Inscription : Novembre 2014
    Messages : 36
    Par défaut
    Ok, je viens de trouver.

    Sur Red Hat (car je suis sur centos), le fichier sudoers comporte : Defaults requiretty
    Le problème, c'est ça. En le commentant, ça a fonctionné correctement

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

Discussions similaires

  1. Linux executer un script bash avec php
    Par xunil2003 dans le forum Langage
    Réponses: 0
    Dernier message: 01/07/2012, 11h15
  2. execution d'un script bash depuis PHP
    Par eki33 dans le forum Langage
    Réponses: 2
    Dernier message: 18/06/2012, 13h40
  3. execution d'un script shell sous php
    Par cosam dans le forum EDI, CMS, Outils, Scripts et API
    Réponses: 2
    Dernier message: 09/10/2009, 12h57
  4. problème execution d'un script bash
    Par molbento dans le forum Shell et commandes GNU
    Réponses: 1
    Dernier message: 24/08/2009, 16h59
  5. Réponses: 8
    Dernier message: 27/07/2006, 09h40

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