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 :

php exec -> bash linux fonctionne aléatoirement


Sujet :

Langage PHP

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Futur Membre du Club
    Inscrit en
    Octobre 2006
    Messages
    5
    Détails du profil
    Informations personnelles :
    Âge : 41

    Informations forums :
    Inscription : Octobre 2006
    Messages : 5
    Par défaut php exec -> bash linux fonctionne aléatoirement
    Bonjour à tous,

    je me permets de faire appel à vos lumières car je bloque sur un sujet .
    Voilà enfaite, j'ai développé une plateforme d'échange ftp avec une interface web où les utilisateurs rentrent d'email du destinataire, son email, le fichier à uploader (bien entendu ).

    Une fois tout les champs remplis, l'utilisateur clique sur le bouton upload, et là dans mon code php j'ai une fonction qui génère un login aléatoire ainsi qu'un mot de passe.

    Ensuite j'utilise php (exec) pour appeler mon script (en lui passant les paramètres qui vont bien) sur mon serveur linux.

    Ce script créée un dossier (nom du dossier correspond au login généré aléatoirement), il écrit dans un fichier, envoie le mail (avec postfix), etc ...

    TOUT fonctionne bien sauf que c'est aléatoire ... je m'explique.
    Quelques fois je remplis tout les champs, je clique sur "Upload" ça passe sans problème, et d'autres fois mon script bash n'est pas appelé mais je ne sais pas pourquoi ...

    J'ai fait un echo de mes variables avant de tout envoyer au script j'ai bien toutes mes variables qui sont correctement paramétrées .

    Est ce qu'il y a un moyen d'avoir un log plus fin au niveau php ou au niveau du browser pour voir pourquoi des fois mon script bash n'est pas appelé .. ?

    D'avance merci pour votre aide,

  2. #2
    Membre confirmé
    Homme Profil pro
    Inscrit en
    Février 2012
    Messages
    81
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 46
    Localisation : France, Haute Garonne (Midi Pyrénées)

    Informations professionnelles :
    Secteur : High Tech - Produits et services télécom et Internet

    Informations forums :
    Inscription : Février 2012
    Messages : 81
    Par défaut
    Alors comme ca de base voici ce que je ferais:

    1°) Activation si ce n'est déjà fait du display_errors de PHP au cas ou
    2°) Regarder le fichier général error.log de apache et le error.log du site virtual si tu es en environnement avec un virtualhost

    3°) Regardé enfin le fichier de log général du serveur au cas ou aussi.

    Logiquement tu devrais avoir un message d'erreur quelconque dans un de ces fichiers.

    Bien sur au niveau apache prendre soin de mettre le rapport d'erreur au maximum pour vraiment avoir el log de la moindre brindille dans les rouages.

  3. #3
    Futur Membre du Club
    Inscrit en
    Octobre 2006
    Messages
    5
    Détails du profil
    Informations personnelles :
    Âge : 41

    Informations forums :
    Inscription : Octobre 2006
    Messages : 5
    Par défaut
    Un grand merci pour ta réponse
    Demain je vais faire ce que tu me conseilles je tiendrais informé

  4. #4
    Futur Membre du Club
    Inscrit en
    Octobre 2006
    Messages
    5
    Détails du profil
    Informations personnelles :
    Âge : 41

    Informations forums :
    Inscription : Octobre 2006
    Messages : 5
    Par défaut
    Bon j'ai du nouveau,

    Donc c'est ce que je pensait mon script bash n'est pas appelé ...
    Voici les erreurs que je reçoit

    Notice: Undefined variable: key in /var/www/transfert/upload.php on line 30

    Warning: move_uploaded_file(/home/ftpusers/nkxzytgb/cat-lacoste-ss13.pdf) [function.move-uploaded-file]: failed to open stream: No such file or directory in /var/www/transfert/upload.php on line 66

    Warning: move_uploaded_file() [function.move-uploaded-file]: Unable to move '/tmp/phpusr4yh' to '/home/ftpusers/nkxzytgb/cat-lacoste-ss13.pdf' in /var/www/transfert/upload.php on line 66

    Your file is not correct (verify size / max 100 Mo).
    Normal qu'il n'arrive pas à déplacer le fichier car le dossier où il doit aller écrire n’existe pas

    Chose plus bizarre, si je clique sur le bouton retour au niveau du navigateur et que je "submit" le formulaire une deuxième fois ça passe sans problème

    Quelqu'un a une idée ?
    Merci

  5. #5
    Membre confirmé
    Homme Profil pro
    Inscrit en
    Février 2012
    Messages
    81
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 46
    Localisation : France, Haute Garonne (Midi Pyrénées)

    Informations professionnelles :
    Secteur : High Tech - Produits et services télécom et Internet

    Informations forums :
    Inscription : Février 2012
    Messages : 81
    Par défaut
    Tout simplement un problème de droit je dirais.
    Vérifie bien que l'utilisateur sous lequel le php tourne est bien les droits pour créer le dossier.

    C'est typiquement le problème quand on utilise la fonction move_uploaded_file et des fonctions pour créer des répertoires.

    Moi je te conseille de passer par le module ftp et les fonction php_ftp pour faire ce genre de chose.
    Regarde la doc sur le site:
    http://php.net/manual/fr/book.ftp.php


    Tu peux aussi jeter un œil sur un post récent que j'ai fait qui averti des problème induit par l'utilisation de ce méthode plutôt que de passer par le module ftp:
    http://www.developpez.net/forums/d13...euploadedfile/

  6. #6
    Futur Membre du Club
    Inscrit en
    Octobre 2006
    Messages
    5
    Détails du profil
    Informations personnelles :
    Âge : 41

    Informations forums :
    Inscription : Octobre 2006
    Messages : 5
    Par défaut
    Merci pour votre réponse
    En effet j'ai également pensé à un problème de droit mais pourquoi dans ce cas certaines fois l'upload du fichier fonctionne la première fois, je pense que si j'avais un probléme de droit cela ne fonctionnerai jamais. J'ai configurer mon serveur linux de façon à ce que mon utilisateur www-data puissent éxectuer chmod, passwd, mkdir, etc ....

    As-tu une autre idée ?

    Merci

  7. #7
    Membre confirmé
    Homme Profil pro
    Inscrit en
    Février 2012
    Messages
    81
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 46
    Localisation : France, Haute Garonne (Midi Pyrénées)

    Informations professionnelles :
    Secteur : High Tech - Produits et services télécom et Internet

    Informations forums :
    Inscription : Février 2012
    Messages : 81
    Par défaut
    Attention quand meme au niveau des droits, qu'il puisse exécuter les fonctions est une chose.
    Maintenant qu'il puisse créer le répertoire la ou tu le souhaites en est une autre.

    Après il faudrait savoir pourquoi certaines fois cela marche et pourquoi d'autre nom.
    peut etre que c'est lié a un type de fichier ou a un certain nom de fichier etc...
    bref, il faut savoir pourquoi ca marche.

    Une fois que tu sauras pourquoi ca marche une fois on devrait trouver pourquoi ca ne marche plus après.

    tu devrais mettre dans ton script des sortie écran sur les principale étapes clef surtout au niveau de la création du répertoire et voir si le fonctionnement est bien comme tu le pensais.

Discussions similaires

  1. php exec tar ne fonctionne pas
    Par snyfir dans le forum Linux
    Réponses: 12
    Dernier message: 20/11/2010, 21h38
  2. script php exec sous linux help
    Par pretorien51 dans le forum Apache
    Réponses: 10
    Dernier message: 23/09/2008, 17h39
  3. [PostgreSQL] [PostGreSQL] PHP et PostgreSQL sur Linux
    Par tonymontana4192 dans le forum PHP & Base de données
    Réponses: 4
    Dernier message: 17/11/2006, 21h55
  4. [Compilation Installation] Php avec apache sous linux
    Par c.tranquille dans le forum EDI, CMS, Outils, Scripts et API
    Réponses: 4
    Dernier message: 19/06/2006, 13h46
  5. Réponses: 10
    Dernier message: 02/03/2006, 11h36

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