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

Linux Discussion :

script shell + php


Sujet :

Linux

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre confirmé
    Inscrit en
    Janvier 2011
    Messages
    179
    Détails du profil
    Informations forums :
    Inscription : Janvier 2011
    Messages : 179
    Par défaut script shell + php
    Salut !

    j'ai pu lire pas mal de trucs et j'ai fait un tour sur google sans arriver à me débug n'étant pas un fondu du développement.

    Mon problème est simple : je dois pouvoir exécuter un script shell depuis une page PHP, sauf que c'est là où le drame se passe.

    je me tape ça comme retour d'erreur :
    sudo: no tty present and no askpass program specified
    j'ai pourtant attribuer les droits qu'il fallait à mon script (www-data au script vu que c'est le www-data qui gère apache2, et je suis sous squeeze)

    j'ai modifié le fichier /etc/sudoers en rajoutant cette ligne :

    www-data ALL=(tetz) NOPASSWD:/scripts/execscripts.sh
    les droits après :

    chown -cvR tetz:www-data /scripts/
    chmod -cvR 750 /scripts/

    ma ligne de code pour tester la fonction qui permet d'exécuter le shell depuis le php :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    <?PHP passthru ('/usr/bin/sudo -H -u tetz /scripts/execscript.sh'.' 1 '.pwetlol.' '.pwetlol, $error); ?>
    et donc je me retrouve avec l'erreur citée plus haut

    bref, je tourne en rond, merci à vous pour votre aide

  2. #2
    Invité
    Invité(e)
    Par défaut
    Salut,

    Que fait ton script exactement?

  3. #3
    Membre confirmé
    Inscrit en
    Janvier 2011
    Messages
    179
    Détails du profil
    Informations forums :
    Inscription : Janvier 2011
    Messages : 179
    Par défaut
    il s'occupe d'envoyer les paramètres récupérer sur un autre serveur (paramètres = login/password) qui va créer un compte ftp, un vhost et une base de données.

    Si on lance le script de base à la main avec le login/password, tout marche normalement, tout est bien envoyé et tout se fait, le problème vient dès qu'on s'amuse à essayer de le faire via le php

  4. #4
    Invité
    Invité(e)
    Par défaut
    Il les récupère en ssh?

    Il serait préférable de fournir ton script pour avoir une vision plus claire

  5. #5
    Membre confirmé
    Inscrit en
    Janvier 2011
    Messages
    179
    Détails du profil
    Informations forums :
    Inscription : Janvier 2011
    Messages : 179
    Par défaut
    #!/bin/bash

    #on redirige les flux
    2>&1 >> /var/log/scripts.log

    #on recupere tous les parametres
    script=$1
    user=$2
    pass=$3

    echo '##############################'>>/var/log/scripts.log
    echo `date +%R` >>/var/log/scripts.log
    echo "ouverture du script" >>/var/log/scripts.log
    echo $1 >>/var/log/scripts.log
    echo $2 >>/var/log/scripts.log
    echo $3 >>/var/log/scripts.log
    echo '##############################'>>/var/log/scripts.log


    #On se connecte en SSH au serveur afin de pouvoir executer le script
    case $script in
    "1")
    #ajout espace ftp
    ssh 88.191.139.213 "sh /scripts/ajout_user_ftp.sh $user $pass"
    exit
    ;;

    "2") #ajout du vhost et du folder web
    ssh 88.191.139.213 "sh /scripts/ajout_virtual_host_et_folder_web.sh $user"
    exit
    ;;
    "3")
    #ajout bdd
    ssh 88.191.139.213 "sh /scripts/creation_bdd_user.sh $user $pass"
    exit
    ;;
    "4")
    #ajout stats
    ssh 88.191.139.213 "sh /scripts/installation_stats_users.sh $user $pass"
    exit
    ;;
    "5")
    #ajout dns user
    ssh -p 2222 82.232.222.130 "sh /scripts/ajout_sous_domaine_user_dns.sh $user"
    exit
    ;;
    esac



    et donc les parametres sont recupérés via cette ligne dans le php :

    <?PHP passthru ('/usr/bin/sudo -H -u tetz /scripts/execscript.sh'.' 1 '.$uid.' '.$passwd, $error); ?>

  6. #6
    Membre confirmé
    Inscrit en
    Janvier 2011
    Messages
    179
    Détails du profil
    Informations forums :
    Inscription : Janvier 2011
    Messages : 179
    Par défaut
    voilà j'ai édit, c'est un peu plus propre !

Discussions similaires

  1. Exécuter un script shell depuis php
    Par allyass dans le forum Linux
    Réponses: 5
    Dernier message: 12/12/2009, 01h14
  2. Réponses: 1
    Dernier message: 15/02/2009, 07h45
  3. [Système] Exécution d'un script SHELL avec PHP
    Par diabli73 dans le forum Langage
    Réponses: 5
    Dernier message: 02/10/2008, 15h07
  4. Réponses: 10
    Dernier message: 15/07/2008, 11h52
  5. Envoi d'une variable en shell script sur php
    Par Ponchi dans le forum Langage
    Réponses: 3
    Dernier message: 07/02/2006, 13h54

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