Mac on Rails

MacRoR環境構築

Railsが動くまでの環境を構築

Railsが1.8だったのでバージョンアップ

$ sudo gem update --system
$ sudo gem update
$ sudo gem install rails
$ ruby -v && rails -v
ruby 1.8.7 (2009-04-08 patchlevel 160) [i686-darwin9]
Rails 2.3.3

Rubyの公式サイト見ると最新版は1.9.1だけど、
railsは最新版の2.3.3になった。
rubyのバージョンはMacに依存する感じがするからあげるのやめておく。

Apache+MySQL環境はXAMPP環境を利用することにする。
ドキュメントルートにプロジェクト作成

$ rails -d mysql gtd

DB3種類作って、mysqlからワイルドカードで特権を与えたユーザーを作る。
conf/database.ymlを編集
動作確認

$ rake db
<||
エラーなければOK
だけど、問題発生。
>|
$ script/server
Rails requires RubyGems >= . Please install RubyGems and try again: http://rubygems.rubyforge.org
|<
へ?
MacPortsっぽいので、
>|
$ sudo port install rb-rubygems
|<
ということは、最初のgem updateはMac側をあげたことになるので、
>|
$ sudo /opt/local/bin/gem update --system
$ sudo /opt/local/bin/gem install rails
|<
やばい、rubyとgemとrailsがmacとmacportsで二重環境になってる。
macports側でやってけば、まぁいいか。
>|
$ script/server 
=> Booting WEBrick
=> Rails 2.3.3 application starting on http://0.0.0.0:3000
=> Call with -d to detach
=> Ctrl-C to shutdown server
[2009-08-26 19:28:06] INFO  WEBrick 1.3.1
[2009-08-26 19:28:06] INFO  ruby 1.8.7 (2009-04-08) [i686-darwin9]
[2009-08-26 19:28:06] INFO  WEBrick::HTTPServer#start: pid=4015 port=3000
|<
OK
>|
$ script/generate scaffold task name:string complete:boolean
$ rake db:migrate
!! The bundled mysql.rb driver has been removed from Rails 2.2. Please install the mysql gem and try again: gem install mysql.
rake aborted!
no such file to load -- mysql
|<
怒られたので
>|
$ sudo gem install mysql -- --with-mysql-config=/Applications/XAMPP/xamppfiles/bin/mysql_config
|<
ヘッダーファイルが足らないっっぽい。
面倒なので、mysql環境を構築する
この時点でxampp環境がいらなくなる。
>|
$ sudo port install mysql5
$ sudo /opt/local/bin/mysql_install_db5 --user=mysql
$ sudo launchctl load -w /Library/LaunchDaemons/org.macports.mysql5-server.plist
|<
phpmyadminが使いたいのでxamppのphp.iniを編集(mysql.default.socketをportでインストールした方へ設定)
付属のphpmyadminだと動作しないので、~/*/Sites/にphpmyadminをダウンロードして設置する。
mysqlのrootにパスワードを設定しないと動作しないので
>|
/opt/local/lib/mysql5/bin/mysqladmin -u root password '*****'
|<
で設定。これでphpmyadminから接続できた。


気を取り直して(rakeが/usr/bin/rakeを見ていたので、フルパスでやる)
>|
$ /opt/local/bin/rake db:migrate
|<
やっとできたぁ。script/serverして、http://localhost:3000/tasks/もOK