十月 29, 2007

一、安装Ruby、rails、mongrel和Apache2.2

 
从rubyforge网站下载One-Click Ruby Install,运行安装程序,就安装好了ruby和rubygems。
 
运行命令:
gem install rails –y
gem install mongrel –y
gem install mongrel_service -y
安装好了rails和mongrel
 
从Apache网站下载Windows版本的Apache2.2,运行安装程序,就安装好了Apache2.2。
 
二、把Mongrel作为Services启动
 
mongrel_rails service::install -N depot -c d:\Rubyproject\depot -p 3000 –e production
-N指明服务名称,-d指明rails应用的目录,-p是mongrel监听的tcp端口,-e是启动模式为生产模式
 
这样打开控制面版|管理工具|服务,就可以发现增加了一项名为“depot”的服务,就可以通过控制面版来管理服务了。如果需要命令行启动和关闭该服务,那么:
mongrel_rails service::start -N depot
mongrel_rails service::stop -N depot
 
如果需要从服务中注销该项服务,那么:
mongrel_rails service::remove -N depot
 
如果需要安装多个mongrel实例,那么可以这样:
mongrel_rails service::install -N depot0 -c d:\Rubyproject\depot -p 3000 –e production
mongrel_rails service::install -N depot1 -c d:\Rubyproject\depot -p 3001 –e production
诸如此类。
 
三、配置Apache2.2
 
用编辑工具打开Apache2.2目录下面的conf/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
 
然后按如下内容配置基于HTTP代理的负载均衡:

xml 代码
 
  1. ProxyRequests Off   
  2. <Proxy balancer://myCluster>  
  3.   BalancerMember http://localhost:3000   
  4.   BalancerMember http://localhost:3001   
  5. >  
  6.   
  7. <VirtualHost *:80>  
  8.   ServerName www.xxx.com   
  9.   DocumentRoot d:/rubyproject/depot/public   
  10.   ProxyPass /images !   
  11.   ProxyPass /stylesheets !   
  12.   ProxyPass /javascripts !   
  13.   ProxyPass / balancer://myCluster/   
  14.   ProxyPassReverse / balancer://myCluster/   
  15.   ProxyPreserveHost on   
  16. >  

 
myCluster定义了群集中的每个mongrel应用服务器节点。ProxyPass /images !指明该URL开始的请求不代理给Mongrel群集,而由Apache自己处理。重起Apache,然后打开浏览器访问www.xxx.com,检查配置是否正确。
 
至此,在Windows Server上面一个具备良好稳定性和性能的Ruby on rails生产环境就搭建好了。
 
对于页面输出,还可以使用mod_deflate进行输出内容压缩,以提高页面下载速度,这个就留给大家自己配置了。

Powered by ScribeFire.

  一般而言,在学习一门计算机语言或者用该语言开发和调试一个与之相关的软件项目时,我们至少需要该计算机语言的运行环境。由于计算机语言可以有不同的实现,也就是说利用不同技术和手段可以对同一个语言编写出不同的运行环境。即使是同一运行环境实现,针对不同的操作系统还可以有不同的版本。而且同一运行环境、同一版本和相同操作系统也会因为开发目标不同而有不同的软件打包和发布形式。这里所说的形式不仅仅指发布文件的打包形式,而是指包内的各组件不同。就是说:相同运行环境、相同版本、针对同一个操作系统,由于开发目标不同,该发行包可以再集成其它一些相关组件。某个具体的运行环境我们称为Ruby语言的具体实现(Implementation),或者称为一个Ruby语言运行环境的实例(Instance)

  Ruby语言的官方网站实现既是运行环境也是开发环境。因为在本书中使用该实现,所以凡提到“运行环境”、“运行环境软件”、“运行系统”、或者“运行系统软件”都是一个意思,即一个可以运行和解释Ruby语言的程序及其相关软件包的整体。

  【注意】在Java语言环境下,既有运行环境也有开发环境。

  接下来,我们首先针对Windows XP操作系统环境说明官方Ruby语言运行环境软件的版本及其扩展软件。其次,推荐一个我们认为比较适合的的Ruby运行环境作为本书讲解Ruby语言的运行环境。最后,说明如何在同一个操作系统中安装多个Ruby语言运行环境的实例。

