その他
    ホーム技術発信DoRubyRailsでOracle ~ インストール編

    RailsでOracle ~ インストール編

    この記事はアピリッツの技術ブログ「DoRuby」から移行した記事です。情報が古い可能性がありますのでご注意ください。

    TrinityTです。

    最近、Rail2.2+Oracle10gであるWebアプリを構築する機会がありました。

    この組み合わせで行われている案件はかなり少ないらしく、ネットや書籍で探しても情報があまり無いために大変苦労しました。

    ここで得られたノウハウをもとに、RailsでOracleを扱う際の注意点について解説しようと思います。

    初回となる今回は、各種ライブラリインストールの手順を説明します。

    ※自分のブログ(http://d.hatena.ne.jp/TrinityT/)に書いた内容に加筆してまとめています。

    前提

    基本情報

    ・DB:Oracle10g Release2 Express Edition ※インストール方法は割愛します。

    ・サーバOS:CentOS5.2 ※仮想環境上に構築(192.168.0.11)

    ・クライアントOS:CentOS5.2

    ・APサーバ:Passenger2.1

    Rails+Oracleで動かすのに必要なライブラリ

    ・Ruby-OCI8:Ruby用のOracleコネクタ

    ・activerecord-oracle_enhanced-adapter:Rails用アダプタ

    ・Oracleクライアントモジュール:各種OS用バイナリ

    手順

    Oracleクライアントモジュール

    今回はXEのクライアントモジュールを使用します。

    注意点:

    ・本番で使用する場合は製品版のクライアントモジュールを使用してください。

    ・DBサーバをクライアントとなるOS上にインストールした場合は、通常同時にクライアントもインストールされるため本設定は必要ありません。

    ・他のOS用に、Windows用や、Linux用Mac用と各種インストーラがあります。

    1.DLサイトからoracle-xe-client-10.2.0.1-1.0.i386.rpmをダウンロード

    2.RPMインストール

    rpm -ivh oracle-xe-client-10.2.0.1-1.0.i386.rpm
    
    

    3.環境変数設定

    .bash_profileなどに以下を追記。※パスは適宜修正してください。

    export ORACLE_HOME=/usr/lib/oracle/10.2.0.1/client
    export PATH=${ORACLE_HOME}/bin:${PATH}
    export LD_LIBRARY_PATH=${ORACLE_HOME}/lib:${LD_LIBRARY_PATH}
    
    

    4.環境変数適用

    • Windows:再起動
    • Linux:再ログイン or sourceコマンド
    Ruby-OCI8インストール

    ※2009/5/1時点で、デフォルトではunstableの2.0系がインストールされてしまうため、安定版1.0系を引数で指定してください。

    gem install ruby-oci8 -v=1.0.4
    
    
    Oracleアダプタインストール

    Oracleアダプタは2種類あります。

    ・activerecord-oracle-adapter:旧アダプタ

    ・activerecord-oracle_enhanced-adapter:上記アダプタのLOBのロック不具合などの点を改善したアダプタ。

    2009/5/1現在ではOracleEnhancedAdapterを使う方が良いと思います。旧アダプタのメンテナもEnhancedに移った模様(?)です。

    gem install activerecord-oracle_enhanced-adapter
    
    
    Oracleサーバ側の設定

    インストール済のOracleサーバに「ユーザ名:oracle、パスワード:oracle」のユーザを作成しておきます。(sql*plusや管理コンソールなどを利用)

    ※ちなみにOracleXEサーバではOracleインスタンスは「xe」に固定されます。

    これでインストールは一通り完了です。

    次回はPassengerでOracle+Railsアプリを動かす際の要点について説明します。