Add comment

Sep 13 2006
User: cedric
Category: Ruby on Rails
Tags:

Rails+Oracle+Debian+fastcgi

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-universal

Ensuite la configuration se fait avec

/etc/init.d/oracle-xe configure

L’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_PATH

au fichier /etc/profile est nécessaire pour que tout fonctionne correctement. rechargez la configuration en faisant:

source /etc/profile

Pour le moment comme je n’utilise pas de bdd locale j’ai stoppé le serveur oracle par:

/etc/init.d/oracle-xe stop

Mon 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=mabdd

La 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/mabdd

Aprè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 …




Back
Log in

Quick links

Themes

Localization

Search

weather


  • metric us

gallery

Flickr

Last comments

  • no new comments

Categories

  • categories

nabaztag

  • message

    left
    right
    voice
    speed
    pitch

hcard