Ruby语言运行系统各种软件及其版本说明
  现在让我们看看Windows XP下有哪些Ruby语言运行环境。常见的运行环境有:Ruby的官方实现版本、单击安装OneClick Installer版本、和Instant Rails版本等。其中“Ruby的官方实现”版本是非常重要的一个,它实现了Ruby语言中的所有功能元素。该运行环境目前最新的版本是: 1.8.6-25稳定生产版和1.9测试版。本语言的官方网站及其下载链接如下:

网站首页 http://www.ruby-lang.org下载首页 http://www.ruby-lang.org/en/downloads/ftp下载 ftp://ftp.ruby-lang.org/pub/ruby/binaries/mswin32/在下载页面中还可以找到在Windows XP操作系统下运行的其它版本。

  接下来再介绍几款扩展版本,并和多个运行环境的安装一起讨论。

  首先让我们来看看在上面版本基础上发展起来的Ruby语言运行环境“Windows单击安装”(OneClick Installer)版本。为什么会出现这个软件?因为官方发行的Windows版本没有环境变量的配置;缺少必要的Ruby语言软件包,如 RubyGems等。而单击安装版本除了具备以上特点外,还提供了Ruby语言的开发工具和电子书籍。它的好处是为初学者学习Ruby语言提供了一个很好的快速开发环境。 Ruby语言运行环境“Windows单击安装”版本的相关信息可以从以下链接中找到:

首页 http://rubyforge.org/projects/rubyinstaller/网络百科首页 http://rubyinstaller.rubyforge.org/wiki/wiki.pl下载首页 http://rubyforge.org/frs/?group_id=167  对于该运行环境软件有几点需要说明。整个安装过程几乎不用干预。如果愿意,可以修改一下安装的目标目录,但不是必须的。建议安装在类似于C:\opt\ruby1.8.5-24的目录下。该软件在安装过程中,会自动修改系统环境变量PATH,并增加了环境变量 RUBYOPT。安装完了该软件之后,可以用echo命令查看系统环境变量PATH如【代码 c.01】中,路径“C:\opt\ruby1.8.5- 24\bin;”应该已经添加在PATH字符串中。这样处理的好处是:安装好了马上就可以在任何目录下使用该软件的命令。但是也存在着不足,要是你想安装多个同一实现的不同版本软件就有麻烦了。我们认为该软件能够增加一个Ruby语言安装目录的环境变量设置RUBY_HOME,就更好了。请看下面我们是如何解决此问题的。

--【代码 c.01】安装Instant Rails --

echo %PATH%
  【信息】“单击安装”版本目前只发行Windows版本,MacOS和Linux版本正在开发中。

  不过,本书将采用另一个更为全面的Ruby语言运行环境软件Instant Rails。关于该版本的相关信息可以从以下链接中找到:

首页 http://rubyforge.org/projects/instantrails/网络百科首页 http://instantrails.rubyforge.org/wiki/wiki.pl下载首页 http://rubyforge.org/frs/?group_id=904&release_id=10139采用这个版本的理由是:Instant Rails是一款绿色软件;包含了“单击安装”版本的全部特性;还包括了学习和开发应用软件所必须的开源数据库系统MySQL和Ruby语言最重要的网络软件开发框架Rails等大量具有产品水平的开源软件。

Instant Rails安装具体步骤
  下面说明安装Instant Rails的具体步骤和方法。对于应用于软件开发的绿色软件而言,安装一般有三个步骤:一,下载、解压和复制到合适的目录里;二,设置系统环境变量。这虽是可选的,但常常是必要的;三,软件安装结果基本检验,通常是执行一下软件的版本和帮助命令。

  本书将使用DOS Shell工具,当然也可以通过Windows Explorer或者其它可视化软件来实现。什么是DOS Shell?DOS Shell是在Windows系统下的一款最常用开发工具,它执行该系统上所安装的软件。这种工具Shell在操作系统中都已经安装了。在用户图形界面(GUI=Graphical user interface)软件出现之前,所有软件都是通过该工具运行的。现在尽管普通计算机用户基本上都使用可视化软件,但是对于软件开发人员这种Shell工具是必不可少的。工具Shell的优势是简洁、灵活性大和计算效率高。在本书中你将学习和认识到它的长处。

Instant Rails的安装方法
  首先从网络上下载Instant Rails软件。下载地址:

