WindowsでRuby on Railsのサーバを運営させる方法

RoR熱は下がってきている?

Ruby on Railsについては一時期の熱狂的なブームは収まってきたように感じてます。
 
Twitter、Ruby on Railsを放棄か | TechCrunch Japan
TwitterはRuby on Railsを放棄する予定はない(今のところ) - F.Ko-Jiの「一秒後は未来」
 
Railsの成功例として象徴的だったTwitterでこんな記事が出たこともその兆しだったのかもしれませんね。

でも、全然使えると思うんですけど私

とはいえ、私がここ1、2年で断続的に自分で確かめた限りでは、
Web+DBベースのシステムをお手軽に構築する手段として、
現状やはりRailsに勝る開発フレームワークはないんじゃないかと
(そんなに沢山試したわけではないですがw)思ってます。
パフォーマンス2の次で良いなら。
 
特に有利な利用シーンは、自分の会社の中で利用するWeb+DBシステムの内製化、ですね。
以下の記事も触発されました。
 
ヒトもカネもなくともシステム内製はできる | 日経 xTECH(クロステック)
 

自社の社内DBをRoRで構築する事の検討

自社の社内Web+DBサーバに、私が求める条件は以下。

社内の遊休PCに導入できること
あんまり古いと困りますが
OS
Windows XP Pro
(Homeも可)
Web
Apache
IISはお手軽さがない、周辺アプリも選択肢が制限されて×)
DB
MySQL
(バックアップツールまでちゃんと手に入る、あとODBCドライバもある)
その他
VB.NET開発のソフトと問題なく連携できること
ODBC経由でMySQLと通信、Apache経由でHTTP通信)

 
私の場合同様ポリシーで納品システムもやります。
その場合MySQLはライセンス購入が別途増えます。

独断で選ぶ、Win RoRでのWeb+DBサーバ開発に最適なソフトウェア群 ※あくまで初心者版w

で、この条件に合う「実践的なWindows Ruby on Railsサーバ」を構築するのに、
私が今ならこの組み合わせがベスト!と思っているソフトウェア構成が以下。
#昔から定番のものもありますが
 
でも実は、この構成はあくまで私が「いける!」と思っているだけなのがミソ(爆)。
私も今年度、これらの構成でのシステム構築の実績が、やっと出始めたばかりの時期でして、今。
だから人様に堂々と宣伝できるほどこなれてきてる訳ではないんですが…
私の勉強の意味も強く、あえて晒させていただきます。
突っ込みどころがあったらバンバン突っ込んでいただけますと助かります。
 
だからあくまで真似される方は自己責任でお願いします。
以下の情報を用いて何かあっても、私としては責任取りませんです。
でも結構イケてると思うんだよなあ。

InstantRails

 
http://instantrails.rubyforge.org/wiki/wiki.pl?Instant_Rails
 
Apache + MySQL + Ruby + Rails + PHP + 管理ツールが一度に導入できるパッケージ。
私は一番これが慣れました。
Rails2.0のメジャーバージョンアップに合わせて、InstantRailsも最新は2.0ですが、
私はちょっと遅れてRails1.2.3ベースのInstantRails 1.7を用いています。
 
(2008/12/23 00:41 追記)---- ココカラ ----

ActiveScaffold

 
http://activescaffold.com/
 
Railsの流行のプラグイン、ActiveScaffold。これは使いましょう、かなりお得です。
デザインに凝る必要のない定番管理画面など、これがあれば相当楽です。
(2008/12/23 00:41 追記)---- ココマデ ----

Aptana Studio

 
Aptana
 
これは1.0をベースに最新アップデートして使っています。
RadRailsが超強力、コード補完もレベルアップしてます。
日本語化はPleiades Eclipse 日本語化 | MergeDoc Projectでやってます。

Subversion

 
subversion.tigris.org
 
こちらは定番、私はsvnservdでの運用です。
 
以上を中心に他にも色々使っています。が、その辺はまたおいおい。

独断で選ぶ、Win RoRでのWeb+DBサーバ開発を初心者が習得するための参考書籍 ※あくまで初心者w

さらに、これらのサーバ開発を独学で勉強しようとして、
私もネットだけだと何を切り口にすれば理解が進むのか、結構困りました。
ネットだと、これがよさげ!というソフトには割に容易に到達するのですが、
その使い方の全体像まで一通り把握できた!とはとてもいえない状態で立ち往生してしまいます。
 
