Précédent   Forum des professionnels en informatique > PHP > PHP & SGBD > PHP & Oracle
PHP & Oracle Forum d'entraide sur Oracle avec PHP. Avant de poster -> FAQ Oracle et Cours Oracle
Partagez cette discussion sur d'autres réseaux sociaux : Viadeo Twitter Google Facebook Digg Delicious MySpace Yahoo
Réponse Proposer ce sujet en actualité
 
Outils de la discussion
Publicité
'
Vieux 30/03/2007, 13h53   #1
Invité de passage
 
Inscription : février 2007
Messages : 12
Détails du profil
Informations forums :
Inscription : février 2007
Messages : 12
Points : 3
Points : 3
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:
Citation:
[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 :
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:
Citation:
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
domray est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 30/03/2007, 14h21   #2
Expert Confirmé

 
Avatar de Amara
 
Inscription : juillet 2004
Messages : 2 684
Détails du profil
Informations personnelles :
Localisation : France, Sarthe (Pays de la Loire)

Informations forums :
Inscription : juillet 2004
Messages : 2 684
Points : 2 910
Points : 2 910
Essaie comme ça :

Code :
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)
Amara est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 31/03/2007, 14h47   #3
Invité de passage
 
Inscription : février 2007
Messages : 12
Détails du profil
Informations forums :
Inscription : février 2007
Messages : 12
Points : 3
Points : 3
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 ?
domray est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 31/03/2007, 17h33   #4
Expert Confirmé

 
Avatar de Amara
 
Inscription : juillet 2004
Messages : 2 684
Détails du profil
Informations personnelles :
Localisation : France, Sarthe (Pays de la Loire)

Informations forums :
Inscription : juillet 2004
Messages : 2 684
Points : 2 910
Points : 2 910
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)
Amara est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 20/04/2007, 02h16   #5
Invité de passage
 
Inscription : février 2007
Messages : 12
Détails du profil
Informations forums :
Inscription : février 2007
Messages : 12
Points : 3
Points : 3
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
domray est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 20/04/2007, 09h26   #6
Nouveau Membre du Club
 
Inscription : mars 2007
Messages : 65
Détails du profil
Informations forums :
Inscription : mars 2007
Messages : 65
Points : 25
Points : 25
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
jilham est déconnecté   Envoyer un message privé Réponse avec citation 00
Réponse Proposer ce sujet en actualité
Outils de la discussion



Fuseau horaire GMT +2. Il est actuellement 15h48.


 
 
 
 
Partenaires

Hébergement Web