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 :

Erreur exécution fichier php sur serveur distant


Sujet :

Langage PHP

  1. #1
    Membre à l'essai
    Profil pro
    Inscrit en
    Mars 2007
    Messages
    75
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mars 2007
    Messages : 75
    Points : 22
    Points
    22
    Par défaut Erreur exécution fichier php sur serveur distant
    Je souhaite lancer une commande sur une machine distante qui utilise le serveur php d'une autre machine. Pour cela je lance la commande suivante:
    http:\\adresseip\...\php.exe http\\adresseip\fichier.php, si je met un bête fichier php avec juste phpinfo() cela fonctionne mais ici j'exécute un fichier qui doit surement se connecter à la base de donnée mysql.

    Et j'ai ceci comme message d'erreur:
    Fatal error: Call to undefined function mysql_connect() in \\adresseip\...\adodb-mysql.inc.php

    En local la même commande fonctionne.

    J'ai lu sur d'autres forum que l'erreur apparaissait si cette variable du php.ini était en commentaire:
    extension_dir = "c:/wamp/php/ext/"
    Effectivement si je le met en commentaire j'ai la même erreur en local.

    Je pensais qu'une fois lancé le php après tout était exécuter en local, mais peut être faut il que je mette une variable d'environnement sur la machine distante mais laquelle ?
    Avez vous une idée pour résoudre ce problème, merci ?

  2. #2
    Modérateur
    Avatar de sabotage
    Homme Profil pro
    Inscrit en
    Juillet 2005
    Messages
    29 208
    Détails du profil
    Informations personnelles :
    Sexe : Homme

    Informations forums :
    Inscription : Juillet 2005
    Messages : 29 208
    Points : 44 155
    Points
    44 155
    Par défaut
    Ton script distant est executé par le serveur distant.
    Visiblement sur celui-ci l'extension mysql n'est pas activée.
    N'oubliez pas de consulter les FAQ PHP et les cours et tutoriels PHP

  3. #3
    Membre à l'essai
    Profil pro
    Inscrit en
    Mars 2007
    Messages
    75
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mars 2007
    Messages : 75
    Points : 22
    Points
    22
    Par défaut
    Donc pour résumé j'ai une machine (sans php, sans mysql) et je lance la commande avec ip de l'autre machine sur laquelle se trouve le serveur php et mysql ainsi que les fichiers php.
    Comment activé l'extension mysql sur la première machine, en renseignant une variable d'environnement ou en modifiant une variable dans le php.ini peut être avec l'adresse ip de la deuxième machine et non le chemin relatif ?

  4. #4
    Modérateur
    Avatar de sabotage
    Homme Profil pro
    Inscrit en
    Juillet 2005
    Messages
    29 208
    Détails du profil
    Informations personnelles :
    Sexe : Homme

    Informations forums :
    Inscription : Juillet 2005
    Messages : 29 208
    Points : 44 155
    Points
    44 155
    Par défaut
    Pas sur la première machine mais sur le serveur php.
    Dans le php.ini il faut decommenter ou ajouter l'extenstion php_mysql.
    N'oubliez pas de consulter les FAQ PHP et les cours et tutoriels PHP

  5. #5
    Membre à l'essai
    Profil pro
    Inscrit en
    Mars 2007
    Messages
    75
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mars 2007
    Messages : 75
    Points : 22
    Points
    22
    Par défaut
    J'ai cela dans mon php.ini sans commentaire, est ce l'extension dont vous parler ?
    extension=php_mysql.dll
    extension=php_mysqli.dll

  6. #6
    Modérateur
    Avatar de sabotage
    Homme Profil pro
    Inscrit en
    Juillet 2005
    Messages
    29 208
    Détails du profil
    Informations personnelles :
    Sexe : Homme

    Informations forums :
    Inscription : Juillet 2005
    Messages : 29 208
    Points : 44 155
    Points
    44 155
    Par défaut
    Je n'ai peut etre pas tout suivi.
    Est-ce que la machine hebergeant le fichier .php a un serveur php ?
    N'oubliez pas de consulter les FAQ PHP et les cours et tutoriels PHP

  7. #7
    Membre à l'essai
    Profil pro
    Inscrit en
    Mars 2007
    Messages
    75
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mars 2007
    Messages : 75
    Points : 22
    Points
    22
    Par défaut
    Machine1 pas de serveur php: lancement de la commande avec ip de la machine2, exécution qui fonctionne sauf si accès à mysql.

    Machine2: serveur php/mysql, héberge aussi les fichiers php a exécuter.

    PHP.ini:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    extension=php_mysql.dll
    extension=php_mysqli.dll
    voilà erreur php:
    Fatal error: Call to undefined function mysql_connect() in \\adresseipmachine2\\www\...\adodb\drivers\adodb-mysql.inc.php on line 364

  8. #8
    Modérateur
    Avatar de sabotage
    Homme Profil pro
    Inscrit en
    Juillet 2005
    Messages
    29 208
    Détails du profil
    Informations personnelles :
    Sexe : Homme

    Informations forums :
    Inscription : Juillet 2005
    Messages : 29 208
    Points : 44 155
    Points
    44 155
    Par défaut
    Indique le php.ini :
    http:\\adresseip\...\php.exe -c http:\\adresseip\...\php.ini
    N'oubliez pas de consulter les FAQ PHP et les cours et tutoriels PHP

  9. #9
    Membre à l'essai
    Profil pro
    Inscrit en
    Mars 2007
    Messages
    75
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mars 2007
    Messages : 75
    Points : 22
    Points
    22
    Par défaut
    Si je mets le php.ini il me met la même erreur en local que sur la machine distante ???

  10. #10
    Membre à l'essai
    Profil pro
    Inscrit en
    Mars 2007
    Messages
    75
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mars 2007
    Messages : 75
    Points : 22
    Points
    22
    Par défaut
    A distance j'ai la même erreur, j'ai aussi des warning:
    PHP Startup: Unable to load dynamic librairy: c:/wamp/php/ext/php-mysql.dll et d'autes dll aussi, cela doit venir de là.
    J'ai vérifié la dll est bien présente, je me demande en fait si il ne cherche pas cette dll sur machine1 ou lieu de la 2.

  11. #11
    Modérateur
    Avatar de sabotage
    Homme Profil pro
    Inscrit en
    Juillet 2005
    Messages
    29 208
    Détails du profil
    Informations personnelles :
    Sexe : Homme

    Informations forums :
    Inscription : Juillet 2005
    Messages : 29 208
    Points : 44 155
    Points
    44 155
    Par défaut
    Oui forcemment, aucun chemin n'est bon.

    Pourquoi vouloir utiliser php.exe via http ?
    N'oubliez pas de consulter les FAQ PHP et les cours et tutoriels PHP

  12. #12
    Membre à l'essai
    Profil pro
    Inscrit en
    Mars 2007
    Messages
    75
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mars 2007
    Messages : 75
    Points : 22
    Points
    22
    Par défaut
    Machine1 : serveur svn
    Machine2: serveur php/mysql

    J'ai mis un .bat sur la machine 1 avec une commande qui exécute lors d'un commit pour exécuter un php de la machine 2 afin de savoir qu'un commit a été effectué et traiter ceci par php.

    J'ai donc mis la commande suivante dans le bat:
    \\ipmachine2\..\wamp\php\php.exe \\ipmachine2\..\wamp\...\fichier.php

  13. #13
    Modérateur
    Avatar de sabotage
    Homme Profil pro
    Inscrit en
    Juillet 2005
    Messages
    29 208
    Détails du profil
    Informations personnelles :
    Sexe : Homme

    Informations forums :
    Inscription : Juillet 2005
    Messages : 29 208
    Points : 44 155
    Points
    44 155
    Par défaut
    Tu utilises \\machine ou http://machine ?

    Le plus simple serait d'avoir un php.exe sur la machine 1.
    N'oubliez pas de consulter les FAQ PHP et les cours et tutoriels PHP

  14. #14
    Membre à l'essai
    Profil pro
    Inscrit en
    Mars 2007
    Messages
    75
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mars 2007
    Messages : 75
    Points : 22
    Points
    22
    Par défaut
    non je n'utilise pas le http, j'ai mis un fichier php juste avec phpinfo() pour tester. Pour le test j'ai mis cette commande dans console windows et j'obtiens bien un résultat, donc il arrive a exécuter du code php a distance sauf quand il fait un lien a mysql.
    N'y a t'il pas une solution en précisant les PHPRC environnent variables ?

    Je pourrai mettre seulement le fichier php.exe sur la première machine ?

  15. #15
    Modérateur
    Avatar de sabotage
    Homme Profil pro
    Inscrit en
    Juillet 2005
    Messages
    29 208
    Détails du profil
    Informations personnelles :
    Sexe : Homme

    Informations forums :
    Inscription : Juillet 2005
    Messages : 29 208
    Points : 44 155
    Points
    44 155
    Par défaut
    Soit tu utilises un php.exe local (il faut php.exe, un php.ini et quelques dll dependant de la version + les fichiers des extensions utilisées)
    Soit tu utilises un php.ini alternatif avec les bons chemins.
    N'oubliez pas de consulter les FAQ PHP et les cours et tutoriels PHP

  16. #16
    Membre à l'essai
    Profil pro
    Inscrit en
    Mars 2007
    Messages
    75
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mars 2007
    Messages : 75
    Points : 22
    Points
    22
    Par défaut
    Je vais essayer de créer un autre php.ini que je vais mettre sur la Machine1.
    Et mettre les liens vers la machine2, par exemple:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    extension_dir = "c:/wamp/php/ext/"  avant
    extension_dir = "http://adresseipmachine2/c/wamp/php/ext/"
    Comme cela ?

Discussions similaires

  1. Réponses: 1
    Dernier message: 26/06/2009, 15h50
  2. Réponses: 11
    Dernier message: 30/06/2008, 13h15
  3. Réponses: 0
    Dernier message: 07/02/2008, 11h26
  4. [FTP] Gestion fichier PHP sur serveur FTP
    Par cdrik59 dans le forum Langage
    Réponses: 1
    Dernier message: 08/12/2006, 16h00

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