<?xml version="1.0" encoding="UTF-8" ?>
<rss version="2.0">
  <channel>
    <title>minstrel</title>
    <description>向许三多学习</description>
    <link>http://minstrel.javaeye.com</link>
    <language>UTF-8</language>
    <copyright>Copyright 2003-2008, JavaEye.com</copyright>
    <docs>http://blogs.law.harvard.edu/tech/rss</docs>
    <generator>JavaEye - 做最棒的软件开发交流社区</generator>
          <item>
        <title>ruby学习笔记--Time&amp;DateTime</title>
        <author>minstrel</author>
        <description>
          <![CDATA[
          <br/>
          作者: <a href="http://minstrel.javaeye.com">minstrel</a>&nbsp;
                    链接：<a href="http://minstrel.javaeye.com/blog/152991" style="color:red;">http://minstrel.javaeye.com/blog/152991</a>&nbsp;
          发表时间: 2008年01月04日
          <br/><br/>
          声明：本文系JavaEye网站发布的原创博客文章，未经作者书面许可，严禁任何网站转载本文，否则必将追究法律责任！
          <br/><br/>
          1，时间的格式化输出<br />&nbsp;<pre name="code" class="ruby">t = Time.now  
# to get day, month and year with century  
# also hour, minute and second  
puts t.strftime(&quot;%d/%m/%Y %H:%M:%S&quot;)  
  
# You can use the upper case A and B to get the full  
# name of the weekday and month, respectively  
puts t.strftime(&quot;%A&quot;)  
puts t.strftime(&quot;%B&quot;)  
  
# You can use the lower case a and b to get the abbreviated  
# name of the weekday and month, respectively  
puts t.strftime(&quot;%a&quot;)  
puts t.strftime(&quot;%b&quot;)  
  
# 24 hour clock and Time zone name  
puts t.strftime(&quot;at %H:%M %Z&quot;) </pre>&nbsp;
          <br/><br/>
          <span style="color:red;">
            <a href="http://minstrel.javaeye.com/blog/152991#comments" style="color:red;">已有 <strong>0</strong> 人发表留言，猛击-&gt;&gt;<strong>这里</strong>&lt;&lt;-参与讨论</a>
          </span>
          <br/><br/><br/>
          <span style="color:#E28822;">JavaEye推荐</span>
          <br/>
          <ul class='adverts'><li><a href='/adverts/42' target='_blank'><span style="color:red;font-weight:bold;">搜狐网站诚聘Java、PHP和C++工程师</span></a></li><li><a href='/adverts/41' target='_blank'><span style="color:red;font-weight:bold;">Windows7在微软WinHEC 2008上揭开神秘面纱</span></a></li></ul>
          <br/><br/><br/>
          ]]>
        </description>
        <pubDate>Fri, 04 Jan 2008 08:42:59 +0800</pubDate>
        <link>http://minstrel.javaeye.com/blog/152991</link>
        <guid>http://minstrel.javaeye.com/blog/152991</guid>
      </item>
          <item>
        <title>linux下通过Instant Client访问oracle输出中文乱码的解决办法</title>
        <author>minstrel</author>
        <description>
          <![CDATA[
          <br/>
          作者: <a href="http://minstrel.javaeye.com">minstrel</a>&nbsp;
                    链接：<a href="http://minstrel.javaeye.com/blog/152570" style="color:red;">http://minstrel.javaeye.com/blog/152570</a>&nbsp;
          发表时间: 2008年01月03日
          <br/><br/>
          声明：本文系JavaEye网站发布的原创博客文章，未经作者书面许可，严禁任何网站转载本文，否则必将追究法律责任！
          <br/><br/>
          1，设置NLS_LANG<br />&nbsp; export NLS_LANG=american_america.AL32UTF8<br /><br />2，在rails中database.yml的设置<br />&nbsp; development:<br />&nbsp; adapter: oracle<br />&nbsp; database: XXX.XXX.XXX.XXX/service_name<br />&nbsp; username: your_name<br />&nbsp; password: your_password<br /><br /><br />3，测试oracle是否连通：<br />&nbsp; ruby -r oci8 -e&nbsp; "OCI8.new( 'your_name', 'your_password', 'XXX.XXX.XXX.XXX/service_name').exec( 'select * from your_table') do |r| puts r.join(' | '); end"
          <br/><br/>
          <span style="color:red;">
            <a href="http://minstrel.javaeye.com/blog/152570#comments" style="color:red;">已有 <strong>0</strong> 人发表留言，猛击-&gt;&gt;<strong>这里</strong>&lt;&lt;-参与讨论</a>
          </span>
          <br/><br/><br/>
          <span style="color:#E28822;">JavaEye推荐</span>
          <br/>
          <ul class='adverts'><li><a href='/adverts/41' target='_blank'><span style="color:red;font-weight:bold;">Windows7在微软WinHEC 2008上揭开神秘面纱</span></a></li><li><a href='/adverts/42' target='_blank'><span style="color:red;font-weight:bold;">搜狐网站诚聘Java、PHP和C++工程师</span></a></li></ul>
          <br/><br/><br/>
          ]]>
        </description>
        <pubDate>Thu, 03 Jan 2008 11:10:36 +0800</pubDate>
        <link>http://minstrel.javaeye.com/blog/152570</link>
        <guid>http://minstrel.javaeye.com/blog/152570</guid>
      </item>
          <item>
        <title>ruby学习笔记--r/w text file</title>
        <author>minstrel</author>
        <description>
          <![CDATA[
          <br/>
          作者: <a href="http://minstrel.javaeye.com">minstrel</a>&nbsp;
                    链接：<a href="http://minstrel.javaeye.com/blog/152277" style="color:red;">http://minstrel.javaeye.com/blog/152277</a>&nbsp;
          发表时间: 2008年01月02日
          <br/><br/>
          声明：本文系JavaEye网站发布的原创博客文章，未经作者书面许可，严禁任何网站转载本文，否则必将追究法律责任！
          <br/><br/>
          <p>1,遍历当前目录</p><pre name="code" class="ruby">require 'find'  
Find.find('../../') do |f|   
  type = case  
         when File.file?(f)  
           &quot;F&quot;  
         when File.directory?(f)  
           &quot;D&quot;  
         else 
           &quot;?&quot;  
         end  
  puts &quot;#{type}: #{f}&quot;  
end  
</pre><p>2，交换文本内容</p><pre name="code" class="ruby">def filereadwrite (fileA,fileB)
  f1=File.open(fileA,'r')
  f2=File.open(fileB,'w')
  while line=f1.gets
    f2.puts line
  end
  f1.close
  f2.close
end

filereadwrite 'datafile','tmp'
filereadwrite 'testfile','datafile'
filereadwrite 'tmp','testfile'
File.delete('tmp')</pre><p>&nbsp;</p>
          <br/><br/>
          <span style="color:red;">
            <a href="http://minstrel.javaeye.com/blog/152277#comments" style="color:red;">已有 <strong>0</strong> 人发表留言，猛击-&gt;&gt;<strong>这里</strong>&lt;&lt;-参与讨论</a>
          </span>
          <br/><br/><br/>
          <span style="color:#E28822;">JavaEye推荐</span>
          <br/>
          <ul class='adverts'><li><a href='/adverts/41' target='_blank'><span style="color:red;font-weight:bold;">Windows7在微软WinHEC 2008上揭开神秘面纱</span></a></li><li><a href='/adverts/42' target='_blank'><span style="color:red;font-weight:bold;">搜狐网站诚聘Java、PHP和C++工程师</span></a></li></ul>
          <br/><br/><br/>
          ]]>
        </description>
        <pubDate>Wed, 02 Jan 2008 10:55:00 +0800</pubDate>
        <link>http://minstrel.javaeye.com/blog/152277</link>
        <guid>http://minstrel.javaeye.com/blog/152277</guid>
      </item>
          <item>
        <title>ruby学习笔记--Blocks</title>
        <author>minstrel</author>
        <description>
          <![CDATA[
          <br/>
          作者: <a href="http://minstrel.javaeye.com">minstrel</a>&nbsp;
                    链接：<a href="http://minstrel.javaeye.com/blog/151337" style="color:red;">http://minstrel.javaeye.com/blog/151337</a>&nbsp;
          发表时间: 2007年12月27日
          <br/><br/>
          声明：本文系JavaEye网站发布的原创博客文章，未经作者书面许可，严禁任何网站转载本文，否则必将追究法律责任！
          <br/><br/>
          <p><font face="Arial">Proc的两个使用方法</font></p>
<font face="Arial">
<div class="code_title">ruby 代码
<div class="dp-highlighter">
<div class="bar"></div>
<ol class="dp-rb">
    <li class="alt"><span><span class="keyword">def</span><span>&nbsp;some_mtd1&nbsp;aproc&nbsp;&nbsp; &nbsp;&nbsp;</span></span> </li>
    <li class=""><span>&nbsp;&nbsp;aproc.call&nbsp;&nbsp; &nbsp;&nbsp;</span> </li>
    <li class="alt"><span></span><span class="keyword">end</span><span>&nbsp;&nbsp; &nbsp;&nbsp;</span> </li>
    <li class=""><span>some_mtd1&nbsp;lambda&nbsp;{&nbsp;puts&nbsp;</span><span class="string">&quot;aaaaa&quot;</span><span>&nbsp;} &nbsp;&nbsp;</span> </li>
    <li class="alt">&nbsp; </li>
</ol>
</div>
</div>
<p>&nbsp;这个代码等同于下面这个代码段</p>
<div class="code_title">ruby 代码</div>
<div class="dp-highlighter">
<div class="bar"></div>
<ol class="dp-rb">
    <li class="alt"><span><span class="keyword">def</span><span>&nbsp;some_mtd2&nbsp;&amp;bproc&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;</span></span> </li>
    <li class=""><span>&nbsp;&nbsp;bproc.call&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;</span> </li>
    <li class="alt"><span></span><span class="keyword">end</span><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;</span> </li>
    <li class=""><span>some_mtd2&nbsp;{&nbsp;puts&nbsp;</span><span class="string">&quot;aaaaa&quot;</span><span>&nbsp;}&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span> </li>
</ol>
</div>
<p>&nbsp;也等同于下面代码</p>
<div class="code_title">ruby 代码</div>
<div class="dp-highlighter">
<div class="bar"></div>
<ol class="dp-rb">
    <li class="alt"><span><span>ab&nbsp;=&nbsp;lambda&nbsp;{&nbsp;</span><span class="variable">|x</span><span>|&nbsp;puts&nbsp;x&nbsp;}&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;</span></span> </li>
    <li class=""><span>ab.call&nbsp;'aaaaa'&nbsp;&nbsp;&nbsp;</span> </li>
</ol>
</div>
<p>c = lambda { |i| puts i }<br />
c = Proc.new { |i| puts i }<br />
c = proc { |i| puts i }&nbsp;</p>
<p>The above 3 statements do the same thing: instantiate a block object. &lsquo;proc&rsquo; is an alias for &lsquo;<strong>lambda</strong>&lsquo; and they work slightly different than &lsquo;<strong>Proc.new</strong>&lsquo;. In Ruby 1.9, &lsquo;proc&rsquo; will probably be an alias for &lsquo;<strong>Proc.new</strong>&lsquo; instead.</p>
</font>
          <br/><br/>
          <span style="color:red;">
            <a href="http://minstrel.javaeye.com/blog/151337#comments" style="color:red;">已有 <strong>0</strong> 人发表留言，猛击-&gt;&gt;<strong>这里</strong>&lt;&lt;-参与讨论</a>
          </span>
          <br/><br/><br/>
          <span style="color:#E28822;">JavaEye推荐</span>
          <br/>
          <ul class='adverts'><li><a href='/adverts/42' target='_blank'><span style="color:red;font-weight:bold;">搜狐网站诚聘Java、PHP和C++工程师</span></a></li><li><a href='/adverts/41' target='_blank'><span style="color:red;font-weight:bold;">Windows7在微软WinHEC 2008上揭开神秘面纱</span></a></li></ul>
          <br/><br/><br/>
          ]]>
        </description>
        <pubDate>Thu, 27 Dec 2007 20:52:34 +0800</pubDate>
        <link>http://minstrel.javaeye.com/blog/151337</link>
        <guid>http://minstrel.javaeye.com/blog/151337</guid>
      </item>
          <item>
        <title>ruby学习笔记--Array</title>
        <author>minstrel</author>
        <description>
          <![CDATA[
          <br/>
          作者: <a href="http://minstrel.javaeye.com">minstrel</a>&nbsp;
                    链接：<a href="http://minstrel.javaeye.com/blog/151329" style="color:red;">http://minstrel.javaeye.com/blog/151329</a>&nbsp;
          发表时间: 2007年12月27日
          <br/><br/>
          声明：本文系JavaEye网站发布的原创博客文章，未经作者书面许可，严禁任何网站转载本文，否则必将追究法律责任！
          <br/><br/>
          <p>1，计算数字数组之和和乘积</p>
<div class="code_title">ruby 代码</div>
<div class="dp-highlighter">
<div class="bar"></div>
<ol class="dp-rb">
    <li class="alt"><span><span class="keyword"><font face="Courier New" style="BACKGROUND-COLOR: #fafafa">class Array&nbsp; <br />
    &nbsp; def inject(n)&nbsp; <br />
    &nbsp;&nbsp;&nbsp;&nbsp; each { |value| n = yield(n,value) }&nbsp; <br />
    &nbsp;&nbsp;&nbsp;&nbsp; n&nbsp; <br />
    &nbsp; end&nbsp; <br />
    &nbsp; def sum&nbsp; <br />
    &nbsp;&nbsp;&nbsp; inject(0)&nbsp; { |n, value| n + value }&nbsp; <br />
    &nbsp; end&nbsp; <br />
    &nbsp; def product&nbsp; <br />
    &nbsp;&nbsp;&nbsp; inject(1) { |n, value| n * value }&nbsp; <br />
    &nbsp; end&nbsp; <br />
    end&nbsp; <br />
    puts [1, 2, 3, 4, 5].sum<br />
    puts [1, 2, 3, 4, 5].product</font></span></span> </li>
</ol>
</div>
<p>疑问：yield是方法吗？如果是，是谁的方法呢？</p>
<p>2，只显示偶数</p>
<div class="code_title">ruby 代码</div>
<div class="dp-highlighter">
<div class="bar"></div>
<ol class="dp-rb">
    <li class="alt"><span><span class="keyword">class</span><span>&nbsp;</span><span class="builtin">Array</span><span>&nbsp;&nbsp;</span></span></li>
    <li class=""><span>&nbsp;&nbsp;</span><span class="keyword">def</span><span>&nbsp;even &nbsp;&nbsp;</span></li>
    <li class="alt"><span>&nbsp;&nbsp;&nbsp;&nbsp;i&nbsp;=&nbsp;0 &nbsp;&nbsp;</span></li>
    <li class=""><span>&nbsp;&nbsp;&nbsp;&nbsp;</span><span class="keyword">while</span><span>&nbsp;i&nbsp;&lt;&nbsp;</span><span class="keyword">self</span><span>.size &nbsp;&nbsp;</span></li>
    <li class="alt"><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span class="keyword">yield</span><span>(</span><span class="keyword">self</span><span>[i])&nbsp;</span><span class="keyword">if</span><span>&nbsp;i&nbsp;%&nbsp;2&nbsp;==&nbsp;0 &nbsp;&nbsp;</span></li>
    <li class=""><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;i&nbsp;+=&nbsp;1 &nbsp;&nbsp;</span></li>
    <li class="alt"><span>&nbsp;&nbsp;&nbsp;&nbsp;</span><span class="keyword">end</span><span>&nbsp;&nbsp;</span></li>
    <li class=""><span>&nbsp;&nbsp;</span><span class="keyword">end</span><span>&nbsp;&nbsp;</span></li>
    <li class="alt"><span></span><span class="keyword">end</span><span>&nbsp;&nbsp;</span></li>
    <li class=""><span>&nbsp;&nbsp;</span></li>
    <li class="alt"><span>[1,2,3,4,5,6].even&nbsp;{&nbsp;</span><span class="variable">|i</span><span>|&nbsp;puts&nbsp;i&nbsp;} &nbsp;&nbsp;</span></li>
</ol>
</div>
          <br/><br/>
          <span style="color:red;">
            <a href="http://minstrel.javaeye.com/blog/151329#comments" style="color:red;">已有 <strong>0</strong> 人发表留言，猛击-&gt;&gt;<strong>这里</strong>&lt;&lt;-参与讨论</a>
          </span>
          <br/><br/><br/>
          <span style="color:#E28822;">JavaEye推荐</span>
          <br/>
          <ul class='adverts'><li><a href='/adverts/41' target='_blank'><span style="color:red;font-weight:bold;">Windows7在微软WinHEC 2008上揭开神秘面纱</span></a></li><li><a href='/adverts/42' target='_blank'><span style="color:red;font-weight:bold;">搜狐网站诚聘Java、PHP和C++工程师</span></a></li></ul>
          <br/><br/><br/>
          ]]>
        </description>
        <pubDate>Thu, 27 Dec 2007 20:04:24 +0800</pubDate>
        <link>http://minstrel.javaeye.com/blog/151329</link>
        <guid>http://minstrel.javaeye.com/blog/151329</guid>
      </item>
          <item>
        <title>ruby学习笔记--String</title>
        <author>minstrel</author>
        <description>
          <![CDATA[
          <br/>
          作者: <a href="http://minstrel.javaeye.com">minstrel</a>&nbsp;
                    链接：<a href="http://minstrel.javaeye.com/blog/151303" style="color:red;">http://minstrel.javaeye.com/blog/151303</a>&nbsp;
          发表时间: 2007年12月27日
          <br/><br/>
          声明：本文系JavaEye网站发布的原创博客文章，未经作者书面许可，严禁任何网站转载本文，否则必将追究法律责任！
          <br/><br/>
          <font face="Arial">1,反转字符串中的单词<br />
<div class="code_title">ruby 代码
<div class="dp-highlighter">
<div class="bar"></div>
<ol class="dp-rb">
    <li class="alt"><span><span>words&nbsp;=&nbsp;'Learning&nbsp;Ruby&nbsp;-&nbsp;Your&nbsp;one&nbsp;stop&nbsp;guide'&nbsp;&nbsp; &nbsp;&nbsp;</span></span> </li>
    <li class=""><span>puts&nbsp;words.split(</span><span class="string">&quot;&nbsp;&quot;</span><span>).reverse.join(</span><span class="string">&quot;&nbsp;&quot;</span><span>)&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;</span> </li>
    <li class="alt"><span></span><span class="comment">#&nbsp;guide&nbsp;stop&nbsp;one&nbsp;Your&nbsp;-&nbsp;Ruby&nbsp;Learning&nbsp;&nbsp;&nbsp;</span><span>&nbsp;&nbsp;</span> </li>
</ol>
</div>
</div>
<p>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 如果反转中文字呢？</p>
<p>2,判断闰年</p>
<div class="code_title">ruby 代码</div>
<div class="dp-highlighter">
<div class="bar"></div>
<ol class="dp-rb">
    <li class="alt"><span><span>puts&nbsp;</span><span class="string">&quot;请输入一个年份，我来判断是否是闰年：&quot;</span><span>&nbsp;&nbsp;</span></span> </li>
    <li class=""><span>year=gets.chomp.to_i &nbsp;&nbsp;</span> </li>
    <li class="alt"><span>&nbsp;&nbsp;</span> </li>
    <li class=""><span>leap&nbsp;=&nbsp;</span><span class="keyword">case</span><span>&nbsp;&nbsp; &nbsp;&nbsp;</span> </li>
    <li class="alt"><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span class="keyword">when</span><span>&nbsp;year&nbsp;%&nbsp;400&nbsp;==&nbsp;0:&nbsp;</span><span class="keyword">true</span><span>&nbsp;&nbsp; &nbsp;&nbsp;</span> </li>
    <li class=""><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span class="keyword">when</span><span>&nbsp;year&nbsp;%&nbsp;100&nbsp;==&nbsp;0:&nbsp;</span><span class="keyword">false</span><span>&nbsp;&nbsp; &nbsp;&nbsp;</span> </li>
    <li class="alt"><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span class="keyword">else</span><span>&nbsp;year&nbsp;%&nbsp;4&nbsp;&nbsp;&nbsp;==&nbsp;0&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;</span> </li>
    <li class=""><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span class="keyword">end</span><span>&nbsp;&nbsp; &nbsp;&nbsp;</span> </li>
    <li class="alt"><span>var=</span><span class="string">&quot;不&quot;</span><span>&nbsp;</span><span class="keyword">unless</span><span>&nbsp;leap &nbsp;&nbsp;</span> </li>
    <li class=""><span>puts&nbsp;</span><span class="string">&quot;#{year}&quot;</span><span>+</span><span class="string">&quot;#{var}&quot;</span><span>+</span><span class="string">&quot;是闰年&quot;</span><span>&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;</span> </li>
</ol>
</div>
</font>
          <br/><br/>
          <span style="color:red;">
            <a href="http://minstrel.javaeye.com/blog/151303#comments" style="color:red;">已有 <strong>1</strong> 人发表留言，猛击-&gt;&gt;<strong>这里</strong>&lt;&lt;-参与讨论</a>
          </span>
          <br/><br/><br/>
          <span style="color:#E28822;">JavaEye推荐</span>
          <br/>
          <ul class='adverts'><li><a href='/adverts/41' target='_blank'><span style="color:red;font-weight:bold;">Windows7在微软WinHEC 2008上揭开神秘面纱</span></a></li><li><a href='/adverts/42' target='_blank'><span style="color:red;font-weight:bold;">搜狐网站诚聘Java、PHP和C++工程师</span></a></li></ul>
          <br/><br/><br/>
          ]]>
        </description>
        <pubDate>Thu, 27 Dec 2007 17:42:33 +0800</pubDate>
        <link>http://minstrel.javaeye.com/blog/151303</link>
        <guid>http://minstrel.javaeye.com/blog/151303</guid>
      </item>
          <item>
        <title>ruby学习的资源</title>
        <author>minstrel</author>
        <description>
          <![CDATA[
          <br/>
          作者: <a href="http://minstrel.javaeye.com">minstrel</a>&nbsp;
                    链接：<a href="http://minstrel.javaeye.com/blog/151273" style="color:red;">http://minstrel.javaeye.com/blog/151273</a>&nbsp;
          发表时间: 2007年12月27日
          <br/><br/>
          声明：本文系JavaEye网站发布的原创博客文章，未经作者书面许可，严禁任何网站转载本文，否则必将追究法律责任！
          <br/><br/>
          1，ruby入门的教程 http://rubylearning.com/satishtalim/tutorial.html<br />2，国内比较好的网上资源 http://chinaonrails.com/<br />#不断补充中
          <br/><br/>
          <span style="color:red;">
            <a href="http://minstrel.javaeye.com/blog/151273#comments" style="color:red;">已有 <strong>0</strong> 人发表留言，猛击-&gt;&gt;<strong>这里</strong>&lt;&lt;-参与讨论</a>
          </span>
          <br/><br/><br/>
          <span style="color:#E28822;">JavaEye推荐</span>
          <br/>
          <ul class='adverts'><li><a href='/adverts/41' target='_blank'><span style="color:red;font-weight:bold;">Windows7在微软WinHEC 2008上揭开神秘面纱</span></a></li><li><a href='/adverts/42' target='_blank'><span style="color:red;font-weight:bold;">搜狐网站诚聘Java、PHP和C++工程师</span></a></li></ul>
          <br/><br/><br/>
          ]]>
        </description>
        <pubDate>Thu, 27 Dec 2007 15:56:46 +0800</pubDate>
        <link>http://minstrel.javaeye.com/blog/151273</link>
        <guid>http://minstrel.javaeye.com/blog/151273</guid>
      </item>
          <item>
        <title>Rails中启动script/console报错的解决办法</title>
        <author>minstrel</author>
        <description>
          <![CDATA[
          <br/>
          作者: <a href="http://minstrel.javaeye.com">minstrel</a>&nbsp;
                    链接：<a href="http://minstrel.javaeye.com/blog/120273" style="color:red;">http://minstrel.javaeye.com/blog/120273</a>&nbsp;
          发表时间: 2007年09月04日
          <br/><br/>
          声明：本文系JavaEye网站发布的原创博客文章，未经作者书面许可，严禁任何网站转载本文，否则必将追究法律责任！
          <br/><br/>
          今天首次在Rails中启动script/console报:
<div class="dp-highlighter">
<div class="bar">&nbsp;</div>
<ol class="dp-rb" start="1">
    <li class="alt"><span><span>[root</span><span class="variable">@test</span><span>&nbsp;depot]</span><span class="comment">#&nbsp;ruby&nbsp;script/console&nbsp;</span><span>&nbsp;&nbsp;</span></span></li>
    <li class=""><span>Loading&nbsp;development&nbsp;environment.&nbsp;&nbsp;</span></li>
    <li class="alt"><span>/usr/local/ruby/lib/ruby/1.8/irb/completion.rb:10<span class="symbol">:in</span><span>&nbsp;`require':&nbsp;no&nbsp;such&nbsp;file&nbsp;to&nbsp;load&nbsp;--&nbsp;readline&nbsp;(LoadError)&nbsp;&nbsp;</span></span></li>
    <li class=""><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;from&nbsp;/usr/local/ruby/lib/ruby/1.8/irb/completion.rb:10&nbsp;&nbsp;</span></li>
    <li class="alt"><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;from&nbsp;/usr/local/ruby/lib/ruby/1.8/irb/init.rb:252<span class="symbol">:in</span><span>&nbsp;`require'&nbsp;&nbsp;</span></span></li>
    <li class=""><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;from&nbsp;/usr/local/ruby/lib/ruby/1.8/irb/init.rb:252<span class="symbol">:in</span><span>&nbsp;`load_modules'&nbsp;&nbsp;</span></span></li>
    <li class="alt"><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;from&nbsp;/usr/local/ruby/lib/ruby/1.8/irb/init.rb:250<span class="symbol">:in</span><span>&nbsp;`</span><span class="keyword">each</span><span>'&nbsp;&nbsp;</span></span></li>
    <li class=""><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;from&nbsp;/usr/local/ruby/lib/ruby/1.8/irb/init.rb:250<span class="symbol">:in</span><span>&nbsp;`load_modules'&nbsp;&nbsp;</span></span></li>
    <li class="alt"><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;from&nbsp;/usr/local/ruby/lib/ruby/1.8/irb/init.rb:21<span class="symbol">:in</span><span>&nbsp;`setup'&nbsp;&nbsp;</span></span></li>
    <li class=""><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;from&nbsp;/usr/local/ruby/lib/ruby/1.8/irb.rb:54<span class="symbol">:in</span><span>&nbsp;`start'&nbsp;&nbsp;</span></span></li>
    <li class="alt"><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;from&nbsp;/usr/local/ruby/bin/irb:13&nbsp;&nbsp;</span></li>
</ol>
</div>
之后进入我就进入 /usr/local/ruby/lib/ruby/1.8/irb/completion.rb:10发现缺少readline包.<br />
然后进入/usr/local/src/ruby-1.8.6/ext/readline目录,执行 ruby extconf.rb 报:
<div class="dp-highlighter">
<div class="bar">&nbsp;</div>
<ol class="dp-rb" start="1">
    <li class="alt"><span><span>checking&nbsp;</span><span class="keyword">for</span><span>&nbsp;tgetnum()&nbsp;</span><span class="keyword">in</span><span>&nbsp;-lncurses...&nbsp;no&nbsp;&nbsp;</span></span></li>
    <li class=""><span>checking&nbsp;<span class="keyword">for</span><span>&nbsp;tgetnum()&nbsp;</span><span class="keyword">in</span><span>&nbsp;-ltermcap...&nbsp;no&nbsp;&nbsp;</span></span></li>
    <li class="alt"><span>checking&nbsp;<span class="keyword">for</span><span>&nbsp;tgetnum()&nbsp;</span><span class="keyword">in</span><span>&nbsp;-lcurses...&nbsp;no&nbsp;&nbsp;</span></span></li>
    <li class=""><span>checking&nbsp;<span class="keyword">for</span><span>&nbsp;readline/readline.h...&nbsp;yes&nbsp;&nbsp;</span></span></li>
    <li class="alt"><span>checking&nbsp;<span class="keyword">for</span><span>&nbsp;readline/history.h...&nbsp;yes&nbsp;&nbsp;</span></span></li>
    <li class=""><span>checking&nbsp;<span class="keyword">for</span><span>&nbsp;readline()&nbsp;</span><span class="keyword">in</span><span>&nbsp;-lreadline...&nbsp;no&nbsp;&nbsp;</span></span></li>
    <li class="alt"><span>checking&nbsp;<span class="keyword">for</span><span>&nbsp;readline()&nbsp;</span><span class="keyword">in</span><span>&nbsp;-ledit...&nbsp;no&nbsp;&nbsp;</span></span></li>
    <li class=""><span>checking&nbsp;<span class="keyword">for</span><span>&nbsp;editline/readline.h...&nbsp;no&nbsp;&nbsp;</span></span></li>
</ol>
</div>
这一段我也搞不清楚什么意思,我就试着在线安装<span><span>ncurses-devel.安装成功之后在 执行:
<div class="dp-highlighter">
<ol class="dp-j" start="1">
    <li class="alt"><span><span>ruby&nbsp;extconf.rb&nbsp;&nbsp;</span></span></li>
    <li class=""><span>make&nbsp;&amp;&amp;&nbsp;make&nbsp;install&nbsp;&nbsp;</span></li>
</ol>
</div>
报成功.之后就能正常启动了</span></span>
          <br/><br/>
          <span style="color:red;">
            <a href="http://minstrel.javaeye.com/blog/120273#comments" style="color:red;">已有 <strong>1</strong> 人发表留言，猛击-&gt;&gt;<strong>这里</strong>&lt;&lt;-参与讨论</a>
          </span>
          <br/><br/><br/>
          <span style="color:#E28822;">JavaEye推荐</span>
          <br/>
          <ul class='adverts'><li><a href='/adverts/42' target='_blank'><span style="color:red;font-weight:bold;">搜狐网站诚聘Java、PHP和C++工程师</span></a></li><li><a href='/adverts/41' target='_blank'><span style="color:red;font-weight:bold;">Windows7在微软WinHEC 2008上揭开神秘面纱</span></a></li></ul>
          <br/><br/><br/>
          ]]>
        </description>
        <pubDate>Tue, 04 Sep 2007 16:04:45 +0800</pubDate>
        <link>http://minstrel.javaeye.com/blog/120273</link>
        <guid>http://minstrel.javaeye.com/blog/120273</guid>
      </item>
          <item>
        <title>CentOS下通过代理安装rails</title>
        <author>minstrel</author>
        <description>
          <![CDATA[
          <br/>
          作者: <a href="http://minstrel.javaeye.com">minstrel</a>&nbsp;
                    链接：<a href="http://minstrel.javaeye.com/blog/115229" style="color:red;">http://minstrel.javaeye.com/blog/115229</a>&nbsp;
          发表时间: 2007年08月22日
          <br/><br/>
          声明：本文系JavaEye网站发布的原创博客文章，未经作者书面许可，严禁任何网站转载本文，否则必将追究法律责任！
          <br/><br/>
          <p><font face="Arial">[yourserver]# gem install rails -y --p <a href="http://youproxy:port">http://youproxy:port</a></font></p>
<p>或则</p>
<p><font face="Arial"><font face="Arial">[yourserver]# export http_proxy=http://youproxy:port<br />
[yourserver]# source /root/.bash_profile<br />
<font face="Arial">[yourserver]# gem install rails -y </font></font></font></p>
<p>参见： <font face="Arial"><a href="http://docs.rubygems.org/read/book/2">http://docs.rubygems.org/read/book/2</a></font></p>
          <br/><br/>
          <span style="color:red;">
            <a href="http://minstrel.javaeye.com/blog/115229#comments" style="color:red;">已有 <strong>0</strong> 人发表留言，猛击-&gt;&gt;<strong>这里</strong>&lt;&lt;-参与讨论</a>
          </span>
          <br/><br/><br/>
          <span style="color:#E28822;">JavaEye推荐</span>
          <br/>
          <ul class='adverts'><li><a href='/adverts/41' target='_blank'><span style="color:red;font-weight:bold;">Windows7在微软WinHEC 2008上揭开神秘面纱</span></a></li><li><a href='/adverts/42' target='_blank'><span style="color:red;font-weight:bold;">搜狐网站诚聘Java、PHP和C++工程师</span></a></li></ul>
          <br/><br/><br/>
          ]]>
        </description>
        <pubDate>Wed, 22 Aug 2007 12:43:20 +0800</pubDate>
        <link>http://minstrel.javaeye.com/blog/115229</link>
        <guid>http://minstrel.javaeye.com/blog/115229</guid>
      </item>
          <item>
        <title>CentOS5下安装RubyGems</title>
        <author>minstrel</author>
        <description>
          <![CDATA[
          <br/>
          作者: <a href="http://minstrel.javaeye.com">minstrel</a>&nbsp;
                    链接：<a href="http://minstrel.javaeye.com/blog/115191" style="color:red;">http://minstrel.javaeye.com/blog/115191</a>&nbsp;
          发表时间: 2007年08月22日
          <br/><br/>
          声明：本文系JavaEye网站发布的原创博客文章，未经作者书面许可，严禁任何网站转载本文，否则必将追究法律责任！
          <br/><br/>
          <p><font face="Arial"></font><font face="Arial"><font face="Arial">我的网络只能通过代理上公网，所以首先设置代理。<br />
[root@dlxtdb ~]# vi /etc/wgetrc<br />
增加一下内容（也可以找到相应项修改）<br />
http_proxy = 192.168.71.99:8080&nbsp; #192.168.71.99:8080&nbsp; 为代理服务器地址和端口<br />
ftp_proxy = 192.168.71.99:8080&nbsp; #192.168.71.99:8080&nbsp; 为代理服务器地址和端口<br />
use_proxy = on<br />
之后执行下面的指令<br />
[root@dlxtdb ~]# wget http://rubyforge.org/frs/download.php/20989/rubygems-0.9.4.tgz<br />
[root@dlxtdb ~]#&nbsp; tar xzf rubygems-0.9.4.tgz <br />
[root@dlxtdb ~]#&nbsp; cd rubygems-0.9.4<br />
[root@dlxtdb ~]#&nbsp; ruby setup.rb <br />
最后一步我的报错：no such file to load -- zlib (LoadError)<br />
因为我的系统是最小安装，所以没有安装zlib，执行下面指令：<br />
[root@dlxtdb rubygems-0.9.4]# yum install zlib-devel<br />
[root@dlxtdb rubygems-0.9.4]# yum install zlib<br />
下面查找ruby-1.8.6/ext/zlib/extconf.rb<br />
[root@dlxtdb rubygems-0.9.4]# find . -name extconf.rb&nbsp; <br />
进入ruby-1.8.6/ext/zlib目录,然后执行下面指令<br />
[root@dlxtdb zlib]# ruby extconf.rb<br />
[root@dlxtdb zlib]# make&amp;&amp;make install<br />
最后进入rubygems源文件目录<br />
[root@dlxtdb rubygems-0.9.4]# ruby setup.rb<br />
</font></font></p>
          <br/><br/>
          <span style="color:red;">
            <a href="http://minstrel.javaeye.com/blog/115191#comments" style="color:red;">已有 <strong>0</strong> 人发表留言，猛击-&gt;&gt;<strong>这里</strong>&lt;&lt;-参与讨论</a>
          </span>
          <br/><br/><br/>
          <span style="color:#E28822;">JavaEye推荐</span>
          <br/>
          <ul class='adverts'><li><a href='/adverts/42' target='_blank'><span style="color:red;font-weight:bold;">搜狐网站诚聘Java、PHP和C++工程师</span></a></li><li><a href='/adverts/41' target='_blank'><span style="color:red;font-weight:bold;">Windows7在微软WinHEC 2008上揭开神秘面纱</span></a></li></ul>
          <br/><br/><br/>
          ]]>
        </description>
        <pubDate>Wed, 22 Aug 2007 11:12:18 +0800</pubDate>
        <link>http://minstrel.javaeye.com/blog/115191</link>
        <guid>http://minstrel.javaeye.com/blog/115191</guid>
      </item>
          <item>
        <title>freeBSD下配置nginx+mongrel的rails部署环境</title>
        <author>minstrel</author>
        <description>
          <![CDATA[
          <br/>
          作者: <a href="http://minstrel.javaeye.com">minstrel</a>&nbsp;
                    链接：<a href="http://minstrel.javaeye.com/blog/114467" style="color:red;">http://minstrel.javaeye.com/blog/114467</a>&nbsp;
          发表时间: 2007年08月20日
          <br/><br/>
          声明：本文系JavaEye网站发布的原创博客文章，未经作者书面许可，严禁任何网站转载本文，否则必将追究法律责任！
          <br/><br/>
          <font face="Arial">
<div class="code_title"></div>
<p>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 最近准备帮朋友开发一个小型的应用，考虑再三决定使用ROR，因为朋友提供的独立主机是FreeBSD6.1，只好研究在FreeBSD下怎么安装production级别的ROR部署环境。</p>
<p><font face="Arial">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 至于基本的软件怎么安装我这里就不多说了，网上的资源、信息很多，我这里提一下的是由于对FreeBSD不熟悉，使用ports安装的软件总是无法正确配置（还有就是可安装的软件版本太低），所以全部源码安装最新版本的软件。最终安装组合是：Nginx+Mongrel+Rails+MYSQL。</font></p>
<p><font face="Arial">&nbsp; 小型应用，数据库就不说了MYSQL，重点就是WEB Server的前后端组合方案的的选择上了，查阅了大量网上资料，考虑了以下两种种备选方案：</font></p>
<p><font face="Arial">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; lighttpd ＋ fcgi 或者 nginx ＋mongrel，</font></p>
<p><font face="Arial">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 首先想优先考虑速度性能，毕竟都在传说ROR的速度性能差，准备挑选lighttpd+FastCGI方案，但大佬说FastCGI会因各种原因爆炸在发射台上（想必是一个难配置、难维护的翻案），还有lighttpd和FastCGI的通信是一个专有的通信协议（tcp/unix socket？fcgi协议？），想一想java WEB应用的ajp就有点怕，我等小虾米碰到通信出了问题只能抓瞎。还有rail装在什么上面（用后面来表达更好？）运行呀？协议还要一个东西接受转发给rails呀，估计配置肯定麻烦，我理解的ROR本质就是简单，不简单的肯定走不远。所以目前速度最优的方案放弃。</font></p>
<p><font face="Arial">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;下面就选择通信性能较差的，但稳定，并且配置简便的使用proxy http通行的 nginx+Mongrel架构。备选方案中除了lighttpd＋fcgi 就是nginx ＋mongrel主要是看了《Xen and the Art of Rails Deployment》中的：The year of the dog这句话，有点感想呀（也有人推荐 Swiftiply，说是性能更好，下一篇我会讲一下简单的配置过程）。</font></p>
<p>&nbsp;&nbsp;&nbsp;&nbsp; 讲一下我对nginx ＋mongrel的理解，其实就是nginx 接受公网上的http请求，然后nginx通过反向代理用http协议再把这些请求转发给mongrel，mongrel上启动的Rails对请求进行处理完后再把响应逆向返回，如果如果在高负载的情况下还可以通过mongrel_cluster启动的mongrel集群，并且在nginx上启动负载均衡以成倍的提高处理请求的能力。</p>
<p>&nbsp;&nbsp;&nbsp; 安装步骤：</p>
<p>&nbsp;&nbsp;&nbsp; 1，首先在<font face="Arial"><a href="http://nginx.net/">http://nginx.net/</a>上下载nginx，并安装。（本例安装在 /usr/local/nginx），通过/usr/local/nginx/sbin/nginx 启动，测试，（这个地方我不知道怎么停止nginx服务，只有kill进程）</font></p>
<p>&nbsp;&nbsp;&nbsp; 2，配置/usr/local/nginx/conf/nginx.conf,如下：</p>
<div class="dp-highlighter">
<div class="bar"></div>
<ol class="dp-rb">
    <li class="alt"><span><span>worker_processes&nbsp;&nbsp;1; &nbsp;&nbsp;</span></span> </li>
    <li class=""><span>error_log&nbsp;&nbsp;logs/error.log&nbsp;debug; &nbsp;&nbsp;</span> </li>
    <li class="alt"><span></span><span class="comment">#error_log&nbsp;&nbsp;logs/error.log&nbsp;&nbsp;notice; </span><span>&nbsp;&nbsp;</span> </li>
    <li class=""><span></span><span class="comment">#error_log&nbsp;&nbsp;logs/error.log&nbsp;&nbsp;info; </span><span>&nbsp;&nbsp;</span> </li>
    <li class="alt"><span></span><span class="comment">#pid&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;logs/nginx.pid; </span><span>&nbsp;&nbsp;</span> </li>
    <li class=""><span>events&nbsp;{ &nbsp;&nbsp;</span> </li>
    <li class="alt"><span>&nbsp;&nbsp;&nbsp;&nbsp;worker_connections&nbsp;&nbsp;1024; &nbsp;&nbsp;</span> </li>
    <li class=""><span>} &nbsp;&nbsp;</span> </li>
    <li class="alt"><span>http&nbsp;{ &nbsp;&nbsp;</span> </li>
    <li class=""><span>&nbsp;&nbsp;include&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;conf/mime.types; &nbsp;&nbsp;</span> </li>
    <li class="alt"><span>&nbsp;&nbsp;default_type&nbsp;&nbsp;application/octet-stream; &nbsp;&nbsp;</span> </li>
    <li class=""><span>&nbsp;&nbsp;sendfile&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;on; &nbsp;&nbsp;</span> </li>
    <li class="alt"><span>&nbsp;&nbsp;</span><span class="comment">#tcp_nopush&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;on; </span><span>&nbsp;&nbsp;</span> </li>
    <li class=""><span>&nbsp;&nbsp;keepalive_timeout&nbsp;&nbsp;65; &nbsp;&nbsp;</span> </li>
    <li class="alt"><span>&nbsp;&nbsp;tcp_nodelay&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;on; &nbsp;&nbsp;</span> </li>
    <li class=""><span>&nbsp;&nbsp;gzip&nbsp;&nbsp;on; &nbsp;&nbsp;</span> </li>
    <li class="alt"><span>&nbsp;&nbsp;gzip_min_length&nbsp;&nbsp;1100; &nbsp;&nbsp;</span> </li>
    <li class=""><span>&nbsp;&nbsp;gzip_buffers&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;4&nbsp;8k; &nbsp;&nbsp;</span> </li>
    <li class="alt"><span>&nbsp;&nbsp;gzip_types&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;text/plain; &nbsp;&nbsp;</span> </li>
    <li class=""><span>&nbsp;&nbsp;upstream&nbsp;mongrel&nbsp;{ &nbsp;&nbsp;</span> </li>
    <li class="alt"><span>&nbsp;&nbsp;&nbsp;&nbsp;server&nbsp;127.0.0.1:8000; &nbsp;&nbsp;</span> </li>
    <li class=""><span>&nbsp;&nbsp;&nbsp;&nbsp;server&nbsp;127.0.0.1:8001; &nbsp;&nbsp;</span> </li>
    <li class="alt"><span>&nbsp;&nbsp;} &nbsp;&nbsp;</span> </li>
    <li class=""><span>&nbsp;&nbsp;server&nbsp;{ &nbsp;&nbsp;</span> </li>
    <li class="alt"><span>&nbsp;&nbsp;&nbsp;&nbsp;listen&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;80; &nbsp;&nbsp;</span> </li>
    <li class=""><span>&nbsp;&nbsp;&nbsp;&nbsp;server_name&nbsp;&nbsp;XXX.XXX.XXX.XXX;&nbsp;&nbsp;</span><span class="comment">#你可以用你的域名代替以可以是你的对用户发布的IP </span><span>&nbsp;&nbsp;</span> </li>
    <li class="alt"><span>&nbsp;&nbsp;&nbsp;&nbsp;root&nbsp;/usr/local/depot/public; &nbsp;&nbsp;</span> </li>
    <li class=""><span>&nbsp;&nbsp;&nbsp;&nbsp;index&nbsp;&nbsp;index.html&nbsp;index.htm; &nbsp;&nbsp;</span> </li>
    <li class="alt"><span>&nbsp;&nbsp;&nbsp;&nbsp;location&nbsp;/&nbsp;{ &nbsp;&nbsp;</span> </li>
    <li class=""><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;proxy_set_header&nbsp;&nbsp;X-Real-IP&nbsp;&nbsp;</span><span class="variable">$remote_addr</span><span>; &nbsp;&nbsp;</span> </li>
    <li class="alt"><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;proxy_set_header&nbsp;&nbsp;X-Forwarded-For&nbsp;</span><span class="variable">$proxy_add_x_forwarded_for</span><span>; &nbsp;&nbsp;</span> </li>
    <li class=""><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;proxy_set_header&nbsp;Host&nbsp;</span><span class="variable">$http_host</span><span>; &nbsp;&nbsp;</span> </li>
    <li class="alt"><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;proxy_redirect&nbsp;</span><span class="keyword">false</span><span>; &nbsp;&nbsp;</span> </li>
    <li class=""><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span class="keyword">if</span><span>&nbsp;(-f&nbsp;</span><span class="variable">$request_filename</span><span>/index.html)&nbsp;{ &nbsp;&nbsp;</span> </li>
    <li class="alt"><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;rewrite&nbsp;(.*)&nbsp;</span><span class="variable">$1</span><span>/index.html&nbsp;</span><span class="keyword">break</span><span>; &nbsp;&nbsp;</span> </li>
    <li class=""><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;} &nbsp;&nbsp;</span> </li>
    <li class="alt"><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span class="keyword">if</span><span>&nbsp;(-f&nbsp;</span><span class="variable">$request_filename</span><span>.html)&nbsp;{ &nbsp;&nbsp;</span> </li>
    <li class=""><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;rewrite&nbsp;(.*)&nbsp;</span><span class="variable">$1</span><span>.html&nbsp;</span><span class="keyword">break</span><span>; &nbsp;&nbsp;</span> </li>
    <li class="alt"><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;} &nbsp;&nbsp;</span> </li>
    <li class=""><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span class="keyword">if</span><span>&nbsp;(!-f&nbsp;</span><span class="variable">$request_filename</span><span>)&nbsp;{ &nbsp;&nbsp;</span> </li>
    <li class="alt"><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;proxy_pass&nbsp;http://mongrel; &nbsp;&nbsp;</span> </li>
    <li class=""><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span class="keyword">break</span><span>; &nbsp;&nbsp;</span> </li>
    <li class="alt"><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;} &nbsp;&nbsp;</span> </li>
    <li class=""><span>&nbsp;&nbsp;&nbsp;&nbsp;} &nbsp;&nbsp;</span> </li>
    <li class="alt"><span>&nbsp;&nbsp;&nbsp;&nbsp;error_page&nbsp;&nbsp;&nbsp;500&nbsp;502&nbsp;503&nbsp;504&nbsp;&nbsp;/50x.html; &nbsp;&nbsp;</span> </li>
    <li class=""><span>&nbsp;&nbsp;&nbsp;&nbsp;location&nbsp;=&nbsp;/50x.html&nbsp;{ &nbsp;&nbsp;</span> </li>
    <li class="alt"><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;root&nbsp;&nbsp;&nbsp;html; &nbsp;&nbsp;</span> </li>
    <li class=""><span>&nbsp;&nbsp;&nbsp;&nbsp;} &nbsp;&nbsp;</span> </li>
    <li class="alt"><span>&nbsp;&nbsp;} &nbsp;&nbsp;</span> </li>
    <li class=""><span>} &nbsp;&nbsp;</span> </li>
</ol>
</div>
<p>&nbsp;<font face="Arial">3，通过下面命令安装mongrel和mongrel_cluster</font><font face="Arial"></font><font face="Arial"> </font>以上内容我就不用解释了，网上都有 </p>
<div class="dp-highlighter">
<div class="bar"></div>
<ol class="dp-rb">
    <li class="alt"><span><span>youserver</span><span class="comment">#gem&nbsp;install&nbsp;--include-dependencies&nbsp;mongrel </span><span>&nbsp;&nbsp;</span></span> </li>
    <li class=""><span>youserver</span><span class="comment">#gem&nbsp;install&nbsp;--include-dependencies&nbsp;mongrel_cluster </span><span>&nbsp;&nbsp;</span> </li>
</ol>
</div>
<p>&nbsp;&nbsp; 首先测试mongrel是否安装成功。通过应用的主目录（本例/usr/local/depot)下通过mongrel_rails start 启动mongrel服务，用户应该在<font face="Arial"><a href="http://XXX.XXX.XXX.XXX:3000/">http://XXX.XXX.XXX.XXX:3000/</a>&nbsp;下可以访问到ror的welcome aboard页面。</font></p>
<p>4，如果以上通过，通过一下命令配置mongrel集群。</p>
<div class="dp-highlighter">
<div class="bar"></div>
<ol class="dp-j">
    <li class="alt"><span><span>mongrel_rails&nbsp;cluster::configure&nbsp;-e&nbsp;development&nbsp;-p&nbsp;</span><span class="number">8000</span><span>&nbsp;&nbsp;\&nbsp; &nbsp;&nbsp;</span></span> </li>
    <li class=""><span>-a&nbsp;</span><span class="number">127.0</span><span>.</span><span class="number">0.1</span><span>&nbsp;-N&nbsp;</span><span class="number">2</span><span>&nbsp;-c&nbsp;/usr/local/depot &nbsp;&nbsp;</span> </li>
</ol>
</div>
<p>这句执行后在/usr/local/depot/config目录下应该多一个<font face="Arial">mongrel_cluster.yml文件，其中内容应该是：</font></p>
<div class="dp-highlighter">
<div class="bar"></div>
<ol class="dp-j">
    <li class="alt"><span><span>---&nbsp; &nbsp;&nbsp;</span></span> </li>
    <li class=""><span>cwd:&nbsp;/usr/local/depot &nbsp;&nbsp;</span> </li>
    <li class="alt"><span>log_file:&nbsp;log/mongrel.log &nbsp;&nbsp;</span> </li>
    <li class=""><span>port:&nbsp;</span><span class="string">&quot;8000&quot;</span><span>&nbsp;&nbsp;</span> </li>
    <li class="alt"><span>environment:&nbsp;development &nbsp;&nbsp;</span> </li>
    <li class=""><span>address:&nbsp;</span><span class="number">127.0</span><span>.</span><span class="number">0.1</span><span>&nbsp;&nbsp;</span> </li>
    <li class="alt"><span>pid_file:&nbsp;tmp/pids/mongrel.pid &nbsp;&nbsp;</span> </li>
    <li class=""><span>servers:&nbsp;</span><span class="number">2</span><span>&nbsp;&nbsp;</span> </li>
</ol>
</div>
<p>&nbsp;5，在应用主目录下通过命令<font face="Arial">mongrel_rails cluster::start</font>启动mongrel集群，启动成功后netstat 应该可以看到127.0.0.1的8000和8001处于监听状态。最后启动nginx</p>
<p>6，提供一点简单的测试代码</p>
<div class="dp-highlighter">
<ol class="dp-j">
    <li class="alt"><span><span>rugy&nbsp;script/generate&nbsp;controller&nbsp;Say&nbsp;&nbsp;</span></span> </li>
</ol>
</div>
<p>编辑 depot/app/controllers/say_controller.rb</p>
<div class="code_title">ruby 代码</div>
<div class="dp-highlighter">
<div class="bar"></div>
<ol class="dp-rb">
    <li class="alt"><span><span class="keyword">class</span><span>&nbsp;SayController&nbsp;&lt;&nbsp;ApplicationController &nbsp;&nbsp;</span></span> </li>
    <li class=""><span>&nbsp;&nbsp;</span><span class="keyword">def</span><span>&nbsp;hello &nbsp;&nbsp;</span> </li>
    <li class="alt"><span>&nbsp;&nbsp;</span><span class="keyword">end</span><span>&nbsp;&nbsp;</span> </li>
    <li class=""><span></span><span class="keyword">end</span><span>&nbsp;&nbsp;</span> </li>
</ol>
</div>
<p>编辑depot/app/<font face="Arial">views/say/hello.rhtml</font></p>
<div class="dp-highlighter">
<div class="bar"></div>
<ol class="dp-xml">
    <li class="alt"><span><span class="tag">&lt;</span><span class="tag-name">html</span><span class="tag">&gt;</span><span>&nbsp;&nbsp;</span></span> </li>
    <li class=""><span></span><span class="tag">&lt;</span><span class="tag-name">head</span><span class="tag">&gt;</span><span>&nbsp;&nbsp;</span> </li>
    <li class="alt"><span></span><span class="tag">&lt;</span><span class="tag-name">title</span><span class="tag">&gt;</span><span>Hello,Rails!</span><span class="tag"><span class="tag-name">title</span><span class="tag">&gt;</span><span>&nbsp;&nbsp;</span> </span></li>
    <li class=""><span></span><span class="tag"><span class="tag-name">head</span><span class="tag">&gt;</span><span>&nbsp;&nbsp;</span> </span></li>
    <li class="alt"><span></span><span class="tag">&lt;</span><span class="tag-name">body</span><span class="tag">&gt;</span><span>&nbsp;&nbsp;</span> </li>
    <li class=""><span>&nbsp;&nbsp;&nbsp;&nbsp;</span><span class="tag">&lt;</span><span class="tag-name">h1</span><span class="tag">&gt;</span><span>Hello&nbsp;from&nbsp;Rails!</span><span class="tag"><span class="tag-name">h1</span><span class="tag">&gt;</span><span>&nbsp;&nbsp;</span> </span></li>
    <li class="alt"><span>&nbsp;&nbsp;&nbsp;&nbsp;</span><span class="tag">&lt;</span><span class="tag-name">p</span><span class="tag">&gt;</span><span>&nbsp;&nbsp;</span> </li>
    <li class=""><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;It&nbsp;is&nbsp;nwo&nbsp;</span><span class="tag">&lt;</span><span>%=Time.now&nbsp;%</span><span class="tag">&gt;</span><span>&nbsp;&nbsp;</span> </li>
    <li class="alt"><span>&nbsp;&nbsp;&nbsp;&nbsp;</span><span class="tag"><span class="tag-name">p</span><span class="tag">&gt;</span><span>&nbsp;&nbsp;</span> </span></li>
    <li class=""><span></span><span class="tag"><span class="tag-name">body</span><span class="tag">&gt;</span><span>&nbsp;&nbsp;</span> </span></li>
    <li class="alt"><span></span><span class="tag"><span class="tag-name">html</span><span class="tag">&gt;</span><span>&nbsp;&nbsp;</span> </span></li>
</ol>
</div>
<p>&nbsp;最后，说点自己的感受。 </p>
<p>1，通过nginx.conf的配置你可以把http请求反向代理到任何一个内网的已在服务的web server上甚至web service上，很有点SOA的感觉</p>
<p>2，配置简单</p>
<p>&nbsp;</p>
</font>
          <br/><br/>
          <span style="color:red;">
            <a href="http://minstrel.javaeye.com/blog/114467#comments" style="color:red;">已有 <strong>0</strong> 人发表留言，猛击-&gt;&gt;<strong>这里</strong>&lt;&lt;-参与讨论</a>
          </span>
          <br/><br/><br/>
          <span style="color:#E28822;">JavaEye推荐</span>
          <br/>
          <ul class='adverts'><li><a href='/adverts/42' target='_blank'><span style="color:red;font-weight:bold;">搜狐网站诚聘Java、PHP和C++工程师</span></a></li><li><a href='/adverts/41' target='_blank'><span style="color:red;font-weight:bold;">Windows7在微软WinHEC 2008上揭开神秘面纱</span></a></li></ul>
          <br/><br/><br/>
          ]]>
        </description>
        <pubDate>Mon, 20 Aug 2007 23:43:52 +0800</pubDate>
        <link>http://minstrel.javaeye.com/blog/114467</link>
        <guid>http://minstrel.javaeye.com/blog/114467</guid>
      </item>
      </channel>
</rss>