xamppでrailsを動かしてみる

なんか必要に迫られてxamppでRailsを動かさなきゃならなくなったのでメモ書き
MacでRailsやるなら買ってきて電源入れたら全部入ってるので楽なのですが、Windowsでやるにはいろいろ入れないといけないのですよ。
最低限必要なのはコレ
・Ruby
・Rails
・Apache
・sqliteかMySQL
で、web系の開発するならApacheとMySQLとPHPとか丸ごとセットになってるxampp使うのが楽なのでxamppがオススメ
(ちなみにインストーラじゃないやつの方が前さん的にはオススメ)
ということでxamppでrailsやるための手順を説明します。

xamppのインストール

とりあえずはxamppダウンロードしてくる。
現時点でのバージョンは1.6.6aっぽいのでそれをダウンロードしてとりあえず今回はcドライブ直下に解凍する。(c:¥xampp)
念のためc:¥xampp¥xampp-control.exe を起動し、apache動かしてみる

でブラウザで http://localhost/ にアクセスしてこんな画面になったらおkなので「日本語」のとこクリックして終わり

RubyとかRailsとかのインストール

次にRuby入れます。
とりあえずWindowsならOne-Click Ruby Installer for Windowsがオススメなのでダウンロードしてインストールする。
インストールフォルダはどこでもおkなのでデフォルトのc:¥rubyで入れてみる。
でインストールが終わったらコマンドプロンプトで
>ruby -v
とか
>gem -v
とかやってなんかバージョンみたいなの出てきたらおk
もしそんなコマンドねぇよって怒られたらインストール失敗かパスが通ってないので確認すること。
ちなみにruby関係のやつはgemを使って簡単にインストールできます。gemについて詳しく知りたい人はググれ
でRailsを入れるわけですがその前にgemのバージョン古いかもしれないのでアップデートしとく
以下全部コマンドプロンプトで
>gem update –system
念のため今入ってるやつも全部アップデート
>gem update
ちなみにプロキシサーバー経由の人はgemやる前に
>set http_proxy=http://プロキシサーバー:ポート
ってやること
gemのアップデートができたら次は
>gem install rails
ってやるとrailsがインストールされる
最近のRailsはデフォのDBがsqlite3なのでsqlite3も入れる
まずココからWindows版のsqlite3とsqlite3のdllをダウンロードしてきて、適当にパスの通ったところにコピる。
今回はc:¥ruby¥bin にコピーしとく
rubyからsqliteを使えるようにする
>gem install sqlite3-ruby
これでとりあえずrailsの環境構築終わり
c:¥xampp¥rails_apps
とかフォルダ作ってそこで
>rails app_name
とかやったらアプリ作れるはず
試しに
>rails maesan
>cd maesan
>ruby script¥generate scaffold note title:string content:text
>rake db:migrate
>ruby script¥server
ってやってブラウザで http://localhost:3000/notes ってやればアプリが出来上がってることが確認できるはず。

ApacheでRailsアプリを動かす

最後にようやくxamppでrailsする方法の説明
C:¥xampp¥apache¥conf¥httpd.conf
を適当にエディタで開く
#LoadModule rewrite_module modules/mod_rewrite.so
ってトコのコメントはずす
LoadModule rewrite_module modules/mod_rewrite.so
適当なところに以下を追加
(たぶん<IfModule alias_module>に入れるのが正しいかも)
Alias /rails “/xampp/rails_apps/app_name/public/”
→今回の例だとapp_nameのとこmaesanで
以下はドコでもイイので追加
<Directory "/xampp/rails_apps/app_name/public">
  Options +ExecCGI +FollowSymLinks
  AllowOverride all
  Order allow,deny
  Allow from all
  AddHandler cgi-script .cgi
</Directory>

でapacheは再起動しとく
次にRailsアプリの設定
publicフォルダに.htaccessを作る必要がある。
(Railsの2.1くらいから何か生成されなくなったっぽい)
Railsアプリフォルダ直下のREADMEってファイルに.htaccessのサンプルが書いてあるからそれをコピって.htaccessファイルをpublicフォルダに作成する。
以下の3行はコメントアウト
AddHandler fastcgi-script .fcgi
AddHandler cgi-script .cgi
Options +FollowSymLinks +ExecCGI

以下の行を追加
RewriteBase /rails/
publicフォルダのdispatch.cgiの1行目を
#!c:/ruby/bin/ruby

#!ruby
に変更する。
これで http://localhost/rails/ でRailsのアプリにアクセスできるようになります。
今回の例だと http://localhost/rails/notes でscaffoldで作ったアプリが使えます。

FastCGI使う

とりあえずApacheで使えるようになったけど、使ってみたらわかると思うのですが、遅いです。例えるならOffice 2008のExcelでグラフ描くくらいイラっとしますので速くするためにFastCGIに対応させます。
まずはFastCGIのモジュールをココからダウンロードしてきて c:¥xampp¥apache¥modules に保存します。
httpd.confのそれらしいところに以下を追加
LoadModule fastcgi_module modules/mod_fastcgi-2.4.6-AP22.dll
また、さっき追加したDirectoryのところの
AddHandler cgi-script .cgi

AddHandler fastcgi-script .fcgi
に変更する。
apacheを再起動しつつ
railsアプリの.htaccessを変更
RewriteRule ^(.*)$ dispatch.cgi [QSA,L]

RewriteRule ^(.*)$ dispatch.fcgi [QSA,L]
に変更し
dispatch.fcgiの一行目をさっきと同様に
#!ruby
に変更する。
これで多分動くはず
fastCGIで失敗する場合は理由はよくわからんけど、
c:¥ruby¥lib¥ruby¥site_ruby¥1.8¥fcgi.rb
をpublicフォルダにコピったら動いたりした。

Rails of Ruby on Rails ~Case of LOCUSANDWONDERS.COM~
Plan de Sens 清水 智雄
毎日コミュニケーションズ
売り上げランキング: 51336
おすすめ度の平均: 4.0

4 内容としては良いのですが
5 そのチャレンジを評価したい
5 サンプルが実践的
4 Ruby on RailsをGUIで開発してブラウザで公開できる本
1 装丁が極悪

Filed under: Programming — maesan 10:26 PM
 iTunes Store(Japan)
 iTunes Store(Japan)
 iTunes Store(Japan)
 iTunes Store(Japan)
 iTunes Store(Japan)