Je viens de tester avec Oracle Database 10g Enterprise Edition Release 10.2.0.1.0 sous Fedora Core 4.
Pour les librairies, 2 solutons :
- Modifier le fichier de lancement d'
apache (/etc/rc.d/init.d/httpd) :
start() {
echo -n $"Starting $prog: "
check13 || exit 1
export LD_LIBRARY_PATH=/usr/lib/oracle/10.1.0.3/client/lib
LANG=$HTTPD_LANG daemon $httpd $OPTIONS
RETVAL=$?
echo
[ $RETVAL = 0 ] && touch ${lockfile}
return $RETVAL
}
- Modifier la config de
ld.so
cd /etc/ld.so.conf.d/
echo '/usr/lib/oracle/10.1.0.3/client/lib' >oracle.conf
ldconfig
Notes :
- La 1ère est obligatoire si la machine héberge le serveur apache ET le serveur oracle (2 versions des librairies)
- La 2nde est préférable sur une machine qui n'est que cliente.
ATTENTION : il faut utiliser les librairies de oracle-instantclient, pas celle d'oracle 10.2 (incompatibilité binaire). Celles d'Oralce 10.1 doivent fonctionner.
Pour la résolutin de nom, 2 solutions
- utiliser la connexion sous la forme
$conn = oci_connect("scott", "tigger", "//serveur.domaine.com/SID");
- faire pointer TNS_ADMIN vers le dossier contenant le fichier tnsnames.ora
putenv("TNS_ADMIN=/oracle/product/10.2.0/network/admin");
$conn = oci_connect("scott", "tigger", "SID");
Mais il est nécessaire de s'assurer que le fichier tnsnames est lisible par "apache", ce qui n'est pas le cas par défaut, il faut donc faire :
chmod o+x $ORACLE_HOME/network
chmod o+x $ORACLE_HOME/network/admin
chmod o+r $ORACLE_HOME/network/admin/tnsnames.ora
A vous de choisir.
A+