Dans le cadre d’un projet avec SUPINFO, j’ai eu besoin d’installer un serveur Linux peu courant, et qui dit peu courant… dis beaucoup de problèmes, et peu de support…
Les caractéristiques de cette plateforme peu courante:
- Debian Etch ( THE distribution Linux pour serveur )
- Oracle Express Edition (le TANK des SGBD)
- Apache 2 ( le serveur HTTP ultra connu)
- SNMP et SNMPD
- PHP5
- l’extension PDO
- et pour finir, et le plus « compliqué » le driver OCI pour PDO
1. Installer la distribution Linux : Debian
Edit : Vous pouvez aussi télécharger la version Netinstall de Etch et sauter l’étape 2 et 3
Rien de bien compliqué…
Télécharger la version Netinstall de Debian.
Procéder à l’installation de Debian et à l’étape « Disque dur et partition », créer une partition swap d’au moins 1go pour les besoins d’Oracle XE.
Pour la ou les autres partitions, procédez comme bon vous semble, comptez environ 4-5 go pour l’installation complète du système.
Pour une installation la plus plus stable et light possible, ne choisissez aucun profil de serveur, l’installation de base c’est encore ce qu’il y a de mieux !
Et pourquoi pas… suivre le guide suivant ! (sans pour autant installer l’interface graphique…)
2. Migrer vers Etch
Un serveur debian c’est bien, en version Etch c’est encore mieux !
Ajouter les dépôts de Etch, pour cela récupérer les sources.list
faite ensuite…
- apt-get update
- apt-get dist-upgrade
3. Installer un noyau 2.6
Autant profiter des dernières avancées…
- apt-get install kernel-image-2.6-686
4. Installer Oracle Express Édition ou Oracle XE
Pour cela, suivez le guide suivant.
Opter pour la solution « Récupération du .Deb »
Et installer oracle-xe-universal et son client (« apt-cache search oracle-xe » pour retrouver le nom exact.)
À la fin de l’installation, exécuter le script suivant :
- sh /usr/lib/oracle/xe/app/oracle/product/10.2.0/server/bin/oracle_env.sh
5. Installation de SNMP et SNMPD
Pour les besoins du projet… (totalement optionnel dans votre cas)
- apt-get install snmp, snmpd
Petite astuce, pour permettre la récupération des données SNMPD à distance, il faut éditer le fichier /etc/default/snmpd et supprimer l’occurrence « 127.0.0.1 » dans la ligne :
- SNMPDOPTS=’-Lsd -Lf /dev/null -u snmp -I -smux -p /var/run/snmpd.pid 127.0.0.1′
Ni plus ni moins…
6. Installation de Apache2 et PHP5
Trop facile… Vous trouverez des tutos partout sur le web.
Pour ma part, je procède de la sorte :
- apt-get install php5
- apt-get install apache2
Sans oublier les extensions PHP indispensables…
- apt-get install php5-dev php-pear php5-cgi php5-cli php5-curl php5-gd php5-imagick php5-snmp
Le paquet développement de Apache2 pour la suite…
- apt-get install apache2-dev
À cette étape, vous devriez être capable d’afficher un phpinfo.
Pour rappel, pour lancer, redémarrer, éteindre votre serveur web,il faut utiliser la commande :
- /etc/init.d/apache reload (pour recharger le fichier de configuration d’apache/php etc.)
- /etc/init.d/apache start (pour démarrer)
- /etc/init.d/apache stop (pour éteindre)
- /etc/init.d/apache restart (pour éteindre et démarrer à la suite)
Il faut maintenant renseigner les variables d’environnement Oracle à Apache2.
Pour cela, éditer le fichier /etc/apache2/envvars
et ajouter les lignes suivantes :
ORACLE_HOME=/usr/lib/oracle/xe/app/oracle/product/10.2.0/server
export ORACLE_HOME
ORACLE_SID=XE
export ORACLE_SID
NLS_LANG=`$ORACLE_HOME/bin/nls_lang.sh`
export NLS_LANG
PATH=$ORACLE_HOME/bin:$PATH
export PATH
LD_LIBRARY_PATH=$ORACLE_HOME/lib:$LD_LIBRARY_PATH
export LD_LIBRARY_PATH
7. Installation de l’extension PDO
Encore une fois, c’est très simple.
- pecl install PDO
On est actuellement à la version 1.0.3
Si apache2-dev, php5-dev, sont bien installé, cela devrait fonctionner du 1er coup !
Si la compilation et l’installation réussissent, vous devriez avoir un message comme quoi il faut ajouter la ligne
- extension=pdo.so
Dans le fichier php.ini.
Pour cela, il faut éditer le fichier php.ini et la placer à la fin.
- vim /etc/php5/apache2/php.ini
8. Installation de PDO_OCI
Le plus compliqué.
Logiquement, pour installer PDO_OCI, il suffit de de taper dans le shell
- pecl install PDO_OCI
Mais en fait, ça ne fonctionne pas, vous aurez à coup sûr une erreur de dépendance du style :
- pear/PDO_OCI requires PHP extension « pdo » (version >= 1.0)
Malgré le fait que vous avez installé la version 1.0.3 auparavant…
La solution est très simple. (Une fois qu’on la connait…, j’ai perdu beaucoup de cheveux dans cette mésaventure !)
En fait, j’ai réussi à installer PDO et PDO_OCI en compilant PHP5 à la main, ce que je trouve complètement stupide, car on perd tout l’intérêt des paquets apt… les mises à jour, dépendance…
Bref.
J’en ai déduit que la version de PDO_OCI qu’embarqué PHP5 était fonctionnel… pour installer la version fonctionnelle avec PECL c’est très simple.
Placer vous dans le dossier tmp
- cd /tmp
Télécharger les sources de PHP5
- apt-get source php5
Allez dans le dossier ext/pdo_oci de php5-5.2.0 (le numéro de version va problabement évoluer…)
- cd php5-5.2.0/ext/pdo_oci/
Et lancer l’installation par la commande
- pecl install package2.xml
En toute logique, l’installation devrait réussir (si toutes les variables d’environnement sont bien définies), et comme pour PDO, vous devrez ajouter une ligne dans le fichier php.ini.
Vous pouvez dès maintenant jouer avec php, pdo et oracle ;)
6 réponses à “Installer Oracle XE, PHP5, PDO, PDO_OCI, SNMP(D) sur Debian Etch”
j'avais aussi commencé à m'arracher les cheveux et je suis tombé sur ce site.Bien vu et ça marche sous la derniere mouture de debian :lenny.
Merci beaucoup
Je n'avais jamais réussi à trouver un site qui expliquait aussi bien comment installer PDO_OCI sur Debian.
Merci énormément, vos informations ont permis à mon équipe d'enfin venir à bout de ce problème.
Content de voir que cet article est utile ;)
Bien joué, j'ai passé des heures à essayer d'installer oracle xe, en dix minutes le tour est joué avec tes conseils
je suis particulièremen admirative de la lucidité d'esprit sont tu fais preuve :)
Bonjour,
Moi j’ai un petit soucis avec « pecl install pdo »
=>
No releases available for package « pecl.php.net/pdo »
Cannot initialize ‘channel://pecl.php.net/pdo’, invalid or missing package file
Package « channel://pecl.php.net/pdo » is not valid
install failed
une idée? d’avance merci