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

PHP & Base de données Discussion :

Problème d'installation de PHP pour la connexion aux données


Sujet :

PHP & Base de données

  1. #1
    Futur Membre du Club
    Inscrit en
    Février 2007
    Messages
    12
    Détails du profil
    Informations forums :
    Inscription : Février 2007
    Messages : 12
    Points : 9
    Points
    9
    Par défaut Problème d'installation de PHP pour la connexion aux données
    Bonjour,

    Je viens de transférer une application déjà existante sur un nouveau serveur et une nouvelle installation de PHP (V5.11). J'arrive à accéder aux pages HTML et exécuter des pages PHP simples, mais lors de l'exécution d'une page qui permet de se connecter à une base de données j'ai les messages suivants:
    [Fri Mar 30 04:30:37 2007] [error] [client 10.6.202.100]
    PHP Warning: include(bo_common.inc)
    [<a href='function.include'>function.include</a>]: failed to open stream: No such file or DIrectory /home/applications/oracle/www/usefulinfo/Descriptif_des_bases.php on line 2, referer: http://dba-test.intl.......com/
    [Fri Mar 30 04:30:37 2007] [error]
    [client 10.6.202.100]
    PHP Warning: include() [<a href='function.include'>function.include</a>]:
    Failed opening 'bo_common.inc' for inclusion (include_path='.:/usr/local/Zend/Core/share/pear') in /home/applications/oracle/www/usefulinfo/Descriptif_des_bases.php on line 2, referer: http://dba-test.intl.......com/
    [Fri Mar 30 04:30:38 2007] [error]
    [client 10.6.202.100] PHP Fatal error: Unknown function:
    oracleenv() in /home/applications/oracle/www/usefulinfo/Descriptif_des_bases.php on line 33, referer: http://dba-test.intl......com/
    La fonction Oraenv() qui permet de se connecter à la base n'est pas trouvée dans le fichier 'bo_common.inc' qui est appelé dans la page Descriptif_des_bases.php en début de fichier...

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    // page PHP exéutant le script:
    <?
    include 'bo_common.inc';
     
     
    function includefile($filename) {
    $obj = apache_lookup_uri($filename);
    $fp = fopen($obj->filename, "r");
    $contents = fread($fp, filesize($obj->filename));
    fclose($fp);
    print $contents;
    }
     
    includefile("/common/include/header.inc");
    ?>
     
    // fonction a exécuter dans le fichier bo_common.inc:
    <?
    .....
    function OracleEnv() {
    //Environnement Oracle
       //putenv("ORACLE_HOME=/applications/oracle/Ora92");
       putenv("ORACLE_HOME=/home/applications/oracle/Ora10g_32b");
       putenv("NLS_LANG=American_America.UTF8");
       putenv("ORACLE_SID=exploit");
    }
    ?>
    Dans le fichier php.ini, j'ai pourtant configuré le paramètre include_path:
    include_path = ".:/usr/local/Zend/Core/share/pear:/usr/local/Zend/apache2/include:/home/applications/oracle/www/common/php"
    Qu'est-ce qui manque pour que ma fonction Oraenv soit effectivement exécutée ?

    /usr/local/Zend/Core/share/pear sert à quoi ? - je l'ai trouvé dans /usr/local/Zend/apache2/logs/error_log

    Merci de vos réponses

  2. #2
    Membre expert Avatar de Amara
    Profil pro
    Inscrit en
    Juillet 2004
    Messages
    2 688
    Détails du profil
    Informations personnelles :
    Localisation : France, Sarthe (Pays de la Loire)

    Informations forums :
    Inscription : Juillet 2004
    Messages : 2 688
    Points : 3 115
    Points
    3 115
    Par défaut
    Essaie comme ça :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    include './bo_common.inc';
    Pas de questions techniques par MP, le forum est là pour ça et est plus efficace.

    Orthographe : une connexion (avec un x), un langage (sans u), une requête (un seul t), 'une quote' (avec qu), une syntaxe (sans h)

  3. #3
    Futur Membre du Club
    Inscrit en
    Février 2007
    Messages
    12
    Détails du profil
    Informations forums :
    Inscription : Février 2007
    Messages : 12
    Points : 9
    Points
    9
    Par défaut
    Merci pour ton aide (encore une fois! ) ... en fait je me suis aperçu ce matin qu'il y avait un souci semble-t-il dans le param include_path... J'ai essayé ta solution et de coder en dur le chemin complet d'accès à mon fichier, mais ça marchait pas plus....J'ai donc inversé dans ce paramètre l'ordre des chemins et redémarré le daemon httpd, et tout de suite ça semble aller mieux puisque les messages d'erreurs ont disparu....

    Par contre pourrait-tu me renseigner sur celui-là ?

    [Sat Mar 31 05:40:23 2007] [error] [client 10.6.12.56] PHP Fatal error: Call to undefined function ora_logon() in /home/applications/oracle/www/usefulinfo/Descriptif_des_bases.php on line 41, referer: http://van-s-rmandb01/

    Il semble que mon PHP 5.1.6 ne veuille pas de la fonction ora_logon() - ma base oracle 10g est sur le même serveur

    J'ai vérifié les paramètres d'install. pour la prise en compte d'Oracle :

    oci8
    OCI8 Support enabled
    Version 1.2.2
    Revision $Revision: 1.269.2.16.2.23 $
    Active Persistent Connections 0
    Active Connections 0
    Oracle Instant Client Version 10.2
    Temporary Lob support enabled
    Collections support enabled

    Directive Local Value Master Value
    oci8.default_prefetch 10 10
    oci8.max_persistent -1 -1
    oci8.old_oci_close_semantics 0 0
    oci8.persistent_timeout -1 -1
    oci8.ping_interval 60 60
    oci8.privileged_connect Off Off
    oci8.statement_cache_size 20 20

    ça semble correct - sauf que je n'ai pas l'ORACLE_HOME indiqué comme c'est le cas en 4.11 ..
    J'ai essayé de recompiler avec les options with oci8 (dès fois que...) et surtout withoracle (+ MAKE + make install) mais je ne vois pas plus de différence vu que j'ai toujours le même type de message d'erreur ...

    Ca te dis quelquechose ?

  4. #4
    Membre expert Avatar de Amara
    Profil pro
    Inscrit en
    Juillet 2004
    Messages
    2 688
    Détails du profil
    Informations personnelles :
    Localisation : France, Sarthe (Pays de la Loire)

    Informations forums :
    Inscription : Juillet 2004
    Messages : 2 688
    Points : 3 115
    Points
    3 115
    Par défaut
    Ah non désolé je vais pas pouvoir t'aider pour ces choses là connais pas trop
    Pas de questions techniques par MP, le forum est là pour ça et est plus efficace.

    Orthographe : une connexion (avec un x), un langage (sans u), une requête (un seul t), 'une quote' (avec qu), une syntaxe (sans h)

  5. #5
    Futur Membre du Club
    Inscrit en
    Février 2007
    Messages
    12
    Détails du profil
    Informations forums :
    Inscription : Février 2007
    Messages : 12
    Points : 9
    Points
    9
    Par défaut
    en fait j'ai trouvé: la librairie Oracle en question est 'deprecated' en PHP5 ..et il faut utiliser la librairie oci ...autant dire: repasser partout dans le code et adapater !

    Merci quand même

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

    Informations forums :
    Inscription : Mars 2007
    Messages : 65
    Points : 40
    Points
    40
    Par défaut
    bah c'est surtout que les fonctions ora ne fonctionne que pour des bases oracle inférieures à 8i
    je pense que tu peux quand meme utiliser l'extension php_ora.php avec php5!
    bon courage par contre pour utiliser l'oci8 avec php5 ça vaut le détour

    NB: pour éviter de partir à la chasse de ton code essaye de te créer une couche de donnée que tu appelle de ta couche logique...c'est vachement plus pratique pour la maintenance ou l'évolution


    sinon pour ton problème de chemin que tu as résolu tu peux au pire renseigner l'environnement dynamiquement par la commande :

    set_include_path(get_include_path() . ";c:\php5.2\PEAR");
    et ensuite tu fait :
    include ou require_once (suivant tes besoins) de ton fichier

Discussions similaires

  1. Problème d'installation de php-mysql sur RedHat.
    Par maldoror34 dans le forum Linux
    Réponses: 7
    Dernier message: 22/09/2009, 21h19
  2. Problème d'installation de composants pour SQLite
    Par rezuss dans le forum Bases de données
    Réponses: 1
    Dernier message: 12/06/2009, 19h58
  3. Réponses: 6
    Dernier message: 19/10/2006, 10h45
  4. Réponses: 1
    Dernier message: 16/09/2006, 19h49
  5. Erreur dans un programme php pour une connexion à une bdd
    Par gaetan.tranvouez dans le forum PHP & Base de données
    Réponses: 4
    Dernier message: 12/06/2006, 21h06

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