Outils personnels
Vous êtes ici : Accueil GNU / Linux Ubuntu Dapper Drake Développement et serveurs Installation du module OCI8 pour PHP5 sur Ubuntu Dapper Drake
Actions sur le document
  • Send this page to somebody
  • Print this page
  • Add Bookmarklet

Installation du module OCI8 pour PHP5 sur Ubuntu Dapper Drake

Par admin - Dernière modification 15/02/2008 22:41

OCI8 est le module permettant à vos application PHP d'utiliser une base de donnée Oracle. Cet article vous guide au travers de l'installation et / ou de la compilation d'un module OCI8 pour PHP5 et de sa configuration sur Ubuntu Dapper Drake.

Vous utilisez Debian 4.0 Etch ?

J'ai écrit une version de ce guide adaptée à votre système d'exploitation. Veuillez vous reporter sur ce guide : Installer le support OCI8 et MSSQL pour PHP5 sur Debian 4.0 Etch.

Installation via apt

Si vous ne souhaitez pas vous embêter à compiler le module, j'ai mis en ligne un dépôt le contenant.  Dans le cas contraire, passez à la section suivante de cet article.

Dans un premier temps, ajouter ce dépôts à votre configuration apt. Pour ce faire, exécutez les lignes suivantes :

sudo sh -c 'echo "# Modules PHP5 pour Ubuntu Dapper Drake
deb http://falcon.landure.fr dapper php5
deb-src http://falcon.landure.fr dapper php5" \
>> /etc/apt/sources.list.d/dapper-landure-php5.list'

Téléchargez la clef signant ces dépôts :

wget http://falcon.landure.fr/9FA7DC39.gpg -O- | sudo apt-key add -

Il vous faut aussi les dépôts des paquets Oracle :

sudo sh -c 'echo "# Dépôts Oracle pour debian unstable (sid)
deb http://oss.oracle.com/debian unstable main non-free" \
> /etc/apt/sources.list.d/sid-oracle.list'

N'oubliez pas de télécharger la clef signant les dépôts d'Oracle :

wget http://oss.oracle.com/el4/RPM-GPG-KEY-oracle  -O- | sudo apt-key add -

Mettez à jour la liste des paquets disponibles

sudo apt-get update

Et installez le module OCI8 pour PHP 5.

sudo apt-get install php5-oci8

Vous pouvez maintenant aller à la fin de cet article pour configurer ce module.

Compilation

Installation des paquets OCI

sudo sh -c 'echo "# Dépôts Oracle pour debian unstable (sid)
deb http://oss.oracle.com/debian unstable main non-free" \
> /etc/apt/sources.list.d/sid-oracle.list'

Nous téléchargeons la clef signant ces dépôts.

wget http://oss.oracle.com/el4/RPM-GPG-KEY-oracle  -O- | sudo apt-key add -

Nous mettons à jour la liste des paquets disponibles

sudo apt-get update

Enfin, nous installons le client Oracle nécessaire à la compilation de php5-oci8:

sudo apt-get install oracle-xe-client

Nous pouvons maintenant passer à l'étape suivante.

Installation des prérequis

En premier lieu, nous installons les paquets nécessaires à la compilation du paquet PHP 5 :

sudo apt-get build-dep php5

Nous installons ensuite les paquets nécessaires à l'intégration de MSSQL dans PHP 5 :

sudo apt-get install fakeroot

Enfin, nous téléchargeons les sources du paquet PHP 5 :

mkdir ~/SOURCES
cd ~/SOURCES
apt-get source php5

Compilation du module

En premier lieu, nous entrons dans le répertoire des sources :

cd ~/SOURCES/php5-*

Nous modifions ensuite le fichier modulelist :

