Installation Oracle sous Ubuntu - Debian
Dans ce mode opératoire, la base de données ORACLE a été installée préalablement sur un serveur pouvant être différent de celui où sera faite cette installation.
1. Installation du Client Oracle
La première étape consiste à installer le client Instantclient d'Oracle puis de générer l'extension OCI8.SO nécessaire au PHP pour se connecter sur la base de donnnées Oracle.
Pour cela, suivre les étapes suivantes :
1.1. Téléchargement des modules d'Oracle : Instantclient - SDK - SQLPlus
Le téléchargement de l'Instantclient dépend de votre version d'Oracle et de votre distribution Linux. Dans ce tutorial, nous prendrons l'exemple sur un Oracle 11.2 et un Linux Ubuntu.
La page suivante du site Oracle permet de télécharger le module correspondant à votre configuration : http://www.oracle.com/technetwork/database/features/instant-client/index-097480.html
Téléchargez les 3 modules suivants :
- Instant client
- SDK
- SQLPLUS
Décompressez les 3 modules dans un même répertoire /var/instantclient_11_2 par exemple et se placer dans ce répertoire
cd /var/instantclient_11_2
echo /var/instantclient_11_2 >> /etc/ld.so.conf
ldconfig
ln -s libclntsh.so.11.1 libclntsh.so
ln -s libocci.so.11.1 libocci.so
Installation du paquet phpize par :
aptitude install phpize
un autre paquet également requis :
aptitude install libaio1
Téléchargement du paquet OCI8 :
- A disposition sur le site PECL (vailder le module à télécharger en focntion de la version de PHP)
- Module OCI8 pour PHP 5.2 et ultérieur (mais pas pour PHP7). Cliquez ici
tar -xzf oci8-2.0.5.tgz
cd oci8-2.0.5
phpize
./configure --with-oci8=instantclient,/var/instantclient
make install
Configuration du PHP.INI. Copie de l'extension oci8.so dans le répertoire des extensions de PHP
cp
Dans le PHP.INI ajout de la ligne :
extension=oci8.so
1.2. Paramétrage des fichiers de configuration d'Oracle
Paramétrage des fichiers de configuration d'Oracle : tnsnames.ora et sqlnet.ora :
(Pour rappel : Le listener.ora est uniquement présent sur le serveur pour répondre et rediriger les requêtes faites par les clients). Les 2 fichiers .ora n'existant pas, il faut les créer dans le répertoire du client Oracle : /var/instantclient_11_2.
Ci-dessous des exemples de ces 2 fichers :
sqlnet.ora :
# This file is actually generated by netca. But if customers choose to
# install "Software Only", this file wont exist and without the native
# authentication, they will not be able to connect to the database on NT.
NAMES.DIRECTORY_PATH= (TNSNAMES, ONAMES, HOSTNAME)
SQLNET.AUTHENTICATION_SERVICES = (NTS)
tnsnames.ora :
QALITEL =
(DESCRIPTION =
(ADDRESS = (PROTOCOL = TCP)(HOST = 192.168.0.117)(PORT = 1521))
(CONNECT_DATA =
(SID=XE)
)
)
Attention : Le SID, le Host et le Port doivent correspondre à ceux du Listener.ora du serveur. Le Nom "QALITEL" dans notre exemple sera celui utilisé dans le nom de la base de données demandé par le programme d'installation.
Configuration des variables d'environnement d'Apache :
nano /etc/apache2/envvars
Placer ensuite les variables d'environnement d'Oracle dans ce fichier :
export TNS_ADMIN=/var/instantclient_11_2
export NLS_LANG=FRENCH_FRANCE.WE8MSWIN1252
#Attention : ne pas oublier l'espace pour la séparation des milliers
export NLS_NUMERIC_CHARACTERS='. '
Une fois ces paramétages réalisés, redémarrer apache pour leur prise en comtpe :
/etc/init.d/apache2 restart
Lancez ensuite le phpinfo() pour valider les paramétages. L'extension OCI8 doit être présente dans la liste des extensions. Dans la rubrique "Environment, vous devez y retrouver les variables Oracle (Uniquement dans cette rubrique) comme montré ci-dessous :
Pour tester la connexion à la base Oracle avec sqlplus :
Ajouter le chemin dans le PATH avec la commande :
export PATH=$PATH:/var/instantclient_11_2
Connexion avec sqlplus :
sqlplus login_du_serveur_distant/mot_de_passe_du_serveur_distant@QALITEL