http://rubyforge.org/frs/download.php/18097/InstantRails-1.6-win.zip具体下载办法各人各异,建议尽可能使用DOS命令来操作计算机,它的好处上面已经说明了。请看我们的下载和安装过程代码:【代码 c.02】。第一行命令执行下载,第二行命令把下载好的软件进行解压并且放到你想的安装软件目录,第三和四行命令仅仅是想把安装目录调整得更好一点而已。这些操作都可以在Windows Explorer下结合相关软件来完成。

  【约定】:以后碰到示例代码,如果是第一次出现,我们都会给出说明,之后仅写出命令。

--【代码 c.02】安装Instant Rails --

wget http://rubyforge.org/frs/download.php/18097/InstantRails-1.6-win.zip 7z -oC:\opt x InstantRails-1.6-win.zip mv c:\opt\InstantRails-1.6-win\InstantRails c:\opt\InstantRails-1.6 rm C:\opt\InstantRails-1.6-win
配置环境变量方法
  现在我们来设置Ruby语言运行系统的环境变量。环境变量是什么?如果把我们操作系统看作为一个主程序,而Ruby语言运行系统是它下面的一个子程序,那么环境变量就是主程序的全局变量,使用操作系统内的所有子程序都可以利用该全局变量。例如,要是你设定某个程序的安装目录,所有在操作系统内的程序就都知道该程序在那里了。下面我们开始增加一个环境变量RUBY_HOME。其基本操作步骤是:

按住键Window并且点击一下键Pause(另外一种方法是:右击“我的电脑”->“属性”)
点击标记“高级”
点击按钮“环境变量”
出现一个新的窗口
你可以在“用户变量”或者“系统变量”框内,来点击按钮“新建”(注意:对于该操作系统而言,如果你没有管理员权限的话,你只能在“用户变量”框内新建环境变量。这种情况往往在企业内会发生)
现在你的光标应该在变量名框内,输入环境变量名“RUBY_HOME”。怎样命名环境变量的名称?一般有两种方法:你想如何定义就如何定义;你 所安装的软件规定的名称。我们这里是前一种情况,一般环境变量名习惯使用大写;单词之间用英文下划线“_”来连接; 如果环境变量为软件 安装的根目录,后面都会加上“_HOME”
鼠标点击一下变量值输入框,你就可以输入环境变量值“c:\opt\InstantRails-1.6\ruby”。怎样来确定环境变量的值?一般有两种可能性:一是你自己确定的安装软件的路径;二是你所安装的软件规定的值。很明显, 我们的环境变量值是属于第一种情况,而下面另一个环境变量RUBYOPT的值则是属于第二种情况
此时,已经打开了三个窗口了。倘若还想继续增加环境变量,就先点击一下当前窗口的按钮“确定”,然后可以进行新建和编辑环境变量
倘若不想再增加新环境变量,就需要连续在这其余窗口点击按钮“确定”。这样就把一个或多个新的环境变量增加好了。注意:要是你没有进行任何环境变量的新增和修改,最好不要点击去“确认”按钮。否则只会浪费你电脑的计算时间
  请看编辑环境变量PATH的【图 x.01】。

-- 【图 01】 编辑环境变量PATH --

  以上是在图形窗口修改环境变量。我们也能直接利用DOS Shell的命令进行环境变量的设置,如【代码 c.03】的第一行命令。该命令可以在DOS Shell下执行,但是它仅仅作用于该当前打开的DOS Shell窗口。如果关闭了该窗口这些设置也就随之结束了。

  在【代码 c.03】的第二行命令中,我们修改一下环境变量PATH。这么做的好处之一是我们打开DOS Shell就可以直接运行该系统目录bin下的所有命令,如ruby和gem等等。

  根据上面同样的方法,我们再增加一个新的环境变量RUBYOPT。这是在【代码 c.03】的第三行命令。这个环境变量是Ruby语言运行系统命令ruby所规定的,但是其值是另外一个重要软件RubyGems所需要的。关于软件RubyGems我们会单独讲解。一旦我们设置好了它之后,ruby命令启动时就会自动带上rubygems的开关。此时,你可以在Ruby语言程序中使用通过gem安装过的软件包。对此我们将在后面详细介绍。

-- 【代码 c.03】 配置环境变量 --

