L'installation Oracle (+ Apache) + PHP
Nous parlerons ici de l'architecture la + souhaitable à mon avis, à
savoir une architecture 3 tier :
- un client PC + navigateur
- un serveur d'application linux
(qui heberge Apache + un module PHP + les sources de l'application PHP + un
client Oracle)
- un serveur de données Oracle sur une 3eme machine (sous Linux ou
sous tout autre OS ca marche quand même)
si PHP/apache et le serveur
Oracle sont sur sur la même machine on n'aura pas à installer le
client Oracle (qui est inclus avec le severur) mais simplement à positionner
les vaeriables d'environnement Oracle adéquates pour attaquer directement
le serveur sans passer par SQL*Net

il est possible de passer aussi par SQL*Net en "loopback" dans ce
cas particulier on configurera qd même le client SQL*Net. c'est l'équivallent
d'accès TCP/IP sur le "localhost"...
Moyennant ces remarques revenons au cas général qui nous préoccupe
à savoir une Install en architecture 3 tier.
Démarche
- installer et tester le serveur apache
- tester PHP sans Oracle en appelant une page
http://mon_serveur/info.php
qui contient par exemple
<?php
phpinfo();
?>
- verifier que le serveur Oracle est OK (se connecter directement sur le serveur
et tester une connexion directe sqlplus scott/tiger par exemple)
- installer et configurer le client Oracle
Il y a 2 alternatives :
a priori seulement 2 librairies Oracle sont nécessaires :
.../lib/libclntsh.so.9.0
.../lib/libwtc9.so
(ainsi qu'un environnement Oracle décrit au paragraphe suivant...)
pour tester :
sqlplus scott/tiger@mon_serveur_oracle
- positionner l'environnement Oracle dans le compte apache (utilisateur Unix
propriétaire des process httpd
$export ORACLE_BASE=chemin/d'install/d'oracle
$export ORACLE_HOME=home/fdirectory/d'oracle
le PATH étendu pour acceder aux binaires d'Oracle ($ORACLE_HOME/bin
n'est a priori pas nécessaire...)
creer avec "vi" ou grace a "SQL*Net configuration assistant
d'Oracle" un fichier TNSNAMES.ORA qui contient la traduction de l'adresse
de la base cible (voir doc SQL*Net)
!!! attention ce fichier doit se trouver dans ""$ORACLE_HOME/network/admin"
et s'appeler "tnsnames.ora"
- tester PHP + oracle en appelant une page de test de connexion
http://mon_serveur/test_orak.php
qui contient par exemple :
<?php
// on verifie le user apache
echo "je suis : ";system(whoami);
// on verifie un environnement minimal
echo "<BR>oracle_home : ".$HTTP_ENV_VARS["ORACLE_HOME"];
$user="SCOTT" ; $passwd= "TIGER"; $host = "ma_base_oracle";
$conn1 = ociplogon($user,$passwd,$host);
if (!$conn1) { echo "L'utilisateur $user n'a pu se connecter a la base";
} else
{ echo "<BR>Connecte au serveur Oracle version : <BR>";
echo OCIServerVersion($conn1);
}
?>