IT技术博客大学习 共学习 共进步
全部 移动开发 后端 数据库 AI 算法 安全 DevOps 前端 设计 开发者

windows下完全手动配置绿色版ROR

SourceJoy 2010-11-28 18:57:18 累计浏览 3,261 次
本机暂存

ruby是前一阵子比较火的动态语言之一,很是灵活ROR则是基于ruby语言的开发框架。本文讲述如何windows里面自己手动配置安装绿色的ROR环境。
ruby
http://www.ruby-lang.org
http://www.ruby-lang.org/en/downloads/
下载http://ftp.ruby-lang.org/pub/ruby/binaries/mswin32/
Gems
http://gems.rubyforge.org/
ruby一键安装包
http://rubyinstaller.rubyforge.org
Lighttp的windows版
http://wlmp.dtech.hu/?lang=en
安装ruby
下载RUBY包,解压到D:\RUBY


环境变量
RUBY_HOME=D:\ruby
PATH=%RUBY_HOME%\bin
用于加载Gems的环境变量(必须在安装完GEMS的前提下设置此变量)
RUBYOPT=rubygems
PATHEXT增加.RB;.RBW


把以下文件放到bin目录下
ssleay32.dll
zlib.dll
libeay32.dll
readline.dll



安装RubyGems
检查是否存在环境变量RUBYOPT,如存在,则在该变量前加上--,安装好以后去掉--。否则,可能出现错误,参见相关说明。
RUBYOPT=rubygems这个环境变量是Ruby语言运行系统命令ruby所规定的,但是其值是另外一个重要软件RubyGems所需要的.一旦设置好了它之后,ruby命令启动时就会自动带上rubygems的开关,此时,你可以在Ruby语言程序中使用通过gem安装过的软件包.
http://gems.rubyforge.org/下载压缩包,包括rubygems-update.gem升级文件和一个压缩包,解压压缩包,在DOS下进入解压的目录输入:
ruby setup.rb
安装结束


升级已经安装的gem:
因为ruby1.86默认安装的gem是0.94版的,现在最新的1.01已经出来了
然后DOS下进入.gem所在的目录输入
gem install -l rubygems-update.gem
升级完毕


