# Apache, Oracle et PHP

## sergio

Pour ceux que çà interesse j'ai installé un serveur apache avec PHP et accès vers une base de données Oracle sur ma Gentoo 1.2.

Après avoir regarder un peu dans les forums anglais j'ai trouvé une façon de procèder vraiment simple et efficace, je vous la livre :

Installer le client oracle (ou le total si la base doit se trouver sur le même serveur) 

Aller sur le site www.oracle.com et récuperer la version d'oracle appropriée (la 8.1.7) pour linux

Créer un groupe "dba", un utilisateur "oracle" menbre des groupes "dba", "users" et "wheel"

Se connecter sous l'utilisateur "oracle"

Exporter les variables suivantes :

```
[list]

export DISPLAY=:0.0

export ORACLE_HOME=/home/oracle/[votre répertoire d'install]

export ORACLE_BASE=/home/oracle/oraInventory

export ORACLE_SID=oralin

[/list]
```

Lancez (en tant qu'utilisateur oracle) votre serveur X (l'installeur oracle ne fonctionne qu'en mode graphique)

Décompressez ensuite l'archive récupérée sur le site d'oracle dans /home/oracle et placez-vous dans le répertoire obtenu

Lancez le script "runInstaller.sh" et suivez les indications (n'oubliez pas de vérifier que le répertoire d'install correspond bien à la celui spécifié par la variable d'environnement ORACLE_HOME

Lors du choix des composants choisissez d'installer (ORACLE OCI8 support) avec le reste...

Terminez l'install, et configurez votre (vos) "local net service name" avec l'utilitaire "netca" qui se lance normalement à la fin de l'install

Lorsque la connection vers la base de données est testée et qu'elle fonctionne s'est fini

Modifiez votre configuration comme suit

Creéz un fichier dans le répertoire /etc/env.d que vous appelerez "09oracle" et qui contiendra les lignes suivantes :

```

DISPLAY=:0.0

ORACLE_BASE=/home/oracle/oraInventory

ORACLE_HOME=/home/oracle/software

ORACLE_SID=oralin

PATH=/home/oracle/software/bin

ROOTPATH=/home/oracle/software/bin

```

Redémarrez ensuite la station...

Installez apache

Modifez votre fichier /etc/make.conf pour que la variable USE contiennne les éléments suivants : USE="oci8 .... etc..."

lancer : 

```

emerge rsync

emerge apache

emerge php

emerge mod_php

emerge clean

```

Vérifiez ensuite que le fichier /etc/conf.d/apache contient bien la ligne suivante APACHE_OPTS="-D PHP4 -D SSL... etc

Vérifiez la présence dans le fichier /etc/apache/conf/apache.conf des lignes suivantes :

```

<IfDefine PHP4>

LoadModule php4_module    extramodules/libphp4.so

</IfDefine>

....

<IfDefine PHP4> 

AddModule mod_php4.c 

</IfDefine>

.....

Include  conf/addon-modules/mod_php.conf

```

 N'oubliez pas d'ajouter apache à vos scripts de démarrage avec "rc-update add apache default" et de démarrer apache avant de tester avec une page PHP que tout marche bien...

Voici ma page de test PHP (oracletest.php) :

```

<?php

//Connection à la base

$connection = ocilogon("mon_username","mon_password","ma_base");

//LECTURE D'UN TABLE 

$c_prods_vege = OCIParse ($connection, "SELECT * from PRODUCTIONS_VEGETALES");

OCIExecute ($c_prods_vege);

while (OCIFetchInto ($c_prods_vege, $prods_vege))

{

}

// Récupére le nombre d'enregistrement

$nrows = OCIRowCount($c_prods_vege);

echo "Nombre de lignes dans la table : ";

print ($nrows);

?>

```

Il va sans dire qu'il faut avoir une base de données en face avec au moins une table dans celle-ci...

Bon tests à tous !!

----------