SET RUBY_HOME=c:\opt\InstantRails-1.6\ruby SET PATH=%PATH%;%RUBY_HOME%\bin SET RUBYOPT=rubygems
验证我们的安装和设置
  最后我们把刚才打开的DOS Shell窗口都关掉,重新打开一个新的DOS Shell窗口。为什么要这样?因为新增和修改的Windows环境变量不会对已经打开的DOS Shell窗口起作用的。为了验证我们的软件安装和环境变量设置是否正确的,在新打开的DOS Shell中输入【代码 c.04】的命令,点击回车键Enter。命令ruby是我们的Ruby语言运行环境中最重要的和核心的程序,它负责对Ruby语言代码进行解析、错误分析和执行等任务。有关该命令我们将在后面会非常详细介绍。

--【代码 c.03】验证Ruby语言运行环境软件 --

ruby -v
接着我们就可以看到【图x.02】Ruby语言运行环境版本及其信息的相应结果。

-- 【图 x.02】 显示Ruby语言运行环境版本及其信息 --

我们也可以查看一下我们环境变量RUBY_HOME值,如【图x.03】。

-- 【图 x.03】 显示环境变量RUBY_HOME值 --

我们再看一看Ruby语言运行环境安装目录下的文件和子目录,如【图x.04】。

-- 【图 x.04】 显示Ruby语言运行环境安装目录 --

同一系统安装不同实现版本
  一般而言,在一个操作系统中安装一个Ruby语言运行环境就可以运行Ruby程序、开发Ruby软件和学习Ruby语言了。那么为什么我们还想要安装几个Ruby语言运行环境?其一,我们想学习和了解Ruby语言运行环境软件新的版本;其二,我们想使用Ruby语言运行环境的扩展版本软件如 Instant Rails;其三,我们想开拓自己的视野,看看其它Ruby语言运行环境的实现。当然我们还可以列举一些理由,重要的是人们在实际中需要来解决这样的问题。

  在同一个操作系统中,你可以安装多个Ruby语言运行环境,但是同一Ruby语言运行环境的实现只能设定一个环境变量并只能指向其中一个。当然理论上来说,不同Ruby语言运行环境的实现,可以设定相应不同的环境变量指向它们的安装目录。所以为了解决这个问题,你一定要注意二个要点,一是新安装的 Ruby 语言运行环境是否自动修改了环境变量PATH,二是不同Ruby语言运行环境的实现是否有相同的命令,主要在bin目录下的命令。根据我们上面的环境变量配置方案,其解决方法是你修改环境变量RUBY_HOME的值,确定其值是你想用的Ruby语言运行环境安装目录就可以了。

  接下来说明如何在同一个操作系统环境下安装多个Ruby语言运行环境。看下面我们对于Ruby语言环境变量设置的方法示例。假定你已经安装了上面Instant Rails运行环境,且其根目录是“c:\opt\InstantRails-1.6\ruby”。而现在你又安装了单击安装软件版本1.8.6(OneClick Installer)其根目录是“c:\opt\ruby1.8.6”,注意上面关于该软件安装的说明。要是你想使用前者就修改如【图 x.01】所示的环境变量。而要是你想使用后者就修改如【图 x.05】所示的环境变量。

-- 【图 x.05】 修改Ruby语言根目录环境变量RUBY_HOME值 --

Powered by ScribeFire.

在windows环境下,旧版本的Rmagick安装完gem后,需要运行一个postinstall.rb来设置windows字体等。新版本的Rmagick没有这个步骤,代替是安装ImageMagick。我按照README安装成功后,在rails中使用还是出现无法读取字体的错误,忍无可忍又换了旧版本的Rmagick,没想到跟ruby的解释器版本不一致,render templage的时候出现parse error类型的错误。认真比对了下新老版本的差别,原来旧版本的Rmagick在Config目录下多了个type-windows.xml来设置windows字体,在此记录下正确的安装方法:

1.到http://rubyforge.org/frs/?group_id=12&release_id=8170,下载RMagick-1.14.1_IM-6.3.0-7-Q8.zip

2.解压后在目录执行gem install rmagick-1.14.1-win32.gem

3.最后,双击ImageMagick-6.3.0-7-Q8-windows-dll.exe安装ImageMagick

4.将ImageMagick的安装目录加进环境变量path,如果有的话就不用了

5.最后一步,将附件中的type-windows.xml拷贝进ImageMagick安装目录下的config目录,比如E:\ImageMagick-6.3.0-Q8\config,修改type.xml,原来是:

代码

修改为:

代码

安装完成,测试下网上那个流传的RMagick的验证码例子,终于正常了。

Powered by ScribeFire.