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 :

[FTP] ftp_exec n'exécute aucune commande


Sujet :

Langage PHP

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Futur Membre du Club
    Profil pro
    Inscrit en
    Juillet 2007
    Messages
    4
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juillet 2007
    Messages : 4
    Par défaut [FTP] ftp_exec n'exécute aucune commande
    Bonjour,

    j'ai un gros pb avec la fonction ftp_exec() que je ne comprends pas du tout.
    En fait, elle ne fonctionne pas. J'ai essayé plein de commandes, même les plus basiques (genre mkdir) et ça ne fait rien mais ça ne renvoie pas d'erreur...

    Voici mon bout de code :
    $command = 'mkdir test';
    if (ftp_exec($conn_id, $command) == TRUE)
    echo "OK";
    else
    echo "erreur";

    Le retour est toujours "OK" mais rien ne s'est passé sur mon serveur FTP...
    Si je fais manuellement les commandes, ça fonctionne.
    Est-ce que quelqu'un aurait une idée?

  2. #2
    Membre averti
    Profil pro
    Étudiant
    Inscrit en
    Avril 2005
    Messages
    19
    Détails du profil
    Informations personnelles :
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Avril 2005
    Messages : 19
    Par défaut
    Vérifie les chmod de dossiers.

    Sur systèmes Unix, il y a un mécanisme de permissions de fichiers. Les différentes permissions sont :
    - lecture (valeur 4)
    - écriture (valeur 2)
    - exécution (valeur 1)
    - et suid dont on ne s'occupe pas ici.

    Les permissions ("CHMOD xxx", s'exprimant par 3 chiffres) sont applicables pour :
    - Vous-même, propriétaire du fichier. (premier chiffre)
    - Le groupe d'utilisateurs auquel vous appartenez (second chiffre)
    - N'importe qui (sous-entendu pour un serveur web : vos visiteurs) (troisième chiffre)

    Un script CGI, doit pouvoir être à la fois lu et exécuté par le serveur pour n'importe qui.
    Lecture + exécution= 4+1=5.
    Le troisième chiffre doit donc être 5, de même que le second (les 2è et 3è chiffres doivent être égaux pour les scripts CGI). Le premier chiffre doit être lecture+écriture+exécution=4+2+1=7, car vous êtes le propriétaire et devez avoir tous les droits sur vos propres fichiers CGI
    Ce qui nous donne pour un script CGI : chmod 755

  3. #3
    Futur Membre du Club
    Profil pro
    Inscrit en
    Juillet 2007
    Messages
    4
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juillet 2007
    Messages : 4
    Par défaut Déjà vérifié
    J'ai pensé que c'était un pb de droits mais je ne sais pas où voir et changer les droits de mon serveur Apache.
    J'ai mis tous les droits (777) au dossier dans lequel je veux écrire mais ça ne change rien.
    Ce qui m'étonne, c'est que la fonction ftp_exec ne renvoie aucune erreur.

    Merci quand même de ton aide.

  4. #4
    Futur Membre du Club
    Profil pro
    Inscrit en
    Juillet 2007
    Messages
    4
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juillet 2007
    Messages : 4
    Par défaut Précisions
    Petites précisions :
    Mon serveur Apache tourne sur Windows (je teste en local sur mon poste). Le serveur FTP est sous Unix.
    En production, a priori, le serveur Apache sera sur Unix.
    J'ai entendu parler des fonctions php ssh2. Fonctionnerait-elle dans mon cas?
    Fonctionne-t'elle aussi sous Unix?

    Merci d'avance de vos réponses.
    Pour l'instant, je ne comprends toujours pas ce qui se passe.

  5. #5
    Membre expérimenté

    Profil pro
    Inscrit en
    Juin 2002
    Messages
    6 152
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2002
    Messages : 6 152
    Par défaut
    De manière générale la fonction ftp_exec n'est pas la meilleure méthode pour exécuter des commandes sur le serveur : elles dépendent entre autres du serveur et de sa configuration. De plus pour créer un répertoire (peut être s'agissait-il d'un simple exemple) vous avez une fonction pour cela : ftp_mkdir.

    Citation Envoyé par mbouquet
    J'ai entendu parler des fonctions php ssh2. Fonctionnerait-elle dans mon cas?
    Fonctionne-t'elle aussi sous Unix?
    Oui bien sûr, le tout est d'avoir un accès SSH sur la machine distante et d'installer cette extension. Il y a quelques posts dans ce même forum (taggé [SSH] ou [SSH2]) pour vous faire une idée et bien évidemment sa documentation : http://fr.php.net/ssh2

  6. #6
    Futur Membre du Club
    Profil pro
    Inscrit en
    Juillet 2007
    Messages
    4
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juillet 2007
    Messages : 4
    Par défaut Exemple
    Merci julp de ta réponse.
    Je connais la fonction ftp_mkdir (qui fonctionne très bien), mais en fait le mkdir n'était qu'un exemple pour dire que j'ai essayé n'importe quelle ligne de commande et que ça ne marche pas avec ftp_exec().
    Mon but est de pouvoir lancer un shell (fichier .sh) avec ftp_exec().

    P.S : Je suis en PHP 4 (pas de possibilité de changer) et j'ai cru lire que la librairie php_ssh2 ne fonctionne que sur PHP5

Discussions similaires

  1. [Run]Exécuter une commande paramétrable
    Par nice dans le forum Eclipse Java
    Réponses: 3
    Dernier message: 31/01/2006, 14h27
  2. exécuter une commande de logiciel
    Par MrsFrizz dans le forum C
    Réponses: 4
    Dernier message: 17/01/2006, 10h48
  3. exécuter une commande système à partir de sqlplus?
    Par c_moi_c_moi dans le forum Oracle
    Réponses: 24
    Dernier message: 08/11/2005, 15h11
  4. Exécuter une commande linux.
    Par casafa dans le forum Linux
    Réponses: 4
    Dernier message: 20/07/2005, 23h13
  5. Réponses: 2
    Dernier message: 02/11/2004, 06h52

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