Php Oracle OCI8
Se connecter en Php à une base Oracle via OCI8 sur Linux
Principe
Pour se connecter à une base Oracle en Php, il est nécessaire d'avoir le module OCI8.Oracle supporte l'installation sur certaines distributions (Suse, RHeL ...) via un rpm,
ma slack n'étant pas particulièrement heureuse quand je lui fournis un .rpm, j'ai cherché un moyen de compiler soit même le module.
Ce tuto synthèse la compilation et l'installation d'Apache - Php - Oracle Instant Client - Php OCI8
Installation
Tout d'abord, il faut télécharger:- Oracle instant client basic pour linux.
- Oracle instant client SDK pour linux.
- Sources PHP.
- Sources Apache HTTPD Server.
Quand tout ce beau monde est dans un repertoire ( dans mon cas /usr/src/ ), on peut commencer l'installation.
Instant Client Oracle:
unzip instantclient-basic-linuxXX-XX.X.X.X.zip mv instantclient_XX-X/ /usr/lib/oracle rm -R instantclient_XX-X/ unzip instantclient-sdk-linuxXX-XX.X.X.X.zip cp -p instantclient_XX-X/sdk/ /usr/lib/oracle rm -R instantclient_XX-X/
Maintenant que l'instant client et le sdk sont en place, il faut compiler apache et php:
Il ne faut pas hésiter à compiler apache et php selon ses propres besoins, lisez la doc!
J'installe cet apache/php dans /usr/local/apache2, mais vous pouvez mettre le prefix de votre choix.
Si vous avez déjà un apache/php d'installé, vérifiez ien que vous lancez le bon, ou désinstallez l'autre avant d'installer celui ci dans le même répertoire!
cd httpd/ ./configure --enable-so --enable-dav-fs --enable-dav-lock --enable-dav --enable-rewrite --enable-ssl --enable-vhost-alias --prefix=/usr/local/apache2 make make install cd .. rm -R httpd/ cd PHP/ ./configure --with-apxs2=/usr/local/apache2/bin/apxs --with-mysql --prefix=/usr/local/apache2/php --with-config-file-path=/usr/local/apache2/php --disable-cgi --with-zlib --with-gettext --with-gdbm --enable-sockets --enable-mbstring=all --with-oci8=instantclient,/usr/lib/oracle make make install cp -p ./libs/libphp5.so /usr/local/apache2/modules/ cp -p ./php.ini-production /usr/local/apache2/php/php.ini cd .. rm -R PHP/
Configuration
Il faut maintenant indiquer à apache comment utiliser php, pour cela il faut éditer le fichier httpd.conf (/usr/local/apache2/httpd.conf) et y placer les valeurs suivantes:LoadModule php5_module modules/libphp5.so AddHandler php5-script php DirectoryIndex index.html index.php AddType application/x-httpd-php .php AddType application/x-httpd-php-source .phps
Test
Lancement d'apache:/usr/local/apache2/bin/apachectl start
Test de connexion php:
<?php $tns = ''; $username = 'username'; $password = 'passwd'; // Connexion à la base de donnée: $db = oci_connect($username, $password, $tns); if (!$db) { $e = oci_error(); echo '<b><font color="red">CONNEXION IMPOSSIBLE</font></b> : ' . htmlentities($e[ 'message']); } else { echo '<b><font color="green">CONNEXION REUSSIE!</font></b>'; oci_close($conn); } ?>