- OS: Mac OS X Leopard (10.5)
- MacBook (intel)
- Terminalはデフォルト
Xcode3.0をインストール
Macを買うと付いてくるディスクよりXcode3.0をインストールする。
これをいれることでMacにDevelop機能がいろいろと追加されて便利。
多少ディスクスペースはつかうものの、入れていて損はない。
CDなくした場合はAppleのサイトよりDLできたはず。
Terminal.appをつかってRails環境をインストール
Terminalをつかっていろいろインストールします。
MacPortとRubyGemという二つのインストーラを使います。
これらは登録された名前のものを呼び出すとそれをインストールしてくれるエージェントみたいなものです。
二つ使うのは野菜は八百屋、魚は魚屋みたいな感じ。MacPortはスーパー。RubyGemはRuby専門店ってとこでしょうか。
なのでMacPortはMacに関するもの。RubyGemはrubyに関するものと考えていいでしょう。
まずはMacPortをインストールしなくてはいけません (もう頭がめちゃくちゃw)
- http://www.macports.org/よりmacportをDL&インストール
- ~/.bash_profile(ない場合は作成)に以下を追加し、portコマンドにパスを通す
export PATH=~/bin:/opt/local/bin:/opt/local/sbin/:$PATH
~/.bash_profileを開くにはTerminalにて
$ cd ~/ $ open .bash_profile
ファイルがなかったら
$ pico .bash_profile
コピペして”Ctrl+O(オー)”、そのままEnterで保存。”Ctrl+X”で終了。
- ターミナルにて以下を入力し、MacPortを最新情報にアップデート
$ sudo port selfupdate
- MacPortを使ってrubygemをインストール (時間かかる)
$ sudo port install rb-rubygems
- RubyGemを使ってrailsをインストール
$ sudo gem install rails
- RubyGemを使ってsqlite3をインストール
$ sudo gem install sqlite3-ruby
- MacPortを使ってImageMagickをインストール (時間かかる、30分くらいかかるかも)
$ sudo port install ImageMagick
- RubyGemを使ってRMagickをインストール
$ sudo gem install rmagick
サーバー編
ApacheのモジュールとしてRailsを構築
Phusion Passenger(http://www.modrails.com/)を使います。
以下http://www.modrails.com/install.htmlより抜粋
- RubyGemよりpassengerをインストール
$ sudo gem install passenger $ sudo passenger-install-apache2-module
- passenger-install-apache2-moduleを実行するといろいろきかれます。
Press Enter to continue, or Ctrl-C to abort. > Enter (省略) Press Enter to continue. [Enterを押す前に] 1. 上の太字をコピー(LoadModule〜という白い3行のやつ) 2. Finderにて"Shift+Cmd+G"して/etc/apache2と入力httpd.confを開く 3. LoadModuleといっぱい書かれている下に(1)をペースト。 4. Terminalに戻る > Enter
最後までいったら”Ctrl+D”でターミナル終了
- VirtualHostを設定します。さっきのhttpd.confに下記を設定 [あくまで設置例です]
NameVirtualHost *:80ServerName localhost DocumentRoot /Users/ユーザー名/Sites/public_html ServerName アプリ名(半角英数) DocumentRoot /Users/ユーザー名/Sites/アプリ名/public
Terminalにて
$ cd /etc $ sudo pico hosts
127.0.0.1 localhostの行の後ろに”(半角スペース)アプリ名”を入れます。そのまま保存
これはlocalhostとURLバーに入れた場合は普通にpubli_html内サーバールートとして動きます。
そしてアプリ名をURLバーに入れるとrailsフォルダ内がrailsアプリとして動きます。127.0.0.1というIPが「自分」という暗黙のルールになっていて、
/etc/hostsというファイルにてlocalhostはこのIPに予約されていて、「アプリ名」もこのIPに予約。
(ちなみにここにgoogle.comといれるとgoogleではなく自分のpublic_htmlが表示される。) - apacheを再起動/起動
$ sudo apachectl -t> Syntax OKと表示されたら $ sudo apachectl restart
railsでhello world
VirtualHostにてSites/アプリ名/publicとしたので、今回はhelloWorldというアプリを作成しましょう。
httpd.confに以下を追加。
ServerName helloWorld DocumentRoot /Users/ユーザー名/Sites/helloWorld/public
では最速で作っていきます。
Terminalにて
$ cd ~/Sites //サイトフォルダに移動 $ rails helloWorld //helloWorldアプリ作成 $ cd helloWorld //helloWorldに移動 $ ruby script/generate contoller HelloWorld //HelloWorldコントローラー作成
Finderにてサイトフォルダ内にhelloWorldができていると思います。
また、helloWorld内にapp/controllers/hello_world_controller.rbができているのでこれを編集します。
class HelloWorldController < ApplicationController def index @message = "Hello World" end end
以上に内容を差し替える。
これはHelloWorldの挙動を指定するところで、
def indexは単純にhello_worldでアクセスされたときに表示する挙動
@message = “Hello World”はView(後述)でmessageを呼ぶとHello Worldとして表示されます。
次にViewを作成します。
アプリ/app/viewsにhello_worldフォルダ内にindex.rhtmlを作成します。
とだけ入力して保存。
見てみましょう。
Terminalにて
$ cd /etc $ sudo pico hosts 127.0.0.1 localhost helloWorldと編集 $ sudo apachectl restart
http://helloWorld/hello_worldにアクセスする。
これでrailsが動いているところまで確認できました。