第8回 2003/2/26
復刻第38弾!!3年半まえ
━━━━━━━━━━━━━━━━━━━━━━ 2003.02.26 Vol.685 ━━━━━━ □■□ ■□■□■□■□■ 日刊「WEBのツボ!!」 □■□ http://www.soho-union.com/ ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ 配信部数 2923部 【○】本日のお題 「システムはオブジェクト指向、そしてRubyで」(#008) ━━━━ 福井修@Fsys まず前回 http://www.melma.com/mag/02/m00020302/a00000455.html #008となってい ましたが #007 の間違いでした。m(_ _)m ■ 旬の話題 から 阪神・淡路大震災被災地域の復興プロジェクトの一環で 「企業のWEBマスターや担当者、またクリエイターのためのWebソリューション講座」 が開催されています。http://www.hero.or.jp/eizo/semina/ 2月9日『 web が提供するユーザー体験の実態 』Macromedia 田中章雄 取締役&CTO を拝聴しました。 ・ リッチインターネットアプリが方向 ・ 高付加価値を追求しようとすると『 体験 (Experience) 』へ 原料 → 製品 → サービス → 体験 ~~~~ などのお話が印象に残っています。 で 結局 クライアントは 『 Flash 』って ことでした。さすがぁ # 講演では、スクリプトの話までは言及はありませんでしたが Flashの ActionScript は、ECMAScript準拠(要するにJavaScript。ECMAScriptは http://www-6.ibm.com/jp/developerworks/web/010803/j_wa-emca.html 参照) なのですが、当然 独自拡張されていて、なんと『オブジェクト指向スクリプト』だ そうで、なんかどっかで聞いたことがありそう^^;; 私は、Flash 知らないおじさんなのですが、ActionScriptは、使いこなしてやろうと 心に決めました。(2月9日会場では、稲木さんともお会いしましたし^^) 技術評論社の「WEB+DB PRESS」では、エアビートの羽生章洋氏が Vol.3,Vol.8,Vol10 で記事を書いておられたのを読み飛ばしていましたが、今読み返しています。 「クライアントは ActionScript、サーバは Ruby」で美しい『オブジェクト指向スク リプト』デュエット誕生ですな。ぱちぱちぱち。 では本題の Ruby CGIの続きです。 ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ ■■ Ruby CGI 入門 その4 ────────────────────────────────────── 今回は Ruby/eRuby を使ってDBアクセスする準備です。 ────────────────────────────────────── ■ Ruby/eRuby-DB 連携準備 ────────────────────────────────────── ・ 動作環境 ここのところ Rubyの入門用に敷居の低い Windowsでの説明をしてきました。 DB連携のテーマで、Windowsを続けようとすると お手頃DBには 1) Access 2) SQLServer/MDE 3) MySQL 4) PostgreSQL on Cygwin 5) PostgreSQL Windows Native などがあります。 SQLServer は、SQLServer Slammerとかありましたし。 http://itpro.nikkeibp.co.jp/free/ITPro/NEWS/20030126/1/ http://internet.watch.impress.co.jp/www/article/2003/0203/slammer.htm http://internet.watch.impress.co.jp/www/article/2003/0204/mi2g.htm こんな話題もあります『MSのサブライセンス禁じる判決、SQL Server顧客に影響も』 http://www.zdnet.co.jp/news/0302/22/nebt_15.html MySQLは、試してみましたが View ができないのでくじけました。(MAXは未Try) 結局、私はPostgreSQLを好むので、PostgreSQL の場合で説明します。 そうすると 4) PostgreSQL on Cygwin か 5) PostgreSQL Windows Native となり ます。 PostgreSQL on Cygwin については、 「WindowsユーザのためのPostgreSQL導入活用ガイド」谷田豊盛さん http://www.gihyo.co.jp/books/syoseki.php/4-7741-1627-0 が詳しいはず(谷田さんとは、何度も飲んでいる(彼も神戸)のですが、私はその 本はまだ買っていない ^_^;;)なので、そちらにおまかせ。 PostgreSQL Windows Native については ・ SRA、Windows版PostgreSQL『PowerGres』を発表 2002年11月27日 http://ascii24.com/news/i/soft/article/2002/11/27/640235-000.html ・ オープンソースデータベース「PostgreSQL」 Windows版 『PowerGres』のベータ版リリース開始のご案内 2003年1月30日 http://www.sra.co.jp/public/sra/topics/topics2002/030130.shtml 正式版は2003年3月中に発売開始予定なので、もうすぐですね。 これは、まだ私自身 賞味していないので今回のところは、Linux版 PostgreSQLで行 きます。(まあ オープンソーストレンドでは、Linux がメインなので) まあ Windowsから世界を拡げるのに「オープンソースなDBを使う為にLinuxへ」と いうのは、良いきっかけになると思います。 # Nimdaもひとつのきっかけだったでしょうが。 MacのOS X も BSD系なので Unix系と関わりなしには、もう生きてゆけないでしょう し :-p ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ ■ Linux環境準備 RedHat、Vine... 特に指定はありません。 ソースからコンパイル・インストールしますので、Defaultで入っている分は、 rpm -e .... などで、取り除きます。 ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ ■ Apacheインストール (2003/02/24現在 2.0.44) http://httpd.apache.org/download.cgi から tar.gzファイル を hogeへダウンロードし、展開、コンパイル、インストール ( 以下 (hoge) というのは 任意の場所 ) http://www.apache.jp/ など参照 $ su - # cd /usr/local/src # tar xvfz (hoge)/apache_2.0.44.tar.gz # cd apache_2.0.44 注)インストール場所指定ありの場合 # ./configure --prefix=/usr/local/apache --enable-module=so \ --enable-shared=max --enable-rule=SHARED_CORE 注)インストール場所指定なしの場合 # ./configure --enable-module=so \ --enable-shared=max --enable-rule=SHARED_CORE # make # make install ──────────────────────────────────── ■ Apache設定ファイル編集 Apacheのインストール場所/conf/httpd.conf に次の設定を追加・変更します。 # ServerName を定義 ServerName hoge # cgi で .rb .rhtml を動作させる指定 AddHandler cgi-script .rb .rhtml #AddDefaultCharset ISO-8859-1 ← 標準設定では文字化けするので AddDefaultCharset EUC-JP #← すべて2バイトEUCでよい場合 #LanguagePriority en da nl et fr de el it ja kr no pl pt pt-br ltz ca.. # ↓ # ja最優先に LanguagePriority ja en da nl et fr de el it kr no pl pt pt-br ltz ca.. # CGIを実行させたいディレクトリ領域に、オプション「ExecCGI」を追加order allow,deny allow from all Options +ExecCGI +Includes mod_ruby を使用する場合は、もうすこしいろいろ設定があります。 ここでは、mod_ruby は使いません。 ──────────────────────────────────── ■ Apache(再)起動 (# Apacheのインストール場所/bin/apachectl stop) # Apacheのインストール場所/bin/apachectl start ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ ■ Rubyインストール (2003/02/24現在 1.6.8) http://www.ruby-lang.org/ja/20020102.html から tar.gzファイル を (hoge)へダウンロードし、展開、コンパイル、インストール $ cd /usr/local/src $ tar fxzv (hoge)/ruby-1.6.8.tar.gz $ cd ruby-1.6.8 $ ./configure $ make $ su - # make install # ldconfig ──────────────────────────────────── ■ eRubyインストール (2003/02/24現在 1.0.3) http://raa.ruby-lang.org/list.rhtml?name=eruby から tar.gzファイル を (hoge)へダウンロードし、展開、コンパイル、インストール $ cd /usr/local/src $ tar fxzv (hoge)/eruby-1.0.3.tar.gz $ cd eruby-1.0.3 $ ./configure.rb --with-charset=euc-jp $ make $ su - # make install # ldconfig ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ ■ PostgreSQLインストール (2003/02/24現在 7.3.2) (http://osb.sra.co.jp/PostgreSQL/7.3/install.htmlなども参照) ftp://ftp6.jp.postgresql.org/postgresql/source/v7.3.2/ から tar.gzファイル を (hoge)へダウンロードし、展開、コンパイル、インストール $ su - # mkdir /usr/local/pgsql # chown postgres:postgres /usr/local/pgsql # cd /usr/local/src/ # tar xzvf postgresql-7.3.2.tar.gz # chown postgres.postgres -R postgresql-7.3.2 login:postgres $ cd postgresql-7.3.2 $ ./configure --enable-syslog $ make $ make install ─────────────────────────────────── ■ PostgreSQL実行環境設定 $ cd ~ $ vi ./bashrc export PG=/usr/local/pgsql export PGCLIENTENCODING=EUC_JP export PGLIB=$PG/lib export PGDATA=$PG/data export PATH=$PATH:$PG/bin export MANPATH="$MANPATH":$PG/man export LD_LIBRARY_PATH="$LD_LIBRARY_PATH":"$PGLIB" ・ 変更を反映させる $ source .bashrc ・ DB初期化 $ initdb -E EUC_JP ・ 設定ファイル編集準備 $ cd /usr/local/pgsql/data $ chmod 600 pg_hba.conf ・ 設定ファイル編集 $ vi pg_hba.conf host all *1 255.255.255.0 trust $ vi postgresql.conf fsync = false tcpip_socket = true silent_mode = true syslog = 2 ・ データベースの起動 $ pg_ctl start ─────────────────────────────────── ■ ruby-postgres のインストール これは PostgreSQL にアクセスするための Rubyの拡張モジュールです。 ・ ruby-postgres (2003/02/24現在 0.7.1) http://www.postgresql.jp/interfaces/ruby/index-ja.html から tar.gzファイル を (hoge)へダウンロードし、展開、コンパイル、インストール $ su - # cd /usr/local/src # tar xzfv (hoge)/ruby-postgres-0.7.1.tar.gz # cd ruby-postgres-0.7.1 ・ extconf.rb を実行。--with-pgsql-lib-dir と --with-pgsql-include-dir で PostgreSQL のライブラリ及びインクルードファイルがインストールされて いる場所を指定します。 # ruby extconf.rb --with-pgsql-lib-dir=/usr/local/pgsql/lib \ --with-pgsql-include-dir=/usr/local/pgsql/include # make # make install # ldconfig 【注】makeに成功しても、実行時にlibpqライブラリが見つからずにエラーになる場 合があります。この場合は、LD_LIBRARY_PATH環境変数で、libpqライブラリの位置 を指定することで対処できますが、make時にあらかじめpath位置を埋め込んでlink することで、設定モレに対処できます。 LD_RUN_PATH環境変数に libpqのpath位置をセットしてmakeします。 $ env LD_RUN_PATH=/usr/local/pgsql/lib make ────────────────────────────────────── 準備だけで 今回は、おしまいです。次回をお楽しみに。 【プロフィール】 福井 修 ( FUKUI Osamu )o-fukui@po.iijnet.or.jp 福井システムリサーチ http://fsys.net/ 主幹。システム構築歴25年。 日本リヌクス協会、神戸商工会議所、情報処理学会 会員 関西ソーホ・デジタルコンテンツ事業協同組合員 デジタルハリウッド三宮校 Java講師