Bonjour,

J'ai un problème de connexion à ma base oracle mais je ne sais pas si ça vient de php, oracle ou linux.

Mon script php fonctionne en local sous XP. Je me connecte à ma base oracle sans problème.
Sur le serveur linux, j'ai deux comportements differents selon que je lance mon script en lignes de commandes (...]# php mon script.php) ou que je l'appel dans une page de mon site construit avec typo3.

Sur mon site web il n'y a aucun problème, seulement ce script est destiné à être executé par cron une fois par jour. Quand je l'execute en ligne de commande, au moment de la connexion à la même base oracle (je n'en ai qu'une) il m'affiche le message d'erreur suivant :
PHP Warning: ocilogon(): _oci_open_session: OCIHandleAlloc OCI_HTYPE_SVCCTX: OCI_INVALID_HANDLE in /home/user/sources/oracle.class.php on line 33
A la ligne 33 il y a bien entendu mon ocilogon :

Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
$username	= "XXXXX";
$password	= "YYYYYY";
$db		= "MADB";
 
$this->log_procedure("Connexion à la base ".$db);
 
if (($this->connexion = ocilogon($username, $password, $db)) === FALSE) { // ligne 33
	$this->log_procedure("Connexion impossible à ".$db);
	$this->log_error(true);
}
else {
	$this->log_procedure("Succès de connexion à la base ".$db);
}
en faisant des recherches j'ai remarqué que ce message d'erreur vient du fait que ORACLE_HOME n'est pas bien défini mais j'ai pourtant rien dans mon site web qui y fait référence et pourtant la connexion se fait bien.

Y-a-t'il une différence dans l'execution de php en ligne de commande et par apache ? Où doit pointer ORACLE_HOME ? Un autre paramètre rentre-t-il en ligne de compte ?

Merci d'avance,
Devether