在这里,写一下一个纯净版的操作系统搭建rails3开发环境的全部步骤。备忘。
?
一,一般性工具,可略过不看。
?
1,安装textmate,help菜单下面的enhanced terminal usage ,创建链接。
?
2,安装iTerm2,用于多窗口操作shell
?
3,安装navicat premium,用于操作mysql数据库,也可用phpmyadmin。
?
4,安装虚拟机以及相应操作系统windows,建立sqlserver2005 Express数据库,用于与windows下的老版本数据库对接。
?
5,版本控制与bug跟踪:公司内部项目,请登陆内部redmine,使用texmate的svn插件。开源项目则请登陆github等。
?
二,安装ror相关工具
?
* 请将xxx替换成你的用户名。
?
1,安装xcode开发环境
?
http://developer.apple.com/technologies/xcode.html
?
有一次安装的时候卡在中途,退出重启操作系统即可。
?
2,安装git
?
http://code.google.com/p/git-osx-installer/
?
3,安装homebrew
?
http://github.com/mxcl/homebrew?
?
ruby -e "$(curl -fsSL https://gist.github.com/raw/323731/install_homebrew.rb)"
?
4,安装mysql
?
brew install mysql
?
然后,初始化与启动mysql
?
mysql_install_db
mysql.server start
?
随操作系统自动启动mysql
?
一个使用可视化界面操作的方法是,从mysql官网下载mysql-5.1.51-osx10.6-x86_64.dmg
?
加载,打开MySQLStartupItem.pkg与MySQL.prefPane进行配置。这样mysql就可以自动随机启动。
?
另一个办法则是写一个配置文件,可参考:
?
sudo launchctl load -w /Library/LaunchDaemons/com.mysql.mysqld.plist
?
http://www.javaeye.com/wiki/OSX/1632-osx-startup-script
?
http://blog.nroed.com/2010/10/13/mac-os-%E4%B8%8B%E5%BC%80%E6%9C%BA%E5%90%AF%E5%8A%A8mysql/
?
5,安装imagemagick
?
brew install imagemagick?
?
6,安装rvm(ruby版本管理工具)
?
安装rvm可以直接使用作者的网址的快捷安装方法。
?
参考:http://rvm.beginrescueend.com/
?
使用一句话命令:
?
bash < <( curl http://rvm.beginrescueend.com/releases/rvm-install-head )
?
安装rvm的时候,记得按照命令符提示做一些修改。
?
修改配置文件,mate ?/etc/profile
?
在行尾插入:
?
[[ -s "$HOME/.rvm/scripts/rvm" ]] && source "$HOME/.rvm/scripts/rvm"
?
退出shell,并重新进入。
?
?
以上6个步骤是台湾xdite推荐的最佳实践,的确也是最佳实践,参考:http://blog.xdite.net/?p=1795
?
但是我需要安装的是ree与nginx【生产服务器上是这样的配置】,所以接下来的步骤开始不同。如果是使用apache与ruby开发的,请参考xdite推荐的最佳实践。
?
7,切换操作系统的ruby版本到ree之下。
?
直接通过rvm安装ree,
?
rvm install ree
?
也可以直接通过homebrew来安装ree。
?
brew install ruby-enterprise-edition
?
然后切换操作系统默认的ruby环境到ree,命令如下:
?
?rvm --default ree
?
8,创建ruby版本管理配置文件,GEM Set
?
如果一不小心,跳过此步骤,后续的操作系统引用的gem source就非常混乱。并且在安装的时候会提示错误。请务必操作此步骤。我的GEM Set命名为rails3。命令如下所示:
?
rvm gemset create rails3
?
加载rails3这个环境:
?
rvm ree@rails3
?
可通过 rvm info命令显示更多的关于rails3这个开发环境的信息。
?
9,开始安装nginx与passenger
?
安装nginx比较简单:
?
brew install nginx
?
然后,
?
gem install passenger
?
安装passenger的nginx模块。
?
passenger-install-nginx-module
?
打开nginx的默认安装目录:
?
mate /opt/nginx/
?
找到这个目录下面的conf目录的配置文件,nginx.conf
?
?
确保如下所示:
?
??http {
?? ? ?...
?? ??passenger_root /Users/xxx/.rvm/gems/ree-1.8.7-2010.02/gems/passenger-3.0.0;
?? ? ?passenger_ruby /Users/xxx/.rvm/wrappers/ree-1.8.7-2010.02/ruby;
?? ? ?...
??}
?
passenger_ruby如果不是指向ree的ruby解释器,会导致之后的gem源丢失问题。请务必确保此处指向的ruby与你所使用的ruby环境中的一致,可通过 rvm info命令查看现在所使用的ruby位置与版本。
?
按照安装提示修改nginx的配置文件,在server配置节,倒数第二行增加:
?
?? server {
?? ? ?listen 80;
?? ? ?server_name www.yourhost.com;
?? ? ?root /somewhere/public; ? # <--- be sure to point to 'public'!
?? ? ?passenger_enabled on;
?? }
?
重启nginx
?
sudo /opt/nginx/sbin/nginx -s reload
?
此时可将nginx链接到profile或者bashrc文件中过去,精简命令。
?
alias nst='ps aux | grep nginx'
alias sn='echo start nginx; sudo /opt/nginx/sbin/nginx ; nst'
alias kn='echo stop nginx; sudo kill `cat /opt/nginx/logs/nginx.pid` ; nst '
alias rn='kn ; sn'
?
#sn = start nginx
#kn = kill nginx
#rn = restart nginx
?
记得修改host文件,mate /etc/hosts
?
增加:127.0.0.1 www.yourhost.com
?
*更多关于passenger的nginx用法可以参考向导文件:
?
http://modrails.com/documentation/Users%20guide%20Nginx.html
?
*更多关于nginx的配置文件写法可以参考:
?
http://wiki.nginx.org/NginxChs
?
nginx的passenger模块默认是生产模式,请更改。
?
?
示范如下:
?
?? server {
?? ? ?listen 80;
?? ? ?server_name?www.yourhost.com;
?? ? ?root /users/xxx/projects/test-project/public; ? # <--- be sure to point to 'public'!
?? ? ?passenger_enabled on;
?? ? ?rails_env development;
?? }
?
?
10,安装ree下面的gem,rails3,然后再bundle install.
?
gem update --system
gem install rake
gem install rails
?
cd /users/xxx/projects/test-project
bundle install
?
如果碰到,Could not find bcrypt-ruby-2.1.2 in any of the sources等类似错误,直接在该rvm环境之下:
?
gem install bcrypt-ruby
?
请通过rvm info命令检查你所使用的ruby,gem等版本信息是否正确。
?
"/Users/xxx/.rvm/gems/ree-1.8.7-2010.02@rails3"
?
@符号表示的你个性化的gem set。这样一来,就可以创建多个ruby开发环境进行调试。切换的时候,相应地变更一下不同web服务器的ruby解释路径即可.
?
更多参考:
?
http://binarymuse.net/2010/08/07/ruby-192-and-rails-3-rc-on-os-x/
http://blog.xdite.net/?p=1795
http://ihower.tw/rails3/firststep.html
http://modrails.com/documentation/Users%20guide%20Nginx.html
http://stackoverflow.com/questions/3844561/rails-3-installation-problems-could-not-find-bcrypt-ruby-2-1-2
http://wiki.nginx.org/NginxChs
?