で、私が採った策は
 
「お金に糸目をつけず、書籍を大人買い
 
ですw
Amazonざっくり検索と、名古屋だと大須の三洋堂シグマに乗り込んで片っ端から立ち読み検索です。
相当数投資をしましたが…その中で実際に「これはためになった!」という書籍を以下にまとめ。

くどいようですが、いやほんと全部自費で買いましたw

Ruby

定番の

プログラミングRuby 第2版 言語編

プログラミングRuby 第2版 言語編

プログラミングRuby 第2版 ライブラリ編

プログラミングRuby 第2版 ライブラリ編

も購入しましたし他のレシピ本も購入しましたが、それよりも今年出た以下の「初めてのRuby」が今は一番良いですね。キリン本。
初めてのRuby

初めてのRuby

↑これ1冊読むとRubyが弄りたくて仕方がなくなりますw
個人的にはvimをインストールしておいてコマンドプロンプトirbrubyを弄るのがとっても気持ち良い時期がありました。

Rails

結構悩ましいです、Rails本はどれで勉強するか、って。
RubyRailsでは1.8系で行く事になるので悩みませんが、Railsは既に2.0系と1.2系に分かれています。
今始めるならば2.0系がいいんだと思います。
でもRailsの解説本は、著者ごとに採用バージョンが違う点と、フレームワークに落とし込まれたとはいえ
まだまだRailsの開発は「開発者の好みに合わせた順番」で構築ができるんですね。
先にDB作るとか、先にコントローラーから入るとか…
その辺のばらつきがあって、沢山の本を読み比べてしまうと
「Aの本のステップで構築して、Bの本の処理を追加したのだが何だかうまく動かない!」
という事態が結構発生しました。え、単に私の読みすぎ?
 
なのでRailsはなるべくその時の最新の本で、1冊を丹念に読み込むスタイルが良いのかなと思います。
その中で、ちょうどInstantRails1.7ベースで書かれた本があったのでこれをまず推薦します。

Ruby on RailsによるWebアプリケーション・スーパーサンプル

Ruby on RailsによるWebアプリケーション・スーパーサンプル

更に、Rails2.0対応も含んで落ち着いたレシピ本が2冊出たのでこれを推薦。
Railsレシピブック 183の技

Railsレシピブック 183の技

Ruby on Rails 逆引きクイックリファレンス Rails 2.0対応

Ruby on Rails 逆引きクイックリファレンス Rails 2.0対応

あと、以下の「The Rails Way」を先週買ったんですが、私としては初めて
「で、結局Railsアプリケーションが起動した直後はどんな順番で何が動くの?」という
初心者の疑問に答えるべく、ブート時の動きを第1章で説明してくれた本で
かなりうれしかったので最後に推薦。
#「コード嫁」とは言われなかったww
Rails Way (Professional Ruby Series)

Rails Way (Professional Ruby Series)

MySQL

MySQLはそれほど沢山は買ってないのですが、この本がSQLやコマンドのリファレンスも載っていて
行儀が良かったのでこれをまず推薦。

MySQL 徹底入門 第2版

MySQL 徹底入門 第2版

更に次がとても大事。実際にMySQL運用をする際の、バックアップをどのコマンドで実装するか、
ダンプはどれ、レプリケーションはどうやる手があるのか、などに言及してくれている
貴重な本が以下のこれ。MySQLを実戦で使うヒトは必読だと思います。非常に良著。
これを手に入れてなかったら、私は本番システムをMySQLでやる気は出なかったです。
現場で使える MySQL (DB Magazine SELECTION)

現場で使える MySQL (DB Magazine SELECTION)

Apache

これは定番。でも初めてちゃんとApache本読んだ。先週末w

Apacheハンドブック

Apacheハンドブック

#↑あれ?第2版しか出ない、第3版が既にありますちゃんと第3版でした。2003年発刊。

Subversion

これも定番。

入門Subversion Windows/Linux対応

入門Subversion Windows/Linux対応

 
とりあえず以上です。

実際には、私はこのWeb+DBサーバの運用では保守自動化でVBScriptなんかも使いました。
その辺も、今後記事に書いていきたいなと考えております。