2011-07-05 4 views
1

Mon code d'erreur est:problème de connexion PHP + ORACLE

Warning: ocilogon() [function.ocilogon]: OCIEnvNlsCreate() failed. There is something wrong with your system - please check that ORACLE_HOME is set and points to the right directory in /data01/app/htdocs/doosanclub/include/classes.pinc on line 47 

et la ligne 47 est:

46:  function connect($DBuser,$DBpassword,$DBsid) { 
47:  $this->conn = OCILogon($DBuser,$DBpassword,$DBsid); 
48:  $this->mode = OCI_DEFAULT; 
49: } 

Mon ORACLE_HOME est situé dans root.sh: ORACLE_HOME=/oracle

et /oracle est un répertoire correct qui contient /bin.

et .. ma valeur $ DBsid est également définie dans /oracle/network/admin/tnsnames.ora. J'ai recherché sur Google docs et essayez-le. J'ai fait un test php. Le code est:

oci_internal_debug(1); // turn on tracing 
$conn = oci_connect("id", "pw", "SID"); 

et il affiche:

OCI8 DEBUG: OCINlsEnvironmentVariableGet at (/temp/php_source/php-5.2.13/ext/oci8/oci8.c:1067) OCI8 DEBUG: OCIEnvNlsCreate at (/temp/php_source/php-5.2.13/ext/oci8/oci8.c:1223) 
Warning: oci_connect() [function.oci-connect]: OCIEnvNlsCreate() failed. There is something wrong with your system - please check that ORACLE_HOME is set and points to the right directory in /data01/app/htdocs/doosanclub/db_connect_test.php on line 23 
OCI8 DEBUG: OCIHandleFree at (/temp/php_source/php-5.2.13/ext/oci8/oci8.c:1547) 

ORACLE_HOME encore une fois .. peut-être il est faux ..? Je ne sais pas ..

C'est la première fois que vous installez ces choses. S'il vous plaît aidez-moi à ce problème. Merci!

+0

peut-être c'est un problème de fichier permissioin? sous quel utilisateur apache exécute des scripts PHP? a-t-il des permissions pour lire le répertoire/oracle? – heximal

+1

Que voyez-vous dans l'ENVIRONNEMENT lorsque vous exécutez "phpinfo()" –

+0

James Anderson // Quelles informations avez-vous besoin de savoir pour résoudre ce problème? Je suis vraiment désolé, mais je ne peux pas vous donner toute l'information en raison d'un problème de sécurité. – Deckard

Répondre

0

J'ai résolu ce problème en ajoutant putenv() dans une base de données connectant le fichier PHP.

putenv("ORACLE_HOME=/oracle"); 

Mais il est très étrange que phpinfo(); affiche ORACLE_HOME=/oracle avant mon ORACLE_HOME.