echo "oci8 OCI8" >> debian/modulelist
Nous modifions le fichiers rules :
echo /usr/lib/oracle/xe/app/oracle/product/*/client | sed -e 's/\//\\\//g' | \
xargs -iCLIENT sed -i -e '/--with-mysql=shared,\/usr/i\
\t\t--with-oci8=shared,CLIENT \\' debian/rules

Enfin, nous modifions le fichier control :

echo "Package: php5-oci8
Architecture: any
Depends: \${shlibs:Depends}, \${misc:Depends}, \${php:Depends}, php5-common (= \${Source-Version}), oracle-xe-client
Description: OCI8 module for php5
This package provides a module for OCI8 using Oracle 10g Express client.
.
PHP5 is an HTML-embedded scripting language. Much of its syntax is borrowed
from C, Java and Perl with a couple of unique PHP-specific features thrown
in. The goal of the language is to allow web developers to write
dynamically generated pages quickly.
" >> debian/control

Et nous en profitons pour ajouter les dépendances de contruction:

sed -i -e 's/\(Build-Depends: .*\)/\1, oracle-xe-client/' debian/control

Enfin, nous pouvons lancer la compilation de PHP 5 :

dpkg-buildpackage -rfakeroot

Si tout s'est bien passé, vous disposez à présent d'un paquet contenant le module MSSQL. Nous installons le module PHP 5 que nous venons de compiler :

cd ..
sudo dpkg -i ~/SOURCES/php5-oci8*.deb

Configuration du module OCI8

Il nous faut maintenant configurer le module OCI 8, ainsi que le client Oracle. En premier lieu, nous allons dire à notre système ou se trouve le client oracle et ses fichiers de configuration. Pour cela, nous modifions le fichier /etc/environment :

echo /usr/lib/oracle/xe/app/oracle/product/*/client | \
xargs -iCLIENT sudo sh -c "echo 'ORACLE_HOME=CLIENT
LD_LIBRARY_PATH=CLIENT/lib
TNS_ADMIN=/etc/oracle
NLS_LANG=AMERICAN_AMERICA.UTF8' \
>> /etc/environment"

Remarque: Vous pouvez adapter cette ligne de commande à vos besoins si la configuration NLS_LANG ne vous convient pas.

Dans le même fichier, nous modifions le PATH afin qu'il contienne les binaires du client Oracle :

echo /usr/lib/oracle/xe/app/oracle/product/*/client/bin | sed -e 's/\//\\\\\//g' | \
  xargs -iCLIENT sudo sed -i -e 's/PATH="\(.*\)"/PATH="\1:CLIENT"/' /etc/environment

Enfin, nous modifions les PATH des utilisateurs afin qu'il contienne les binaires du client Oracle :

sudo sh -c "echo 'PATH=\$PATH:\$ORACLE_HOME/bin' >> /etc/profile"

Vous devez aussi configurer Apache 2 (s'il s'agit du serveur HTTP que vous utilisez) :

echo /usr/lib/oracle/xe/app/oracle/product/*/client | \
xargs -iCLIENT sudo sh -c "echo 'export ORACLE_HOME=CLIENT
export LD_LIBRARY_PATH=\$ORACLE_HOME/lib:\$LD_LIBRARY_PATH
export TNS_ADMIN=/etc/oracle
export NLS_LANG=AMERICAN_AMERICA.UTF8' \
>> /etc/apache2/envvars"

Nous créons ensuite le dossier de configuration du client Oracle :

sudo mkdir /etc/oracle

Nous renseignons les paramètres de notre base de données :

ORA_HOST=oracle-server-name
ORA_PORT=1521
ORA_DB=DATABASE_NAME

Et nous créons le fichier de configuration du client Oracle en utilisant ces paramètres :

sudo sh -c "echo '$ORA_DB = (DESCRIPTION =
(ADDRESS_LIST = (
ADDRESS = (PROTOCOL = TCP)(HOST = $ORA_HOST)(PORT = $ORA_PORT)
))
(CONNECT_DATA = (SERVICE_NAME = $ORA_DB))
)' >> /etc/oracle/tnsnames.ora"

Remarque: Vous pouvez utiliser les deux dernières commandes plusieurs fois si vous disposez de plusieurs bases de données et/ou serveurs.

Si tout s'est bien passé, vous pouvez maintenant utiliser les clients Oracle (sqlplus pour n'en citer qu'un) et le module php5-oci8 sans problème sur votre serveur.

Remerciements



Réalisé avec Plone

Ce site respecte les normes suivantes :

Wikio