Fervent utilisateur de [Ruby on Rails](http://www.rubyonrails.com), j’avais besoin au boulot de faire une application pour acceder à une BDD [oracle](http://www.oracle.com). Pas mal de [bagarre pour trouver la doc adéquate](http://www.google.ch/search?q=oracle+debian&ie=utf-8&oe=utf-8&rls=org.mozilla:fr:official&client=firefox-a), mais au final c’est bon et ca fait plaisir de pouvoir utiliser Rails dans un environnement professionnel ou le perl customisé par divers obscurs consultants devient vite incompréhensible.
Partant du principe que vous avez une Debian Sarge installée et fonctionnelle, Apache2 configuré et en fonction ainsi que [fastcgi](http://wiki.rubyonrails.org/rails/pages/FastCGI) [howto](http://www.howtoforge.com/ruby_on_rails_apache2_fastcgi_debian_p4).
Pour installer oracle j’ai suivi ce [tutorial](http://www.cure.nom.fr/blog/archives/87-Oracle-Express-Edition-XE-et-Debian-sarge.html) en ajoutant
deb http://oss.oracle.com/debian/ unstable main non-freeà mon fichier /etc/apt/sources.list et installé avec la commande:
apt-get update;apt-get install oracle-xe-universalEnsuite la configuration se fait avec
/etc/init.d/oracle-xe configureL’ajout de:
export ORACLE_HOME=/usr/lib/oracle/xe/app/oracle/product/10.2.0/server export PATH=$ORACLE_HOME/bin:$PATH export LD_LIBRARY_PATH=$ORACLE_HOME/lib:$LD_LIBRARY_PATHau fichier /etc/profile est nécessaire pour que tout fonctionne correctement. rechargez la configuration en faisant:
source /etc/profilePour le moment comme je n’utilise pas de bdd locale j’ai stoppé le serveur oracle par:
/etc/init.d/oracle-xe stopMon problème était de me connecter à une BDD distante avec le sid mabdd situé sur l’hôte http://www.xxx.yyy.zzz
Ce [tutorial](http://wiki.rubyonrails.org/rails/pages/HowtoConnectToOracle) est très utile notamment pour ajouter les [drivers ruby oci8](http://rubyforge.org/projects/ruby-oci8/)!
J’ai créé une application rails avec la commande:
rails mytest
Pour la configuration de Apache2 avec fastcgi voila mon fichier /etc/apache2/conf.d/mytest.conf
Alias /mytest /home/monrep/mytest/public <Directory /home/monrep/mytest/public> Options ExecCGI FollowSymlinks AllowOverride All SetEnv LD_LIBRARY_PATH=/usr/lib/oracle/xe/app/oracle/product/10.2.0/server/lib SetEnv ORACLE_HOME=/usr/lib/oracle/xe/app/oracle/product/10.2.0/server SetEnv ORACLE_SID=oss FastCgiConfig -initial-env CPATH=/usr/lib/oracle/xe/app/oracle/product/10.2.0/server \ -initial-env LD_LIBRARY_PATH=/usr/lib/oracle/xe/app/oracle/product/10.2.0/server/lib \ -initial-env ORACLE_HOME=/usr/lib/oracle/xe/app/oracle/product/10.2.0/server \ -initial-env ORACLE_SID=mabddLa configuration reprend les chemin ajouté dans /etc/profile.
dans le fichier /home/monrep/mytest/public/.htaccess remplacez:
RewriteRule ^(.*)$ dispatch.cgi [QSA,L]par
RewriteRule ^(.*)$ dispatch.fcgi [QSA,L]Le fichier /home/monrep/mytest/config/database.yml se présente comme ça:
development: adapter: oci username: monusername password: monpassword host: www.xxx.yyy.zzz/mabddAprès un redémarrage du serveur apache tout doit être fonctionnel.
J’ai préféré l’installation de [oracle-xe](http://www.oracle.com/technology/software/products/database/xe/htdocs/102xelinsoft.html) au lieu de [instantclient](http://www.oracle.com/technology/tech/oci/instantclient/index.html) pour avoir aussi un serveur oracle en local au cas ou mais le principe reste le même.
comments : 1 Add comment

posted : Dec 04 2006 by : Chris
Merci, ça ma bien aidé !! Je coinçait sur les var d’environnement de fastcgi …