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] Copie de source PHP d'un serveur vers un autre


Sujet :

Langage PHP

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre confirmé
    Inscrit en
    Novembre 2006
    Messages
    157
    Détails du profil
    Informations forums :
    Inscription : Novembre 2006
    Messages : 157
    Par défaut [FTP] Copie de source PHP d'un serveur vers un autre
    Bonjour,

    Je dispose d'un mini-portail PHP personnel que j'ai distribué sur plusieurs
    serveurs. Dans le but de faciliter les mises à jour, j'ai décidé d'écrire un petit script qui va chercher les nouvelles versions des sources sur un serveur précis : ce petit script sera alors distribué avec chaque portail.

    Mon soucis est le suivant : je parviens à télécharger toutes sortes de fichiers depuis le serveur de mises à jour sans aucun problème (images, javascript, etc.), mais lorsqu'il s'agit de mes fichiers sources PHP de portail ca ne fonctionne pas. Les fichiers obtenus sont vides ou partiellement incomplets.
    Je me dois de préciser que ces fichiers PHP font des echo ou bien disposent de headers pour le téléchargement de fichiers.

    Voici donc comment je procède :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
     
                          $source = $site_web.$le_fichier;
                          $destination = $le_fichier;
                          $data = file_get_contents($source);
                          $file = fopen($destination, "w+");
                          fputs($file, $data);
                          fclose($file);
    Je pense donc que le contenu du fichier PHP téléchargé est lu et pose soucis lors de l'écriture.

    Auriez-vous une idée de la solution ?
    Merci :-)

  2. #2
    Membre confirmé
    Inscrit en
    Novembre 2006
    Messages
    157
    Détails du profil
    Informations forums :
    Inscription : Novembre 2006
    Messages : 157
    Par défaut
    Je me suis apercus que lorsque mon serveur A essaie d'obtenir un fichier PHP de mon server B, alors seule la partie "visible" du code est transférée.

    En c'est comme si le fichier source était exécuté sur le server B,et que le résultat de l'exécution était transmise au server A plutôt qu'à un navigateur client. Donc tout ce qui est ECHO est transmis, mais pas le reste de la source.

    Le code suivant conduit au même résultat que le code précédant :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
     
            $file = fopen ($site_web.$le_fichier, "rb");
            $fc = fopen($le_fichier, "wb");
            while (!feof ($file)) 
            {
                $line = fread ($file, 1028);
                fwrite($fc,$line);
            }
            fclose($fc);
    N'y ya-t-il pas moyen de simplement télécharger le fichier source, sans l'exécuter/interpréter le code ?

  3. #3
    Membre émérite
    Inscrit en
    Mai 2002
    Messages
    673
    Détails du profil
    Informations forums :
    Inscription : Mai 2002
    Messages : 673
    Par défaut
    Tu ne pourras jamais récupérer le code source en "consultant" les fichiers que le serveur Apache doit interpréter, c'est avant tout une question de sécurité (sinon, n'importe qui pourrait récupérer le code source).

    Il faut nécessairement prévoir une procédure au niveau serveur, soit passer par un transfert de fichier (FTP).

    Une solution serait de faire sur le serveur principale une page qui lise le contenu des fichiers que tu veux récupérer, et qui te les sorte dans un fichier texte en passant via

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
     
    header('Content-type: texte/txt');
    readfile('url_de_ton_fichier');
    inutile de préciser qu'en faisant ça, il est nécessaires de protéger l'accès à ce fichier (htaccess, ou mot de passe a joindre a l'URL).

    Mais si tu as de forte contrainte de sécurité, utilises FTP et de préférence en SSL.

  4. #4
    Membre confirmé
    Profil pro
    Inscrit en
    Août 2007
    Messages
    51
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Août 2007
    Messages : 51
    Par défaut
    Est ce que sur ton serveur tu as les droits pour creer des scripts shells et mettre un script en cron?

  5. #5
    Membre confirmé
    Inscrit en
    Novembre 2006
    Messages
    157
    Détails du profil
    Informations forums :
    Inscription : Novembre 2006
    Messages : 157
    Par défaut
    A vrai dire je veux pouvoir distribuer mon petit portail sur tous les serveurs PHP 3 et supérieurs, sans BDD ni aucun support complémentaire que la librairire de gestion d'images BD pour PHP. Donc je ne souhaite pas passer par du shell et du cron, d'une part parce que je ne les maitrise pas, et d'autre part parce que ca ne semble pas être disponible sur la majorité des serveurs

    Par exemple moi je suis sur des serveurs Free en ce moment.

    Ta solution Gloubi m'intéresse fortement, je vais creuser ca, merci :-)

  6. #6
    Membre confirmé
    Inscrit en
    Novembre 2006
    Messages
    157
    Détails du profil
    Informations forums :
    Inscription : Novembre 2006
    Messages : 157
    Par défaut
    Ma foi la solution du header()/readfile() fonctionne correctement avec mon navigateur : ca propose de télécharger le fichier, et le fichier téléchargé est complet.

    Toutefois, lorsque j'essaie d'obtenir le contenu avec mon script PHP client, rien ne semble être transmis.

Discussions similaires

  1. Transfert de bases d'un serveur vers un autre
    Par rsaintjoanis dans le forum Administration
    Réponses: 3
    Dernier message: 24/08/2006, 13h30
  2. Réponses: 4
    Dernier message: 19/12/2005, 11h31
  3. Réponses: 5
    Dernier message: 08/07/2005, 13h10
  4. [VB.NET] Copie d'une table d'une DB vers une autre
    Par SergeF dans le forum Windows Forms
    Réponses: 9
    Dernier message: 20/11/2004, 09h54
  5. Transfert d'un CUBE OLAP d'un serveur vers un autre
    Par DAN#1 dans le forum MS SQL Server
    Réponses: 2
    Dernier message: 05/12/2003, 10h44

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