把以下文件放到RUBY的bin目录下
iconv.dll(一个多字符集支持文件http://wiki.rubyonrails.com/rails/pages/iconv


说一下安装一个gem包
gem install -l xxx.gem
在本地安装一个gem包,必须在GEM包所在的目录下执行此命令


gem常用命令
gem list 把所有的已经安装的gem包列出来



RAILS安装
从rubyforge.org上把acivesupport,activerecord,actionpack,actionmailer,actionwebservice,rails下载,包括zip包和对应的.gem文件. 然后,cd到下载目录(不需要对压缩包解压),运行 gem install rails -l --include-dependencies 变可(后边的--include-dependencies为自动安装依赖包)
也可手动安装,安装方法如下:
在控制台依次运行
gem install activesupport-1.4.2.gem
gem install activerecord-1.15.3.gem
gem install actionpack-1.13.3.gem
gem install actionmailer-1.3.3.gem
gem install actionwebservice-1.2.3.gem
gem install rails-1.2.3.gem
最后全部提示安装完成后键入命令rails -v,看到Rails 1.2.3安装成功


在cmd中运行"rails <path>/项目名称"创建一个新项目
运行 ruby <path>/项目名称/script/server 启动服务


如"rails d:/my"则可在D:\下看到新建的项目my


c:\>rails test
c:\>cd test
c:\test>ruby script/server


打开ie,输入127.0.0.1:3000看看效果吧,点击那个 “about...可以看到运行环境。ok


sqlite的安装
因为rails2.02默认数据库转向sqlite,所以还要安装sqlite支持:sqlite3-ruby-1.2.1-mswin32.gem 还要将sqlite3的两个文件:sqlite3.exe和sqlite3.dll放到ruby的/bin下


mongrel安装
下载需要的gem安装包
mongrel http://rubyforge.org/projects/mongrel/
gem_plugin http://rubyforge.org/projects/mongrel/
mongrel_service http://rubyforge.org/projects/mongrel/
cgi_multipart_eof_fix http://rubyforge.org/projects/mongrel/
win32-service http://rubyforge.org/projects/win32utils/


mongrel需要依赖gem_plugin和win32-service


请注意安装顺序
gem install -l gem_plugin-0.2.3.gem
gem install -l cgi_multipart_eof_fix-2.5.0.gem
gem install -l win32-service-0.5.2-mswin32.gem


gem install -l mongrel-1.1.2-mswin32.gem
gem install -l mongrel_service-0.3.3-mswin32.gem


或者将上面的文件放在同一目录中,然后直接输入如下即可:
gem install mongrel -l



启动服务
进入rails应用目录
cd E:\ruby\demo
启动mongrel
E:\ruby\demo>mongrel_rails start
** Starting Mongrel listening at 0.0.0.0:3000
** Starting Rails with development environment ...
** Rails loaded.
** Loading any Rails specific GemPlugins
** Signals ready.  INT => stop (no restart).
** Mongrel available at 0.0.0.0:3000
** Use CTRL-C to stop.


如果要把mongrel安装成win32的服务还需要mongrel_service


2、测试:
进入rails应用目录
E:\ruby\demo>mongrel_rails start
或者 mongrel_rails start -p 88,就可以开启Mongrel server


3、安装成windows服务:
mongrel_rails service::install -N MyApp_Dev -c C:\Rails\MyApp -p 88 -e production
-N指明服务名称,-d指明rails应用的目录,-p是mongrel监听的tcp端口,-e是启动模式为生产模式


如果需要安装多个mongrel实例,那么可以这样:
mongrel_rails service::install -N ent0 -c d:\ruby\mywork\ent -p 3000 -e production
mongrel_rails service::install -N ent1 -c d:\ruby\mywork\ent -p 3001 -e production


4、启动服务:
mongrel_rails_service start -n rails_app2


5、停止服务:
mongrel_rails_service stop -n rails_app2


4、删除服务:
mongrel_rails service::remove -N MyApp_Dev


另在安装mongrel_service时需要安装win32-service这个gem,但现在官方网站上只有0.60,这个版本装上后,运行mongrel_rails start就出错,只有换成0.52版才可以,看来只有等mongrel或者win32-service升级才能解决问题了


配置APACHE
可以用Apache的Proxy功能,来把向本机80的请求转发到3000端口,实现Rails的发布。
配置如下在httpd.conf里面进行修改,去掉下面三行前面的注释(#):
LoadModule proxy_module modules/mod_proxy.so
LoadModule proxy_balancer_module modules/mod_proxy_balancer.so
LoadModule proxy_http_module modules/mod_proxy_http.so
如果你希望对页面输出使用压缩,也需要取消如下模块的注释:
LoadModule deflate_module modules/mod_deflate.so
最后加入:
ProxyRequests Off  
<Proxy *>  
Order deny,allow  
Allow from all  
</Proxy>  
  
#for demo app  
Alias /demo "d:/rubyproject/demo/public"  
<Directory "d:/rubyproject/demo/public">  
Options Indexes FollowSymLinks  
AllowOverride none  
Order allow,deny  
Allow from all  
</Directory>  
ProxyPass /demo/images !  
ProxyPass /demo/stylesheets !  
ProxyPass /demo/javascripts !  
ProxyPass /demo/ http://127.0.0.1:4000/  
ProxyPassReverse /demo/ http://127.0.0.1:4000/

同分类推荐文章

  1. 等了十年的 Go 链式管道,终于来了:seq 让你像写 Scala 一样写 Go (2026-06-25 18:38:18)
  2. Go 实验特性详解 (2026-06-21 10:05:27)
  3. amd64 微架构级别对 Go 程序性能提升多少? (2026-06-21 09:38:49)

查看更多 后端 文章 →

建议继续学习

  1. 每个程序员都应该学习使用Python或Ruby (累计阅读 17,918)
  2. 我的PHP,Python和Ruby之路 (累计阅读 13,147)
  3. Ruby 和 Python (累计阅读 7,073)
  4. webapp网页调试工具Chrome Devtools (累计阅读 6,984)
  5. 从Rails聊聊小公司的研发团队建设 (累计阅读 5,572)
  6. 晒晒我们的开源项目 (累计阅读 5,460)
  7. 记上海Python社区聚会,谈Python和Ruby (累计阅读 4,950)
  8. Ruby 解析 HTML (Nokogiri) (累计阅读 4,948)
  9. 纠结的翻页设计 (累计阅读 4,550)
  10. 谁能看明白这幅Java、PHP、C、Ruby语言相互吐槽的搞笑图片都说的是什么? (累计阅读 4,357)