<?xml version="1.0" encoding="UTF-8"?>
<feed xmlns="http://www.w3.org/2005/Atom">
  <id>http://blog.designrecipe.jp/</id>
  <title>Design Recipe &#21029;&#39208; Blog - Home</title>
  <updated>2011-08-14T14:55:00Z</updated>
  <link rel="alternate" href="http://blog.designrecipe.jp/"/>
  <link rel="self" href="http://blog.designrecipe.jp/feed/atom.xml"/>
  <author>
    <name>Design Recipe</name>
    <uri>http://blog.designrecipe.jp</uri>
  </author>
  <entry>
    <id>tag:blog.designrecipe.jp,2011-08-14:/2011/08/14/koans/</id>
    <title type="html">&#12510;&#12473;&#12479;&#12540;&#12398;&#23566;&#12365;&#12434;&#21463;&#12369;&#12388;&#12388;&#12289;TDD &#12391; Ruby &#12434;&#23398;&#12403;&#12394;&#12364;&#12425;&#24735;&#12426;&#12434;&#38283;&#12367; - Koans</title>
    <published>2011-08-14T14:55:00Z</published>
    <updated>2011-08-14T14:55:00Z</updated>
    <link rel="alternate" href="http://blog.designrecipe.jp/2011/08/14/koans/"/>
    <content type="html">&lt;h3 id="koans-"&gt;Koans &#12392;&#12399;&lt;/h3&gt;

&lt;p&gt;&#12463;&#12452;&#12474;&#24418;&#24335;&#12391; Ruby &#12434;&#23398;&#12406; Koans&#12290;&#12381;&#12398;&#25163;&#27861;&#12364;&#12394;&#12363;&#12394;&#12363;&#20957;&#12387;&#12390;&#12356;&#12427;&#12290;&lt;/p&gt;

&lt;p&gt;&lt;img src="/assets/images/ruby-misc/koans-w500.png" alt="koans" /&gt;&lt;/p&gt;

&lt;ul&gt;
  &lt;li&gt;&lt;a href="http://rubykoans.com/"&gt;Learn Ruby with the EdgeCase Ruby Koans&lt;/a&gt;&lt;br /&gt;
&#12371;&#12371;&#12391;&#12399;&#19978;&#35352;&#12363;&#12425;&#12480;&#12454;&#12531;&#12525;&#12540;&#12489;&#12391;&#12365;&#12427; 2010/12/23 &#26085;&#29256;&#12434;&#21033;&#29992;&#12375;&#12383;&#12290;
    &lt;ul&gt;
      &lt;li&gt;&lt;a href="https://github.com/edgecase/ruby_koans"&gt;edgecase/ruby_koans - GitHub&lt;/a&gt;&lt;br /&gt;
GitHub &#12391;&#12477;&#12540;&#12473;&#12399;&#31649;&#29702;&#12373;&#12428;&#12390;&#12356;&#12427;&#12290;&lt;/li&gt;
    &lt;/ul&gt;
  &lt;/li&gt;
&lt;/ul&gt;

&lt;blockquote&gt;
  &lt;p&gt;The goal is to learn the Ruby language, syntax, structure, and some common functions and libraries. We also teach you culture. Testing is not just something we pay lip service to, but something we live. It is essential in your quest to learn and do great things in the language.&lt;/p&gt;
&lt;/blockquote&gt;

&lt;p&gt;Koans &#12399; Ruby &#35328;&#35486;&#12398;&#25991;&#27861;&#12289;&#27083;&#36896;&#12289;&#12381;&#12375;&#12390;&#12289;&#24190;&#12388;&#12363;&#12398;&#20849;&#36890;&#38306;&#25968;&#12420;&#12521;&#12452;&#12502;&#12521;&#12522;&#12434;&#23398;&#12406;&#12371;&#12392;&#12434;&#12468;&#12540;&#12523;&#12392;&#12375;&#12383;&#12418;&#12398;&#12391;&#12289;TDD &#12398;&#25163;&#27861;&#12434;&#29992;&#12356;&#12390;&#12381;&#12428;&#12434;&#23455;&#29694;&#12375;&#12390;&#12356;&#12427;&#12290;&lt;/p&gt;

&lt;p&gt;&lt;code&gt;path_to_enlightenment.rb&lt;/code&gt; &#12392;&#12356;&#12358;&#12501;&#12449;&#12452;&#12523;&#12434;&#36215;&#21205;&#12377;&#12427;&#12371;&#12392;&#12391;&#12289;&#12354;&#12427;&#12486;&#12473;&#12488;&#12465;&#12540;&#12473;&#12364;&#12459;&#12523;&#12510;&#12395;&#12480;&#12513;&#12540;&#12472;&#12434;&#19982;&#12360;&#12383;&#12392;&#12398;&#12513;&#12483;&#12475;&#12540;&#12472;&#12364;&#34920;&#31034;&#12373;&#12428;&#12289;&#12510;&#12473;&#12479;&#12540;&#12363;&#12425;&#21161;&#35328;&#12434;&#25480;&#12363;&#12427;&#12371;&#12392;&#12395;&#12394;&#12427;&#12290;&lt;br /&gt;
&#34920;&#31034;&#12373;&#12428;&#12427;&#12513;&#12483;&#12475;&#12540;&#12472;&#12434;&#38972;&#12426;&#12395;&#12486;&#12473;&#12488;&#12465;&#12540;&#12473;&#12434;&#12497;&#12473;&#12377;&#12427;&#12424;&#12358;&#12395;&#20462;&#27491;&#12375;&#12390;&#12356;&#12367;&#12371;&#12392;&#12391;&#12289;&#27425;&#12398;&#26032;&#12383;&#12394;&#35373;&#21839;(&#26032;&#12383;&#12394;&#12459;&#12523;&#12510;&#12408;&#12398;&#12480;&#12513;&#12540;&#12472;)&#12408;&#12392;&#36914;&#12415;&#12289;30&#12385;&#12423;&#12387;&#12392;&#12398;&#12459;&#12486;&#12468;&#12522;&#12398;&#35336;272&#21839;(2010/12/23&#29256;)&#12398;&#35373;&#21839;&#12434;&#12463;&#12522;&#12450;&#12377;&#12427;&#12371;&#12392;&#12391;&#24735;&#12426;&#12434;&#12402;&#12425;&#12369;&#12427;&#12371;&#12392;&#12395;&#12394;&#12427;&#12290;&lt;/p&gt;

&lt;p&gt;&#35373;&#21839;&#12434;&#12463;&#12522;&#12450;&#12375;&#12390;&#12356;&#12367;&#36942;&#31243;&#12399;&#20197;&#19979;&#12398;&#12424;&#12358;&#12395;&#12394;&#12427;&#12290;&lt;br /&gt;
&#20363;&#12360;&#12400;2&#30058;&#30446;&#12398;&#35373;&#21839;&#12399;&#20197;&#19979;&#12398;&#36890;&#12426;&#12392;&#12394;&#12387;&#12390;&#12356;&#12427;&#12290;&lt;/p&gt;

&lt;p&gt;&lt;img src="/assets/images/ruby-misc/koans2-w500.png" alt="koans2" /&gt;&lt;/p&gt;

&lt;p&gt;&#12510;&#12473;&#12479;&#12540;&#12364;&#12300;&#21531;&#12399;&#12414;&#12384;&#24735;&#12426;&#12434;&#12402;&#12425;&#12356;&#12390;&#12356;&#12394;&#12356;&#12301;&#12392;&#35328;&#12387;&#12390;&#12356;&#12427;&#12290;&#8221;The answers you seek&#8230;&#8221; &#12392;&#12356;&#12358;&#12371;&#12392;&#12391; &#8220;This shoud be true &#8211; Please fix this&#8221; &#12392;&#12354;&#12427;&#12290;&lt;br /&gt;
&#12300;please meditate on the following code:&#12301;&#12392;&#12356;&#12358;&#12371;&#12392;&#12391;&#12289;&lt;code&gt;about_asserts.rb:16:in &lt;/code&gt;test_assert_with_message&#8217;` &#12364;&#25351;&#23450;&#12373;&#12428;&#12390;&#12356;&#12427;&#12398;&#12391;&#12289;&#35442;&#24403;&#12501;&#12449;&#12452;&#12523;&#12398;&#35442;&#24403;&#34892;&#12434;&#30906;&#35469;&#12377;&#12427;&#12392;&#12289;&lt;/p&gt;

&lt;pre class="ruby"&gt;&lt;code class="language-ruby"&gt;  # Enlightenment may be more easily achieved with appropriate
  # messages.
  def test_assert_with_message
    assert false, "This should be true -- Please fix this"  # line: 16
  end
&lt;/code&gt;&lt;/pre&gt;

&lt;p&gt;&lt;code&gt;assert&lt;/code&gt; &#12364; false &#12392;&#12394;&#12387;&#12390;&#12356;&#12427;&#12290;&#24403;&#28982;&#12371;&#12428;&#12391;&#12399;&#12486;&#12473;&#12488;&#12399;&#36890;&#12425;&#12394;&#12356;&#12398;&#12391;&#12289;true &#12395;&#26360;&#12365;&#22793;&#12360;&#12390;&#20445;&#23384;&#12377;&#12427;&#12290;&lt;/p&gt;

&lt;p&gt;&#20877;&#24230; &lt;code&gt;path_to_enlightenment.rb&lt;/code&gt; &#12434;&#36215;&#21205;&#12375;&#12390;&#12354;&#12370;&#12427;&#12392;&#12289;&lt;/p&gt;

&lt;pre class="ruby"&gt;&lt;code class="language-ruby"&gt;$ ruby path_to_enlightenment.rb 
AboutAsserts#test_assert_truth has expanded your awareness.
AboutAsserts#test_assert_with_message has expanded your awareness.
AboutAsserts#test_assert_equality has damaged your karma.

The Master says:
  You have not yet reached enlightenment.
  You are progressing. Excellent. 2 completed.

The answers you seek...
  Failed assertion, no message given.

Please meditate on the following code:
  /home/hoge/Dropbox/work/koans/about_asserts.rb:25:in `test_assert_equality'

learn the rules so you know how to break them properly
your path thus far [.X________________________________________________] 2/274
&lt;/code&gt;&lt;/pre&gt;

&lt;p&gt;&#27425;&#12398;&#35373;&#21839;&#12408;&#12392;&#32154;&#12367;&#12290;&lt;/p&gt;

&lt;p&gt;&#22522;&#26412;&#12399;&#12289;&#12486;&#12473;&#12488;&#12465;&#12540;&#12473;&#12398;&#12450;&#12469;&#12540;&#12471;&#12519;&#12531;&#12398;&#26399;&#24453;&#20516;&#12434;&#22475;&#12417;&#12390;&#12356;&#12367;&#12371;&#12392;&#12391;&#35373;&#21839;&#12395;&#31572;&#12360;&#12390;&#12356;&#12367;&#12371;&#12392;&#12395;&#12394;&#12427;&#12290;&lt;/p&gt;

&lt;p&gt;&#12513;&#12483;&#12475;&#12540;&#12472;(&#8220;The ansers you seek&#8230;&#8220;)&#12395;&#26082;&#12395;&#31572;&#12360;&#12364;&#20986;&#12390;&#12375;&#12414;&#12387;&#12390;&#12399;&#12356;&#12427;&#12364;&#12289;&#12381;&#12371;&#12399;&#12376;&#12387;&#12367;&#12426;&#35501;&#12414;&#12378;&#12395;&#12289;&#12486;&#12473;&#12488;&#12465;&#12540;&#12473;&#12392;&#12486;&#12473;&#12488;&#12513;&#12477;&#12483;&#12489;&#21517;&#12398;&#26041;&#12395;&#38598;&#20013;&#12375;&#12390;&#20309;&#12434;&#23398;&#12400;&#12379;&#12424;&#12358;&#12392;&#12375;&#12390;&#12356;&#12427;&#12398;&#12363;&#38957;&#12398;&#29255;&#38533;&#12395;&#32622;&#12365;&#12394;&#12364;&#12425;&#26399;&#24453;&#20516;&#12434;&#32771;&#12360;&#12390;&#12356;&#12427;&#12392;&#12289;&#12424;&#12367;&#32771;&#12360;&#12425;&#12428;&#12383;&#35373;&#21839;&#12395;&#12394;&#12387;&#12390;&#12356;&#12427;&#12394;&#12353;&#12392;&#24863;&#24515;&#12375;&#12390;&#12375;&#12414;&#12358;&#12290;&lt;/p&gt;

&lt;p&gt;&#26368;&#21021;&#12398;&#26041;&#12371;&#12381;&#19978;&#35352;&#12398;&#12424;&#12358;&#12394;&#12507;&#12531;&#12488;&#12395;&#21021;&#27497;&#30340;&#12394;&#35373;&#21839;&#12384;&#12364;&#12289;&#24464;&#12293;&#12395;&#20869;&#23481;&#12364;&#28611;&#12367;&#12394;&#12387;&#12390;&#12367;&#12427;&#12398;&#12391;&#12289;&#12394;&#12363;&#12394;&#12363;&#33391;&#12356;&#24489;&#32722;&#12289;&#21193;&#24375;&#12395;&#12394;&#12427;&#12290;&lt;/p&gt;

&lt;p&gt;&#12414;&#12383;&#12289;&#19968;&#27671;&#12395; 274 &#21839;&#23455;&#26045;&#12377;&#12427;&#12398;&#12399;&#27969;&#30707;&#12395;&#12461;&#12484;&#12452;&#12398;&#12391;&#12289;&#12391;&#12365;&#12427;&#26178;&#38291;&#12395;&#23569;&#12375;&#12389;&#12388;&#23455;&#26045;&#12377;&#12427;&#12371;&#12392;&#12364;&#21487;&#33021;&#12394;&#20316;&#12426;&#12395;&#12394;&#12387;&#12390;&#12356;&#12427;&#12398;&#12418;&#12358;&#12428;&#12375;&#12356;&#12290;&#20309;&#21839;&#30446;&#12414;&#12391;&#22238;&#31572;&#12391;&#12365;&#12390;&#12356;&#12427;&#12363;&#12399; &lt;code&gt;.path_progress&lt;/code&gt; &#12392;&#12356;&#12358;&#12501;&#12449;&#12452;&#12523;&#12364;&#35226;&#12360;&#12390;&#12362;&#12356;&#12390;&#12367;&#12428;&#12390;&#12356;&#12427;&#12398;&#12391;&#12289;&#29305;&#12395;&#24847;&#35672;&#12377;&#12427;&#12371;&#12392;&#12394;&#12367;&#12289;&lt;code&gt;path_to_enlightenment.rb&lt;/code&gt; &#12434;&#36215;&#21205;&#12377;&#12428;&#12400;&#21069;&#22238;&#12398;&#35373;&#21839;&#12363;&#12425;&#32154;&#12365;&#12434;&#34892;&#12358;&#12371;&#12392;&#12364;&#12391;&#12365;&#12427;&#12290;&lt;/p&gt;

&lt;h3 id="watchr-"&gt;watchr &#12434;&#20351;&#12387;&#12390;&#22238;&#31572;&#12395;&#38598;&#20013;&lt;/h3&gt;

&lt;p&gt;&#35373;&#21839;&#12395;&#31572;&#12360;&#12390;&#12399; &lt;code&gt;path_to_enlightenment.rb&lt;/code&gt; &#12434;&#36215;&#21205;&#12377;&#12427;&#12392;&#12356;&#12358;&#12398;&#12399;&#12513;&#12531;&#12489;&#12452;&#12290;&lt;br /&gt;
&#33258;&#21205;&#21270;&#12375;&#12390;&#12362;&#12367;&#12290;&lt;/p&gt;

&lt;p&gt;watchr gem &#12434;&#20351;&#12358;&#12392;&#12501;&#12449;&#12452;&#12523;&#12434;&#30435;&#35222;&#19979;&#12395;&#12362;&#12365;&#12289;&#32232;&#38598;&#12373;&#12428;&#12383;&#38555;&#12395;&#23455;&#34892;&#12373;&#12379;&#12383;&#12356;&#12371;&#12392;&#12434;&#23450;&#32681;&#12377;&#12427;&#12371;&#12392;&#12364;&#12391;&#12365;&#12427;&#12290;
&#22238;&#31572;&#12434;&#35352;&#36848;&#12377;&#12427;&#12501;&#12449;&#12452;&#12523;&#12434;&#32232;&#38598;&#12377;&#12427;&#12383;&#12403;&#12395;&#33258;&#21205;&#30340;&#12395; &lt;code&gt;path_to_enlightenment.rb&lt;/code&gt; &#12364;&#23455;&#34892;&#12373;&#12428;&#12427;&#12424;&#12358;&#12395;&#12375;&#12390;&#12362;&#12367;&#12290;&lt;/p&gt;

&lt;p&gt;watchr &#12434;&#12452;&#12531;&#12473;&#12488;&#12540;&#12523;&#12375;&#12390;&#12356;&#12394;&#12356;&#22580;&#21512;&#12399;&#12452;&#12531;&#12473;&#12488;&#12540;&#12523;&#12375;&#12390;&#12362;&#12367;&#12290;&lt;/p&gt;

&lt;pre class="shell"&gt;&lt;code class="language-shell"&gt;$ sudo gem install watchr
&lt;/code&gt;&lt;/pre&gt;

&lt;p&gt;&lt;code&gt;path_to_enlightenment.rb&lt;/code&gt; &#12392;&#21516;&#12376;&#12487;&#12451;&#12524;&#12463;&#12488;&#12522;&#12395;&#20197;&#19979;&#12398;&#12501;&#12449;&#12452;&#12523;&#12434;&#29992;&#24847;&#12375;&#12390;&#12362;&#12367;&#12290;&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;&lt;code&gt;koans.watchr&lt;/code&gt;&lt;/strong&gt;:&lt;/p&gt;

&lt;pre class="ruby"&gt;&lt;code class="language-ruby"&gt;def run
  system("clear; ruby path_to_enlightenment.rb")
end

watch('.*\.rb$') { run }
run
&lt;/code&gt;&lt;/pre&gt;

&lt;p&gt;watchr &#12434;&#36215;&#21205;&#12375;&#12390;&#12362;&#12367;&#12290;&lt;/p&gt;

&lt;pre class="ruby"&gt;&lt;code class="language-ruby"&gt;$ watchr koans.watchr
&lt;/code&gt;&lt;/pre&gt;

&lt;p&gt;&#12371;&#12428;&#12391;&#22238;&#31572;&#12434;&#34892;&#12358;&#12501;&#12449;&#12452;&#12523;&#12434;&#32232;&#38598;&#12377;&#12427;&#24230;&#12395;&#12467;&#12531;&#12477;&#12540;&#12523;&#12364;&#12522;&#12501;&#12524;&#12483;&#12471;&#12517;&#12373;&#12428; &lt;code&gt;path_to_enlightenment.rb&lt;/code&gt; &#12398;&#32080;&#26524;&#12434;&#30906;&#35469;&#12377;&#12427;&#12371;&#12392;&#12364;&#12391;&#12365;&#12427;&#12290;&lt;/p&gt;

&lt;h3 id="trianglerb"&gt;&lt;code&gt;triangle.rb&lt;/code&gt;&lt;/h3&gt;

&lt;p&gt;&#22823;&#21322;&#12399; assertion &#12398;&#26399;&#24453;&#20516;&#12434;&#22475;&#12417;&#12390;&#12356;&#12367;&#12398;&#12384;&#12364;&#12289;&#12486;&#12473;&#12488;&#12465;&#12540;&#12473;&#12434;&#36890;&#12377;&#28858;&#12398;&#38306;&#25968;&#12434;&#26360;&#12367;&#35373;&#21839;&#12418;&#12354;&#12427;&#12290;&lt;/p&gt;

&lt;p&gt;&#20197;&#19979;&#12398;2&#21839;&#12290;&lt;/p&gt;

&lt;ul&gt;
  &lt;li&gt;&#35373;&#21839;&#12381;&#12398;1&#65306;&lt;strong&gt;&lt;code&gt;about_triangle_project.rb&lt;/code&gt;&lt;/strong&gt;&lt;/li&gt;
&lt;/ul&gt;

&lt;pre class="ruby"&gt;&lt;code class="language-ruby"&gt;class AboutTriangleProject &amp;lt; EdgeCase::Koan
  def test_equilateral_triangles_have_equal_sides
    assert_equal :equilateral, triangle(2, 2, 2)
    assert_equal :equilateral, triangle(10, 10, 10)
  end

  def test_isosceles_triangles_have_exactly_two_sides_equal
    assert_equal :isosceles, triangle(3, 4, 4)
    assert_equal :isosceles, triangle(4, 3, 4)
    assert_equal :isosceles, triangle(4, 4, 3)
    assert_equal :isosceles, triangle(10, 10, 2)
  end

  def test_scalene_triangles_have_no_equal_sides
    assert_equal :scalene, triangle(3, 4, 5)
    assert_equal :scalene, triangle(10, 11, 12)
    assert_equal :scalene, triangle(5, 4, 2)
  end
end
&lt;/code&gt;&lt;/pre&gt;

&lt;ul&gt;
  &lt;li&gt;&#35373;&#21839;&#12381;&#12398;2&#65306;&lt;strong&gt;&lt;code&gt;about_triangle_project_2.rb&lt;/code&gt;&lt;/strong&gt;&lt;/li&gt;
&lt;/ul&gt;

&lt;pre class="ruby"&gt;&lt;code class="language-ruby"&gt;class AboutTriangleProject2 &amp;lt; EdgeCase::Koan
  # The first assignment did not talk about how to handle errors.
  # Let's handle that part now.
  def test_illegal_triangles_throw_exceptions
    assert_raise(TriangleError) do triangle(0, 0, 0) end
    assert_raise(TriangleError) do triangle(3, 4, -5) end
    assert_raise(TriangleError) do triangle(1, 1, 3) end
    assert_raise(TriangleError) do triangle(2, 4, 2) end
 end
end
&lt;/code&gt;&lt;/pre&gt;

&lt;p&gt;&#35373;&#21839;&#12381;&#12398;1&#12398;&#12486;&#12473;&#12488;&#12398;&#35201;&#20214;&#12434;&#28288;&#12383;&#12377;&#38306;&#25968;&#12434;&#29992;&#24847;&#12375;&#12289;&#12363;&#12388;&#12289;&#35373;&#21839;&#12381;&#12398;2&#12398;&#21046;&#32004;&#12418;&#12497;&#12473;&#12377;&#12427;&#24517;&#35201;&#12364;&#12354;&#12427;&#12290;&lt;/p&gt;

&lt;p&gt;&#31572;&#12360;&#12399;&#25552;&#20379;&#12373;&#12428;&#12390;&#12356;&#12394;&#12356;(&#35211;&#12388;&#12369;&#12425;&#12428;&#12394;&#12363;&#12387;&#12383;&#12290;&#12290;)&#12398;&#12391;&#12289;&#12505;&#12473;&#12488;&#12450;&#12531;&#12469;&#12540;&#12363;&#12393;&#12358;&#12363;&#12399;&#12431;&#12363;&#12425;&#12394;&#12356;&#12364;&#12289;&#20197;&#19979;&#12398;&#38306;&#25968;&#12434;&#26360;&#12367;&#12371;&#12392;&#12391;&#12486;&#12473;&#12488;&#12434;&#12497;&#12473;&#12375;&#12390;&#12356;&#12427;&#12290;&lt;br /&gt;
&#12484;&#12483;&#12467;&#12511;&#12354;&#12426;&#12414;&#12375;&#12383;&#12425;&#12372;&#25351;&#25688;&#39000;&#12356;&#12383;&#12356;&#12290;&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;&lt;code&gt;triangle.rb&lt;/code&gt;&lt;/strong&gt;:&lt;/p&gt;

&lt;pre class="ruby"&gt;&lt;code class="language-ruby"&gt;def triangle(a, b, c)
  raise TriangleError.new if [a, b, c].any? { |e| e &amp;lt;= 0 }
  raise TriangleError.new if ((a + b) &amp;lt;= c) || ((a + c) &amp;lt;= b) || ((b + c ) &amp;lt;= a)

  case [a, b, c].uniq.size
    when 1 then :equilateral
    when 2 then :isosceles
    else :scalene
  end
end
&lt;/code&gt;&lt;/pre&gt;
</content>
    <summary type="html">&lt;h3 id="koans-"&gt;Koans &#12392;&#12399;&lt;/h3&gt;

&lt;p&gt;&#12463;&#12452;&#12474;&#24418;&#24335;&#12391; Ruby &#12434;&#23398;&#12406; Koans&#12290;&#12381;&#12398;&#25163;&#27861;&#12364;&#12394;&#12363;&#12394;&#12363;&#20957;&#12387;&#12390;&#12356;&#12427;&#12290;&lt;/p&gt;

&lt;p&gt;&lt;img src="/assets/images/ruby-misc/koans-w500.png" alt="koans" /&gt;&lt;/p&gt;

&lt;ul&gt;
  &lt;li&gt;&lt;a href="http://rubykoans.com/"&gt;Learn Ruby with the EdgeCase Ruby Koans&lt;/a&gt;&lt;br /&gt;
&#12371;&#12371;&#12391;&#12399;&#19978;&#35352;&#12363;&#12425;&#12480;&#12454;&#12531;&#12525;&#12540;&#12489;&#12391;&#12365;&#12427; 2010/12/23 &#26085;&#29256;&#12434;&#21033;&#29992;&#12375;&#12383;&#12290;
    &lt;ul&gt;
      &lt;li&gt;&lt;a href="https://github.com/edgecase/ruby_koans"&gt;edgecase/ruby_koans - GitHub&lt;/a&gt;&lt;br /&gt;
GitHub &#12391;&#12477;&#12540;&#12473;&#12399;&#31649;&#29702;&#12373;&#12428;&#12390;&#12356;&#12427;&#12290;&lt;/li&gt;
    &lt;/ul&gt;
  &lt;/li&gt;
&lt;/ul&gt;

&lt;blockquote&gt;
  &lt;p&gt;The goal is to learn the Ruby language, syntax, structure, and some common functions and libraries. We also teach you culture. Testing is not just something we pay lip service to, but something we live. It is essential in your quest to learn and do great things in the language.&lt;/p&gt;
&lt;/blockquote&gt;

&lt;p&gt;Koans &#12399; Ruby &#35328;&#35486;&#12398;&#25991;&#27861;&#12289;&#27083;&#36896;&#12289;&#12381;&#12375;&#12390;&#12289;&#24190;&#12388;&#12363;&#12398;&#20849;&#36890;&#38306;&#25968;&#12420;&#12521;&#12452;&#12502;&#12521;&#12522;&#12434;&#23398;&#12406;&#12371;&#12392;&#12434;&#12468;&#12540;&#12523;&#12392;&#12375;&#12383;&#12418;&#12398;&#12391;&#12289;TDD &#12398;&#25163;&#27861;&#12434;&#29992;&#12356;&#12390;&#12381;&#12428;&#12434;&#23455;&#29694;&#12375;&#12390;&#12356;&#12427;&#12290;&lt;/p&gt;

&lt;p&gt;&lt;code&gt;path_to_enlightenment.rb&lt;/code&gt; &#12392;&#12356;&#12358;&#12501;&#12449;&#12452;&#12523;&#12434;&#36215;&#21205;&#12377;&#12427;&#12371;&#12392;&#12391;&#12289;&#12354;&#12427;&#12486;&#12473;&#12488;&#12465;&#12540;&#12473;&#12364;&#12459;&#12523;&#12510;&#12395;&#12480;&#12513;&#12540;&#12472;&#12434;&#19982;&#12360;&#12383;&#12392;&#12398;&#12513;&#12483;&#12475;&#12540;&#12472;&#12364;&#34920;&#31034;&#12373;&#12428;&#12289;&#12510;&#12473;&#12479;&#12540;&#12363;&#12425;&#21161;&#35328;&#12434;&#25480;&#12363;&#12427;&#12371;&#12392;&#12395;&#12394;&#12427;&#12290;&lt;br /&gt;
&#34920;&#31034;&#12373;&#12428;&#12427;&#12513;&#12483;&#12475;&#12540;&#12472;&#12434;&#38972;&#12426;&#12395;&#12486;&#12473;&#12488;&#12465;&#12540;&#12473;&#12434;&#12497;&#12473;&#12377;&#12427;&#12424;&#12358;&#12395;&#20462;&#27491;&#12375;&#12390;&#12356;&#12367;&#12371;&#12392;&#12391;&#12289;&#27425;&#12398;&#26032;&#12383;&#12394;&#35373;&#21839;(&#26032;&#12383;&#12394;&#12459;&#12523;&#12510;&#12408;&#12398;&#12480;&#12513;&#12540;&#12472;)&#12408;&#12392;&#36914;&#12415;&#12289;30&#12385;&#12423;&#12387;&#12392;&#12398;&#12459;&#12486;&#12468;&#12522;&#12398;&#35336;272&#21839;(2010/12/23&#29256;)&#12398;&#35373;&#21839;&#12434;&#12463;&#12522;&#12450;&#12377;&#12427;&#12371;&#12392;&#12391;&#24735;&#12426;&#12434;&#12402;&#12425;&#12369;&#12427;&#12371;&#12392;&#12395;&#12394;&#12427;&#12290;&lt;/p&gt;

&lt;p&gt;&#35373;&#21839;&#12434;&#12463;&#12522;&#12450;&#12375;&#12390;&#12356;&#12367;&#36942;&#31243;&#12399;&#20197;&#19979;&#12398;&#12424;&#12358;&#12395;&#12394;&#12427;&#12290;&lt;br /&gt;
&#20363;&#12360;&#12400;2&#30058;&#30446;&#12398;&#35373;&#21839;&#12399;&#20197;&#19979;&#12398;&#36890;&#12426;&#12392;&#12394;&#12387;&#12390;&#12356;&#12427;&#12290;&lt;/p&gt;

&lt;p&gt;&lt;img src="/assets/images/ruby-misc/koans2-w500.png" alt="koans2" /&gt;&lt;/p&gt;

&lt;p&gt;&#12510;&#12473;&#12479;&#12540;&#12364;&#12300;&#21531;&#12399;&#12414;&#12384;&#24735;&#12426;&#12434;&#12402;&#12425;&#12356;&#12390;&#12356;&#12394;&#12356;&#12301;&#12392;&#35328;&#12387;&#12390;&#12356;&#12427;&#12290;&#8221;The answers you seek&#8230;&#8221; &#12392;&#12356;&#12358;&#12371;&#12392;&#12391; &#8220;This shoud be true &#8211; Please fix this&#8221; &#12392;&#12354;&#12427;&#12290;&lt;br /&gt;
&#12300;please meditate on the following code:&#12301;&#12392;&#12356;&#12358;&#12371;&#12392;&#12391;&#12289;&lt;code&gt;about_asserts.rb:16:in &lt;/code&gt;test_assert_with_message&#8217;` &#12364;&#25351;&#23450;&#12373;&#12428;&#12390;&#12356;&#12427;&#12398;&#12391;&#12289;&#35442;&#24403;&#12501;&#12449;&#12452;&#12523;&#12398;&#35442;&#24403;&#34892;&#12434;&#30906;&#35469;&#12377;&#12427;&#12392;&#12289;&lt;/p&gt;

&lt;pre class="ruby"&gt;&lt;code class="language-ruby"&gt;  # Enlightenment may be more easily achieved with appropriate
  # messages.
  def test_assert_with_message
    assert false, "This should be true -- Please fix this"  # line: 16
  end
&lt;/code&gt;&lt;/pre&gt;

&lt;p&gt;&lt;code&gt;assert&lt;/code&gt; &#12364; false &#12392;&#12394;&#12387;&#12390;&#12356;&#12427;&#12290;&#24403;&#28982;&#12371;&#12428;&#12391;&#12399;&#12486;&#12473;&#12488;&#12399;&#36890;&#12425;&#12394;&#12356;&#12398;&#12391;&#12289;true &#12395;&#26360;&#12365;&#22793;&#12360;&#12390;&#20445;&#23384;&#12377;&#12427;&#12290;&lt;/p&gt;

&lt;p&gt;&#20877;&#24230; &lt;code&gt;path_to_enlightenment.rb&lt;/code&gt; &#12434;&#36215;&#21205;&#12375;&#12390;&#12354;&#12370;&#12427;&#12392;&#12289;&lt;/p&gt;

&lt;pre class="ruby"&gt;&lt;code class="language-ruby"&gt;$ ruby path_to_enlightenment.rb 
AboutAsserts#test_assert_truth has expanded your awareness.
AboutAsserts#test_assert_with_message has expanded your awareness.
AboutAsserts#test_assert_equality has damaged your karma.

The Master says:
  You have not yet reached enlightenment.
  You are progressing. Excellent. 2 completed.

The answers you seek...
  Failed assertion, no message given.

Please meditate on the following code:
  /home/hoge/Dropbox/work/koans/about_asserts.rb:25:in `test_assert_equality'

learn the rules so you know how to break them properly
your path thus far [.X________________________________________________] 2/274
&lt;/code&gt;&lt;/pre&gt;

&lt;p&gt;&#27425;&#12398;&#35373;&#21839;&#12408;&#12392;&#32154;&#12367;&#12290;&lt;/p&gt;

&lt;p&gt;&#22522;&#26412;&#12399;&#12289;&#12486;&#12473;&#12488;&#12465;&#12540;&#12473;&#12398;&#12450;&#12469;&#12540;&#12471;&#12519;&#12531;&#12398;&#26399;&#24453;&#20516;&#12434;&#22475;&#12417;&#12390;&#12356;&#12367;&#12371;&#12392;&#12391;&#35373;&#21839;&#12395;&#31572;&#12360;&#12390;&#12356;&#12367;&#12371;&#12392;&#12395;&#12394;&#12427;&#12290;&lt;/p&gt;

&lt;p&gt;&#12513;&#12483;&#12475;&#12540;&#12472;(&#8220;The ansers you seek&#8230;&#8220;)&#12395;&#26082;&#12395;&#31572;&#12360;&#12364;&#20986;&#12390;&#12375;&#12414;&#12387;&#12390;&#12399;&#12356;&#12427;&#12364;&#12289;&#12381;&#12371;&#12399;&#12376;&#12387;&#12367;&#12426;&#35501;&#12414;&#12378;&#12395;&#12289;&#12486;&#12473;&#12488;&#12465;&#12540;&#12473;&#12392;&#12486;&#12473;&#12488;&#12513;&#12477;&#12483;&#12489;&#21517;&#12398;&#26041;&#12395;&#38598;&#20013;&#12375;&#12390;&#20309;&#12434;&#23398;&#12400;&#12379;&#12424;&#12358;&#12392;&#12375;&#12390;&#12356;&#12427;&#12398;&#12363;&#38957;&#12398;&#29255;&#38533;&#12395;&#32622;&#12365;&#12394;&#12364;&#12425;&#26399;&#24453;&#20516;&#12434;&#32771;&#12360;&#12390;&#12356;&#12427;&#12392;&#12289;&#12424;&#12367;&#32771;&#12360;&#12425;&#12428;&#12383;&#35373;&#21839;&#12395;&#12394;&#12387;&#12390;&#12356;&#12427;&#12394;&#12353;&#12392;&#24863;&#24515;&#12375;&#12390;&#12375;&#12414;&#12358;&#12290;&lt;/p&gt;

&lt;p&gt;&#26368;&#21021;&#12398;&#26041;&#12371;&#12381;&#19978;&#35352;&#12398;&#12424;&#12358;&#12394;&#12507;&#12531;&#12488;&#12395;&#21021;&#27497;&#30340;&#12394;&#35373;&#21839;&#12384;&#12364;&#12289;&#24464;&#12293;&#12395;&#20869;&#23481;&#12364;&#28611;&#12367;&#12394;&#12387;&#12390;&#12367;&#12427;&#12398;&#12391;&#12289;&#12394;&#12363;&#12394;&#12363;&#33391;&#12356;&#24489;&#32722;&#12289;&#21193;&#24375;&#12395;&#12394;&#12427;&#12290;&lt;/p&gt;

&lt;p&gt;&#12414;&#12383;&#12289;&#19968;&#27671;&#12395; 274 &#21839;&#23455;&#26045;&#12377;&#12427;&#12398;&#12399;&#27969;&#30707;&#12395;&#12461;&#12484;&#12452;&#12398;&#12391;&#12289;&#12391;&#12365;&#12427;&#26178;&#38291;&#12395;&#23569;&#12375;&#12389;&#12388;&#23455;&#26045;&#12377;&#12427;&#12371;&#12392;&#12364;&#21487;&#33021;&#12394;&#20316;&#12426;&#12395;&#12394;&#12387;&#12390;&#12356;&#12427;&#12398;&#12418;&#12358;&#12428;&#12375;&#12356;&#12290;&#20309;&#21839;&#30446;&#12414;&#12391;&#22238;&#31572;&#12391;&#12365;&#12390;&#12356;&#12427;&#12363;&#12399; &lt;code&gt;.path_progress&lt;/code&gt; &#12392;&#12356;&#12358;&#12501;&#12449;&#12452;&#12523;&#12364;&#35226;&#12360;&#12390;&#12362;&#12356;&#12390;&#12367;&#12428;&#12390;&#12356;&#12427;&#12398;&#12391;&#12289;&#29305;&#12395;&#24847;&#35672;&#12377;&#12427;&#12371;&#12392;&#12394;&#12367;&#12289;&lt;code&gt;path_to_enlightenment.rb&lt;/code&gt; &#12434;&#36215;&#21205;&#12377;&#12428;&#12400;&#21069;&#22238;&#12398;&#35373;&#21839;&#12363;&#12425;&#32154;&#12365;&#12434;&#34892;&#12358;&#12371;&#12392;&#12364;&#12391;&#12365;&#12427;&#12290;&lt;/p&gt;

&lt;h3 id="watchr-"&gt;watchr &#12434;&#20351;&#12387;&#12390;&#22238;&#31572;&#12395;&#38598;&#20013;&lt;/h3&gt;

&lt;p&gt;&#35373;&#21839;&#12395;&#31572;&#12360;&#12390;&#12399; &lt;code&gt;path_to_enlightenment.rb&lt;/code&gt; &#12434;&#36215;&#21205;&#12377;&#12427;&#12392;&#12356;&#12358;&#12398;&#12399;&#12513;&#12531;&#12489;&#12452;&#12290;&lt;br /&gt;
&#33258;&#21205;&#21270;&#12375;&#12390;&#12362;&#12367;&#12290;&lt;/p&gt;

&lt;p&gt;watchr gem &#12434;&#20351;&#12358;&#12392;&#12501;&#12449;&#12452;&#12523;&#12434;&#30435;&#35222;&#19979;&#12395;&#12362;&#12365;&#12289;&#32232;&#38598;&#12373;&#12428;&#12383;&#38555;&#12395;&#23455;&#34892;&#12373;&#12379;&#12383;&#12356;&#12371;&#12392;&#12434;&#23450;&#32681;&#12377;&#12427;&#12371;&#12392;&#12364;&#12391;&#12365;&#12427;&#12290;
&#22238;&#31572;&#12434;&#35352;&#36848;&#12377;&#12427;&#12501;&#12449;&#12452;&#12523;&#12434;&#32232;&#38598;&#12377;&#12427;&#12383;&#12403;&#12395;&#33258;&#21205;&#30340;&#12395; &lt;code&gt;path_to_enlightenment.rb&lt;/code&gt; &#12364;&#23455;&#34892;&#12373;&#12428;&#12427;&#12424;&#12358;&#12395;&#12375;&#12390;&#12362;&#12367;&#12290;&lt;/p&gt;

&lt;p&gt;watchr &#12434;&#12452;&#12531;&#12473;&#12488;&#12540;&#12523;&#12375;&#12390;&#12356;&#12394;&#12356;&#22580;&#21512;&#12399;&#12452;&#12531;&#12473;&#12488;&#12540;&#12523;&#12375;&#12390;&#12362;&#12367;&#12290;&lt;/p&gt;

&lt;pre class="shell"&gt;&lt;code class="language-shell"&gt;$ sudo gem install watchr
&lt;/code&gt;&lt;/pre&gt;

&lt;p&gt;&lt;code&gt;path_to_enlightenment.rb&lt;/code&gt; &#12392;&#21516;&#12376;&#12487;&#12451;&#12524;&#12463;&#12488;&#12522;&#12395;&#20197;&#19979;&#12398;&#12501;&#12449;&#12452;&#12523;&#12434;&#29992;&#24847;&#12375;&#12390;&#12362;&#12367;&#12290;&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;&lt;code&gt;koans.watchr&lt;/code&gt;&lt;/strong&gt;:&lt;/p&gt;

&lt;pre class="ruby"&gt;&lt;code class="language-ruby"&gt;def run
  system("clear; ruby path_to_enlightenment.rb")
end

watch('.*\.rb$') { run }
run
&lt;/code&gt;&lt;/pre&gt;

&lt;p&gt;watchr &#12434;&#36215;&#21205;&#12375;&#12390;&#12362;&#12367;&#12290;&lt;/p&gt;

&lt;pre class="ruby"&gt;&lt;code class="language-ruby"&gt;$ watchr koans.watchr
&lt;/code&gt;&lt;/pre&gt;

&lt;p&gt;&#12371;&#12428;&#12391;&#22238;&#31572;&#12434;&#34892;&#12358;&#12501;&#12449;&#12452;&#12523;&#12434;&#32232;&#38598;&#12377;&#12427;&#24230;&#12395;&#12467;&#12531;&#12477;&#12540;&#12523;&#12364;&#12522;&#12501;&#12524;&#12483;&#12471;&#12517;&#12373;&#12428; &lt;code&gt;path_to_enlightenment.rb&lt;/code&gt; &#12398;&#32080;&#26524;&#12434;&#30906;&#35469;&#12377;&#12427;&#12371;&#12392;&#12364;&#12391;&#12365;&#12427;&#12290;&lt;/p&gt;

&lt;h3 id="trianglerb"&gt;&lt;code&gt;triangle.rb&lt;/code&gt;&lt;/h3&gt;

&lt;p&gt;&#22823;&#21322;&#12399; assertion &#12398;&#26399;&#24453;&#20516;&#12434;&#22475;&#12417;&#12390;&#12356;&#12367;&#12398;&#12384;&#12364;&#12289;&#12486;&#12473;&#12488;&#12465;&#12540;&#12473;&#12434;&#36890;&#12377;&#28858;&#12398;&#38306;&#25968;&#12434;&#26360;&#12367;&#35373;&#21839;&#12418;&#12354;&#12427;&#12290;&lt;/p&gt;

&lt;p&gt;&#20197;&#19979;&#12398;2&#21839;&#12290;&lt;/p&gt;

&lt;ul&gt;
  &lt;li&gt;&#35373;&#21839;&#12381;&#12398;1&#65306;&lt;strong&gt;&lt;code&gt;about_triangle_project.rb&lt;/code&gt;&lt;/strong&gt;&lt;/li&gt;
&lt;/ul&gt;

&lt;pre class="ruby"&gt;&lt;code class="language-ruby"&gt;class AboutTriangleProject &amp;lt; EdgeCase::Koan
  def test_equilateral_triangles_have_equal_sides
    assert_equal :equilateral, triangle(2, 2, 2)
    assert_equal :equilateral, triangle(10, 10, 10)
  end

  def test_isosceles_triangles_have_exactly_two_sides_equal
    assert_equal :isosceles, triangle(3, 4, 4)
    assert_equal :isosceles, triangle(4, 3, 4)
    assert_equal :isosceles, triangle(4, 4, 3)
    assert_equal :isosceles, triangle(10, 10, 2)
  end

  def test_scalene_triangles_have_no_equal_sides
    assert_equal :scalene, triangle(3, 4, 5)
    assert_equal :scalene, triangle(10, 11, 12)
    assert_equal :scalene, triangle(5, 4, 2)
  end
end
&lt;/code&gt;&lt;/pre&gt;

&lt;ul&gt;
  &lt;li&gt;&#35373;&#21839;&#12381;&#12398;2&#65306;&lt;strong&gt;&lt;code&gt;about_triangle_project_2.rb&lt;/code&gt;&lt;/strong&gt;&lt;/li&gt;
&lt;/ul&gt;

&lt;pre class="ruby"&gt;&lt;code class="language-ruby"&gt;class AboutTriangleProject2 &amp;lt; EdgeCase::Koan
  # The first assignment did not talk about how to handle errors.
  # Let's handle that part now.
  def test_illegal_triangles_throw_exceptions
    assert_raise(TriangleError) do triangle(0, 0, 0) end
    assert_raise(TriangleError) do triangle(3, 4, -5) end
    assert_raise(TriangleError) do triangle(1, 1, 3) end
    assert_raise(TriangleError) do triangle(2, 4, 2) end
 end
end
&lt;/code&gt;&lt;/pre&gt;

&lt;p&gt;&#35373;&#21839;&#12381;&#12398;1&#12398;&#12486;&#12473;&#12488;&#12398;&#35201;&#20214;&#12434;&#28288;&#12383;&#12377;&#38306;&#25968;&#12434;&#29992;&#24847;&#12375;&#12289;&#12363;&#12388;&#12289;&#35373;&#21839;&#12381;&#12398;2&#12398;&#21046;&#32004;&#12418;&#12497;&#12473;&#12377;&#12427;&#24517;&#35201;&#12364;&#12354;&#12427;&#12290;&lt;/p&gt;

&lt;p&gt;&#31572;&#12360;&#12399;&#25552;&#20379;&#12373;&#12428;&#12390;&#12356;&#12394;&#12356;(&#35211;&#12388;&#12369;&#12425;&#12428;&#12394;&#12363;&#12387;&#12383;&#12290;&#12290;)&#12398;&#12391;&#12289;&#12505;&#12473;&#12488;&#12450;&#12531;&#12469;&#12540;&#12363;&#12393;&#12358;&#12363;&#12399;&#12431;&#12363;&#12425;&#12394;&#12356;&#12364;&#12289;&#20197;&#19979;&#12398;&#38306;&#25968;&#12434;&#26360;&#12367;&#12371;&#12392;&#12391;&#12486;&#12473;&#12488;&#12434;&#12497;&#12473;&#12375;&#12390;&#12356;&#12427;&#12290;&lt;br /&gt;
&#12484;&#12483;&#12467;&#12511;&#12354;&#12426;&#12414;&#12375;&#12383;&#12425;&#12372;&#25351;&#25688;&#39000;&#12356;&#12383;&#12356;&#12290;&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;&lt;code&gt;triangle.rb&lt;/code&gt;&lt;/strong&gt;:&lt;/p&gt;

&lt;pre class="ruby"&gt;&lt;code class="language-ruby"&gt;def triangle(a, b, c)
  raise TriangleError.new if [a, b, c].any? { |e| e &amp;lt;= 0 }
  raise TriangleError.new if ((a + b) &amp;lt;= c) || ((a + c) &amp;lt;= b) || ((b + c ) &amp;lt;= a)

  case [a, b, c].uniq.size
    when 1 then :equilateral
    when 2 then :isosceles
    else :scalene
  end
end
&lt;/code&gt;&lt;/pre&gt;
</summary>
  </entry>
  <entry>
    <id>tag:blog.designrecipe.jp,2011-07-30:/2011/07/30/unicorn/</id>
    <title type="html">Rack &#12450;&#12503;&#12522;&#12465;&#12540;&#12471;&#12519;&#12531;&#21521;&#12369;&#12398; HTTP &#12469;&#12540;&#12496; Unicorn &#12398;&#22522;&#26412;&#25805;&#20316;</title>
    <published>2011-07-30T14:55:00Z</published>
    <updated>2011-07-30T14:55:00Z</updated>
    <link rel="alternate" href="http://blog.designrecipe.jp/2011/07/30/unicorn/"/>
    <content type="html">&lt;h3 id="unicorn-"&gt;Unicorn &#12392;&#12399;&#65311;&lt;/h3&gt;

&lt;p&gt;Rails&#12289;Rack &#12450;&#12503;&#12522;&#12465;&#12540;&#12471;&#12519;&#12531;&#12434;&#21205;&#20316;&#12373;&#12379;&#12427;&#12467;&#12531;&#12486;&#12490;&#12392;&#12375;&#12390;&#12399;&#12289;&lt;a href="http://www.modrails.com/"&gt;Passenger&lt;/a&gt;&#12289;&lt;a href="http://code.macournoyer.com/thin/"&gt;Thin&lt;/a&gt;&#12289;Mongrel &#12394;&#12393;&#12398;&#36984;&#25246;&#32930;&#12364;&#12354;&#12427;&#12290;
&#12381;&#12428;&#20197;&#22806;&#12395;&#12418; Unicorn &#12392;&#12356;&#12358; Rack &#12450;&#12503;&#12522;&#12465;&#12540;&#12471;&#12519;&#12531;&#21521;&#12369;&#12398; HTTP &#12469;&#12540;&#12496;&#12364;&#12354;&#12426;&#12289;&#20170;&#22238;&#35430;&#12375;&#12395;&#20351;&#12387;&#12390;&#12415;&#12383;&#12398;&#12391;&#12381;&#12398;&#12513;&#12514;&#12290;&lt;/p&gt;

&lt;ul&gt;
  &lt;li&gt;&lt;a href="http://unicorn.bogomips.org"&gt;Unicorn: Rack HTTP server for fast clients and Unix&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;&#35373;&#35336;&#26041;&#37341;&#12395;&#29305;&#24500;&#30340;&#12394;&#37096;&#20998;&#12364;&#12354;&#12426;&#12289;&#20197;&#19979;&#12398;&#35352;&#20107;&#12395;&#35443;&#12375;&#12356;&#12290;&lt;/p&gt;

&lt;ul&gt;
  &lt;li&gt;&lt;a href="https://github.com/blog/517-unicorn"&gt;Unicorn! - GitHub&lt;/a&gt;&lt;br /&gt;
Unicorn &#12434;&#20351;&#29992;&#12375;&#12390;&#12356;&#12427; github &#12398;&#35352;&#20107;&lt;/li&gt;
  &lt;li&gt;&lt;a href="http://d.hatena.ne.jp/tkng/20100707/1278517873"&gt;Unicorn&#12391;Sinatra&#12450;&#12503;&#12522;&#12434;&#12487;&#12503;&#12525;&#12452;&#12375;&#12390;&#12415;&#12383; - &#23556;&#25731;&#12375;&#12388;&#12388;&#21069;&#36578;&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;github &#12398;&#35352;&#20107;&#12398;&#32080;&#35542;&#12391;&#26360;&#12363;&#12428;&#12390;&#12356;&#12427;&#12364;&#12289;&lt;/p&gt;

&lt;blockquote&gt;
  &lt;p&gt;Passenger is awesome. Mongrel is awesome. Thin is awesome.&lt;/p&gt;

  &lt;p&gt;Use what works best for you. Decide what you need and evaluate the available options based on those needs. Don&#8217;t pick a tool because GitHub uses it, pick a tool because it solves the problems you have.&lt;/p&gt;
&lt;/blockquote&gt;

&lt;p&gt;&#12381;&#12428;&#12382;&#12428;&#12398; HTTP &#12469;&#12540;&#12496;&#12364;&#33391;&#12356;&#28857;&#12434;&#25345;&#12387;&#12390;&#12362;&#12426;&#12289;&#33258;&#36523;&#12398;&#12469;&#12540;&#12499;&#12473;&#12398;&#29992;&#36884;&#12289;&#30446;&#30340;&#12395;&#24540;&#12376;&#12390;&#36969;&#20999;&#12394;&#12418;&#12398;&#12434;&#20351;&#29992;&#12377;&#12427;&#12398;&#12364;&#12424;&#12356;&#12391;&#12375;&#12423;&#12358;&#12392;&#12290;&lt;/p&gt;

&lt;p&gt;&#12469;&#12540;&#12496;&#12398;&#33391;&#12375;&#24746;&#12375;&#12434;&#28204;&#12427;&#38917;&#30446;&#12398;1&#38917;&#30446;&#12392;&#12375;&#12390; ab &#12434;&#20351;&#12387;&#12383;&#12505;&#12531;&#12481;&#12394;&#12393;&#12364;&#12424;&#12367;&#12392;&#12425;&#12428;&#12390;&#12356;&#12427;&#12290;
&#30906;&#12363;&#12395;&#12473;&#12523;&#12540;&#12503;&#12483;&#12488;&#12395;&#12354;&#12427;&#31243;&#24230;&#12398;&#12524;&#12505;&#12523;&#12398;&#12418;&#12398;&#12399;&#35201;&#27714;&#12375;&#12383;&#12356;&#12364;&#12289;&#12381;&#12428;&#12424;&#12426;&#12418;&#36939;&#29992;&#12395;&#20837;&#12387;&#12383;&#38555;&#12398;&#23433;&#23450;&#24615;&#12289;&#20449;&#38972;&#24615;&#12289;&#20309;&#12363;&#21839;&#38988;&#12364;&#36215;&#12365;&#12383;&#38555;&#12398;&#12522;&#12459;&#12496;&#12522;&#21547;&#12417;&#12383;&#21487;&#29992;&#24615;&#12398;&#37096;&#20998;&#12434;&#27671;&#12395;&#12375;&#12390;&#12356;&#12383;&#12290;&lt;/p&gt;

&lt;p&gt;&#20170;&#22238; Unicorn &#12434;&#35430;&#12375;&#12390;&#12415;&#12424;&#12358;&#12392;&#24605;&#12387;&#12383;&#12398;&#12399;&#12289;&#12381;&#12371;&#12395;&#12354;&#12426;&#12289;&#20808;&#12398;&#35352;&#20107;&#12395;&#12418;&#12289;&#20197;&#19979;&#12398;&#35352;&#36617;&#12364;&#12354;&#12426;&#12289;Unicorn &#12434;&#35430;&#12375;&#12390;&#12415;&#12427;&#12371;&#12392;&#12395;&#12375;&#12383;&#12290;&lt;/p&gt;

&lt;blockquote&gt;
  &lt;p&gt;Honestly, I don&#8217;t care. I want a production environment that can gracefully handle chaos more than I want something that&#8217;s screaming fast. I want stability and reliability over raw speed.&lt;/p&gt;
&lt;/blockquote&gt;

&lt;p&gt;&#12371;&#12371;&#12391;&#35352;&#36617;&#12377;&#12427;&#12398;&#12399; Unicorn &#12434;&#21205;&#20316;&#12373;&#12379;&#12427;&#12414;&#12391;&#12398;&#22522;&#26412;&#30340;&#12394;&#35373;&#23450;&#12392; Unicorn &#12434;&#25805;&#20316;&#12377;&#12427;&#22522;&#26412;&#30340;&#12394;&#12458;&#12506;&#12524;&#12540;&#12471;&#12519;&#12531;&#12398;&#12513;&#12514;&#12395;&#12394;&#12427;&#12290;&lt;/p&gt;

&lt;ul&gt;
  &lt;li&gt;Unicorn &#12398;&#12452;&#12531;&#12473;&#12488;&#12540;&#12523;&#12392;&#20107;&#21069;&#28310;&#20633;&lt;/li&gt;
  &lt;li&gt;Unicorn &#12398;&#35373;&#23450;&#12501;&#12449;&#12452;&#12523;&#12434;&#29992;&#24847;&#12377;&#12427;&lt;/li&gt;
  &lt;li&gt;Unicorn &#12469;&#12540;&#12496;&#12434;&#36215;&#21205;&#12377;&#12427;&lt;/li&gt;
  &lt;li&gt;nginx &#12392; Unicorn &#12434;&#36899;&#25658;&#12377;&#12427;&lt;/li&gt;
  &lt;li&gt;Unicorn &#12434;&#20572;&#27490;&#12377;&#12427;&lt;/li&gt;
  &lt;li&gt;Unicorn &#12398;&#35373;&#23450;&#12398;&#20877;&#35501;&#36796;&lt;/li&gt;
  &lt;li&gt;&#12469;&#12540;&#12499;&#12473;&#12398;&#25552;&#20379;&#12434;&#27490;&#12417;&#12378;&#12395;&#12503;&#12525;&#12464;&#12521;&#12512;&#12398;&#20877;&#35501;&#36796;&lt;/li&gt;
&lt;/ul&gt;

&lt;h3 id="unicorn--1"&gt;Unicorn &#12398;&#12452;&#12531;&#12473;&#12488;&#12540;&#12523;&#12392;&#20107;&#21069;&#28310;&#20633;&lt;/h3&gt;

&lt;p&gt;&#20170;&#22238;&#12398;&#12362;&#35430;&#12375;&#29872;&#22659;&#12399;&#20197;&#19979;&#12398;&#36890;&#12426;&#12392;&#12394;&#12427;&#12290;&lt;/p&gt;

&lt;ul&gt;
  &lt;li&gt;&#12450;&#12503;&#12522;&#12395;&#12399;&#31777;&#21336;&#12394; Sinatra Hello World &#12450;&#12503;&#12522;&#12434;&#20351;&#29992;&lt;/li&gt;
  &lt;li&gt;Unicorn &#12469;&#12540;&#12496;&#12398;&#12501;&#12525;&#12531;&#12488;&#12399; nginx &#12434;&#12522;&#12496;&#12540;&#12473;&#12503;&#12525;&#12461;&#12471;&#12392;&#12375;&#12390;&#12383;&#12390;&#12427;&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;Unicorn &#20197;&#22806;&#12395; nginx &#12392; Sinatra gem &#12364;&#12452;&#12531;&#12473;&#12488;&#12540;&#12523;&#12373;&#12428;&#12390;&#12356;&#12427;&#24517;&#35201;&#12364;&#12354;&#12427;&#12290;&lt;/p&gt;

&lt;p&gt;Unicorn &#12399; RubyGems &#12391;&#25552;&#20379;&#12373;&#12428;&#12390;&#12356;&#12427;&#12398;&#12391; gem &#12467;&#12510;&#12531;&#12489;&#12434;&#20351;&#29992;&#12375;&#12390;&#12452;&#12531;&#12473;&#12488;&#12540;&#12523;&#12377;&#12427;&#12290;&lt;/p&gt;

&lt;pre class="shell"&gt;&lt;code class="language-shell"&gt;# gem install unicorn
&lt;/code&gt;&lt;/pre&gt;

&lt;p&gt;&#21205;&#20316;&#29872;&#22659;&#12398;&#12469;&#12531;&#12503;&#12523;&#12392;&#12375;&#12390; Sinatra &#12450;&#12503;&#12522;&#12465;&#12540;&#12471;&#12519;&#12531;&#12434;&#29992;&#24847;&#12377;&#12427;&#12290;&lt;br /&gt;
(Sinatra &#12364;&#12452;&#12531;&#12473;&#12488;&#12540;&#12523;&#12373;&#12428;&#12390;&#12356;&#12394;&#12356;&#22580;&#21512;&#12395;&#12399;&#12289;&lt;code&gt;# gem install sinatra&lt;/code&gt; &#12364;&#24517;&#35201;&#12290;)&lt;/p&gt;

&lt;p&gt;&#36969;&#24403;&#12394;&#12487;&#12451;&#12524;&#12463;&#12488;&#12522;(&lt;strong&gt;&lt;code&gt;$APP_DIR&lt;/code&gt;&lt;/strong&gt;)&#12395; Rack &#12450;&#12503;&#12522;&#12465;&#12540;&#12471;&#12519;&#12531;&#12398;&#12456;&#12531;&#12488;&#12522;&#12509;&#12452;&#12531;&#12488;&#12392;&#12394;&#12427;&#12501;&#12449;&#12452;&#12523; &lt;code&gt;config.ru&lt;/code&gt; &#12434;&#29992;&#24847;&#12375;&#12289;&#31777;&#21336;&#12394; HelloWorld &#12450;&#12503;&#12522;&#12465;&#12540;&#12471;&#12519;&#12531;&#12434;&#35352;&#36848;&#12375;&#12390;&#12362;&#12367;&#12290;&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;&lt;code&gt;$APP_DIR/config.ru&lt;/code&gt;&lt;/strong&gt;:&lt;/p&gt;

&lt;pre class="ruby"&gt;&lt;code class="language-ruby"&gt;require 'rubygems'
require 'sinatra/base'

class HelloApp &amp;lt; Sinatra::Base
  get '/hello' do
    'Hello World'
  end
end

run HelloApp
&lt;/code&gt;&lt;/pre&gt;

&lt;p&gt;Rack &#12398; rackup &#12467;&#12510;&#12531;&#12489;&#12434;&#20351;&#29992;&#12375;&#12390;&#12289;&#19978;&#35352;&#12398;&#12450;&#12503;&#12522;&#12364;&#12365;&#12385;&#12435;&#12392;&#21205;&#20316;&#12377;&#12427;&#12371;&#12392;&#12434;&#30906;&#35469;&#12375;&#12390;&#12362;&#12367;&#12290;&lt;/p&gt;

&lt;pre class="shell"&gt;&lt;code class="language-shell"&gt;$ cd $APP_DIR
$ rackup
[2011-07-30 21:15:38] INFO  WEBrick 1.3.1
[2011-07-30 21:15:38] INFO  ruby 1.9.2 (2011-02-18) [i686-linux]
[2011-07-30 21:15:38] INFO  WEBrick::HTTPServer#start: pid=6260 port=9292
&lt;/code&gt;&lt;/pre&gt;

&lt;p&gt;&#12502;&#12521;&#12454;&#12470;&#12363;&#12425;&#12289;&lt;code&gt;http://localhost:9292/hello&lt;/code&gt; &#12398; URI &#12391; &#8220;Hello World&#8221; &#12364;&#34920;&#31034;&#12373;&#12428;&#12427;&#12371;&#12392;&#12434;&#30906;&#35469;&#12375;&#12390;&#12362;&#12367;&#12290;&lt;/p&gt;

&lt;h3 id="unicorn--2"&gt;Unicorn &#12398;&#35373;&#23450;&#12501;&#12449;&#12452;&#12523;&#12434;&#29992;&#24847;&#12377;&#12427;&lt;/h3&gt;

&lt;p&gt;Unicorn &#12399; unicorn &#12467;&#12510;&#12531;&#12489;&#12434;&#20351;&#12387;&#12390;&#36215;&#21205;&#12377;&#12427;&#12364;&#12289;&#36215;&#21205;&#26178;&#12395;&#35373;&#23450;&#12501;&#12449;&#12452;&#12523;&#12434;&#25351;&#23450;&#12375;&#12390;&#36215;&#21205;&#12377;&#12427;&#12371;&#12392;&#12364;&#12391;&#12365;&#12427;&#12290;&lt;br /&gt;
&#35373;&#23450;&#20363;&#12399;&#12289;&lt;a href="http://unicorn.bogomips.org/Unicorn/Configurator.html"&gt;Class: Unicorn::Configurator&lt;/a&gt; &#12363;&#12425;&#12522;&#12531;&#12463;&#12398;&#12354;&#12427;&#20197;&#19979;&#12398;&#12506;&#12540;&#12472;&#12391;&#30906;&#35469;&#12391;&#12365;&#12427;&#12290;&lt;/p&gt;

&lt;ul&gt;
  &lt;li&gt;&lt;a href="http://unicorn.bogomips.org/examples/unicorn.conf.rb"&gt;Sample verbose configuration file for Unicorn&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href="http://unicorn.bogomips.org/examples/unicorn.conf.minimal.rb"&gt;Minimal sample configuration file for Unicorn (&#24517;&#35201;&#26368;&#23567;&#38480;&#12398;&#35373;&#23450;&#20363;)&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;&#19978;&#35352;&#12398;&#26368;&#20302;&#38480;&#12398;&#35373;&#23450;&#12434;&#35373;&#23450;&#12434;&#27969;&#29992;&#12375;&#12289;&#20197;&#19979;&#12398;&#35373;&#23450;&#12501;&#12449;&#12452;&#12523;&#12434;&#29992;&#24847;&#12377;&#12427;&#12290;&lt;br /&gt;
Unicorn &#12399; TCP/IP &#12477;&#12465;&#12483;&#12488;&#12391;&#12418;&#24453;&#27231;&#12391;&#12365;&#12427;&#12364;&#12289;&#20197;&#19979;&#12398;&#35373;&#23450;&#12391;&#12399; Unix &#12489;&#12513;&#12452;&#12531;&#12477;&#12465;&#12483;&#12488;&#12434;&#20351;&#12387;&#12383;&#35373;&#23450;&#12398;&#12415;&#12392;&#12375;&#12390;&#12356;&#12427;&#12290;&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;&lt;code&gt;$APP_DIR/unicorn.conf&lt;/code&gt;&lt;/strong&gt;:&lt;/p&gt;

&lt;pre class="ruby"&gt;&lt;code class="language-ruby"&gt;worker_processes 2

listen '/tmp/unicorn.sock'

stderr_path File.expand_path('unicorn.log', File.dirname(__FILE__))
stdout_path File.expand_path('unicorn.log', File.dirname(__FILE__))

preload_app true
&lt;/code&gt;&lt;/pre&gt;

&lt;p&gt;&#12525;&#12464;&#12501;&#12449;&#12452;&#12523;&#12398;&#35352;&#36617;&#37096;&#20998;&#12434;&#35211;&#12390;&#12418;&#12425;&#12360;&#12427;&#12392;&#12431;&#12363;&#12427;&#12364;&#12289;Unicorn &#12398;&#35373;&#23450;&#12501;&#12449;&#12452;&#12523;&#12395;&#12399; Ruby &#12398;&#27083;&#25991;&#12364;&#21033;&#29992;&#21487;&#33021;&#12392;&#12394;&#12387;&#12390;&#12356;&#12427;&#12290;&lt;/p&gt;

&lt;h3 id="unicorn--3"&gt;Unicorn &#12469;&#12540;&#12496;&#12434;&#36215;&#21205;&#12377;&#12427;&lt;/h3&gt;

&lt;p&gt;Unicorn &#12469;&#12540;&#12496;&#12434;&#36215;&#21205;&#12377;&#12427;&#12290;&lt;br /&gt;
unicorn &#12467;&#12510;&#12531;&#12489;&#12434;&#21033;&#29992;&#12375;&#12390;&#36215;&#21205;&#12377;&#12427;&#12371;&#12392;&#12395;&#12394;&#12427;&#12290;&lt;code&gt;$APP_DIR&lt;/code&gt; &#12395;&#31227;&#21205;&#12375;&#12390;&#12289;&#20197;&#19979;&#12398;&#12467;&#12510;&#12531;&#12489;&#12391;&#36215;&#21205;&#12377;&#12427;&#12290;&lt;/p&gt;

&lt;pre class="shell"&gt;&lt;code class="language-shell"&gt;$ unicorn -c unicorn.conf -D
&lt;/code&gt;&lt;/pre&gt;

&lt;p&gt;&#20808;&#12411;&#12393;&#20316;&#25104;&#12375;&#12383; Unicorn &#12398;&#35373;&#23450;&#12501;&#12449;&#12452;&#12523;&#12434; &lt;code&gt;-c&lt;/code&gt; &#12458;&#12503;&#12471;&#12519;&#12531;&#12391;&#25351;&#23450;&#12375;&#12289;&lt;code&gt;-D&lt;/code&gt; &#12458;&#12503;&#12471;&#12519;&#12531;&#12391;&#12487;&#12540;&#12514;&#12531;&#36215;&#21205;&#12434;&#34892;&#12387;&#12390;&#12356;&#12427;&#12290;&lt;/p&gt;

&lt;p&gt;unicorn &#12399;&#12487;&#12501;&#12457;&#12523;&#12488;&#12391; &lt;code&gt;config.ru&lt;/code&gt; &#12434;&#12450;&#12503;&#12522;&#12465;&#12540;&#12471;&#12519;&#12531;&#12398;&#12456;&#12531;&#12488;&#12522;&#12509;&#12452;&#12531;&#12488;&#12392;&#12375;&#12390;&#35469;&#35672;&#12377;&#12427;&#12398;&#12391;&#12289;&#36215;&#21205;&#26178;&#12398;&#12487;&#12451;&#12524;&#12463;&#12488;&#12522;&#12395;&#23384;&#22312;&#12377;&#12427; Sinatra &#12391;&#26360;&#12363;&#12428;&#12383; Rack &#12450;&#12503;&#12522;&#12465;&#12540;&#12471;&#12519;&#12531;&#12391;&#12354;&#12427; &lt;code&gt;$APP_DIR/config.ru&lt;/code&gt; &#12364;&#19978;&#35352;&#12398;&#12467;&#12510;&#12531;&#12489;&#12391;&#35501;&#12415;&#36796;&#12414;&#12428;&#12390;&#12356;&#12427;&#12290;&lt;/p&gt;

&lt;p&gt;&#12525;&#12464;&#12501;&#12449;&#12452;&#12523;&#12434;&#30906;&#35469;&#12375;&#12390;&#12415;&#12427;&#12290;&lt;/p&gt;

&lt;pre class="shell"&gt;&lt;code class="language-shell"&gt;$ cat unicorn.log
I, [2011-07-30T21:50:47.966116 #6632]  INFO -- : unlinking existing socket=/tmp/unicorn.sock
I, [2011-07-30T21:50:47.966669 #6632]  INFO -- : listening on addr=/tmp/unicorn.sock fd=3
I, [2011-07-30T21:50:47.967666 #6632]  INFO -- : Refreshing Gem list
I, [2011-07-30T21:50:48.343228 #6632]  INFO -- : worker=0 spawning...
I, [2011-07-30T21:50:48.343795 #6632]  INFO -- : worker=1 spawning...
I, [2011-07-30T21:50:48.344260 #6632]  INFO -- : master process ready
I, [2011-07-30T21:50:48.344266 #6635]  INFO -- : worker=0 spawned pid=6635
I, [2011-07-30T21:50:48.344450 #6635]  INFO -- : worker=0 ready
I, [2011-07-30T21:50:48.344672 #6638]  INFO -- : worker=1 spawned pid=6638
I, [2011-07-30T21:50:48.344863 #6638]  INFO -- : worker=1 ready
&lt;/code&gt;&lt;/pre&gt;

&lt;p&gt;&#12456;&#12521;&#12540;&#12364;&#34920;&#31034;&#12373;&#12428;&#12390;&#12362;&#12425;&#12378;&#12289;&#19978;&#35352;&#12398;&#12424;&#12358;&#12394;&#12525;&#12464;&#12364;&#20986;&#21147;&#12373;&#12428;&#12390;&#12356;&#12428;&#12400;&#21839;&#38988;&#12394;&#12367;&#36215;&#21205;&#12364;&#34892;&#12360;&#12390;&#12356;&#12427;&#12290;
master &#12503;&#12525;&#12475;&#12473;&#12364;1&#12388;&#19978;&#12364;&#12426;&#12289;worker &#12503;&#12525;&#12475;&#12473;2&#12388;&#12434;&#36215;&#21205;&#12375;&#12390;&#12356;&#12427;&#12290;&lt;/p&gt;

&lt;h3 id="nginx--unicorn-"&gt;nginx &#12392; Unicorn &#12434;&#36899;&#25658;&#12377;&#12427;&lt;/h3&gt;

&lt;p&gt;&#12501;&#12525;&#12531;&#12488;&#12391;&#12522;&#12463;&#12456;&#12473;&#12488;&#12434;&#20966;&#29702;&#12377;&#12427; nginx &#12398;&#35373;&#23450;&#12290;&lt;/p&gt;

&lt;p&gt;&#26368;&#20302;&#38480;&#12398;&#35373;&#23450;&#12392;&#12356;&#12358;&#12392;&#12371;&#12429;&#12391;&#12289;&#20197;&#19979;&#12398;&#35373;&#23450;&#12434;&#35352;&#36848;&#12377;&#12427;&#12290;&lt;/p&gt;

&lt;ul&gt;
  &lt;li&gt;&lt;code&gt;upstream&lt;/code&gt; &#12487;&#12451;&#12524;&#12463;&#12486;&#12451;&#12502;(&#12525;&#12540;&#12489;&#12496;&#12521;&#12531;&#12471;&#12531;&#12464;&#12398;&#25351;&#23450;)&#12391; &lt;code&gt;unicornapp&lt;/code&gt; &#12392;&#12356;&#12358;&#12496;&#12483;&#12463;&#12456;&#12531;&#12489;&#12469;&#12540;&#12496;&#12434;&#23450;&#32681;&#12375;&#12289;Unicorn &#12469;&#12540;&#12496;&#12398; Unix &#12489;&#12513;&#12452;&#12531;&#12477;&#12465;&#12483;&#12488;&#12434;&#25351;&#23450;&#12375;&#12390;&#12362;&#12367;&#12290;&lt;/li&gt;
  &lt;li&gt;&lt;code&gt;location&lt;/code&gt; &#12487;&#12451;&#12524;&#12463;&#12486;&#12451;&#12502;&#12391; &lt;code&gt;upstream&lt;/code&gt; &#12395;&#25351;&#23450;&#12375;&#12383; &lt;code&gt;unicornapp&lt;/code&gt; &#12496;&#12483;&#12463;&#12456;&#12531;&#12489;&#12469;&#12540;&#12496;&#12434;&#25351;&#23450;&#12377;&#12427;&lt;/li&gt;
&lt;/ul&gt;

&lt;pre class="shell"&gt;&lt;code class="language-shell"&gt;upstream unicornapp {
  server unix:/tmp/unicorn.sock;
}

server {
        listen   80;
        server_name localhost;

        location / {
               proxy_pass http://unicornapp;
        }
}
&lt;/code&gt;&lt;/pre&gt;

&lt;p&gt;nginx &#35373;&#23450;&#12501;&#12449;&#12452;&#12523;&#12398;&#20877;&#35501;&#36796;&#12434;&#34892;&#12356;&#12289;&#12502;&#12521;&#12454;&#12470;&#12391; &lt;code&gt;http://localhost/hello&lt;/code&gt; &#12398; URI &#12434;&#21442;&#29031;&#12377;&#12427;&#12392;&#20808;&#12411;&#12393;&#12398; rackup &#12467;&#12510;&#12531;&#12489;&#12434;&#20351;&#29992;&#12375;&#12390;&#30906;&#35469;&#12375;&#12383; &#8220;Hello World&#8221; &#12392;&#21516;&#12376;&#12513;&#12483;&#12475;&#12540;&#12472;&#12398;&#30011;&#38754;&#12364;&#34920;&#31034;&#12373;&#12428;&#12390;&#12356;&#12427;&#12371;&#12392;&#12364;&#30906;&#35469;&#12391;&#12365;&#12427;&#12290;&lt;br /&gt;
(&#12371;&#12371;&#12391;&#30906;&#35469;&#12375;&#12390;&#12356;&#12427;&#30011;&#38754;&#12399; Unicorn &#12391;&#25552;&#20379;&#12373;&#12428;&#12390;&#12356;&#12427;&#12469;&#12540;&#12499;&#12473;)&lt;/p&gt;

&lt;p&gt;unicorn &#12398;&#12525;&#12464;&#12395;&#12418;&#12522;&#12463;&#12456;&#12473;&#12488;&#12434;&#20966;&#29702;&#12375;&#12383;&#12513;&#12483;&#12475;&#12540;&#12472;&#12364;&#30906;&#35469;&#12391;&#12365;&#12427;&#12290;&lt;/p&gt;

&lt;pre class="shell"&gt;&lt;code class="language-shell"&gt;$ tail -f unicorn.log
...
I, [2011-07-30T22:13:27.755913 #7306]  INFO -- : worker=1 ready
I, [2011-07-30T22:13:27.756925 #7303]  INFO -- : worker=0 spawned pid=7303
I, [2011-07-30T22:13:27.757150 #7303]  INFO -- : worker=0 ready
127.0.0.1 - - [30/Jul/2011 22:13:39] "GET /hello HTTP/1.0" 200 11 0.0155
&lt;/code&gt;&lt;/pre&gt;

&lt;p&gt;&#20197;&#19978;&#12391;&#22522;&#26412;&#30340;&#12394;&#35373;&#23450;&#12399;&#12362;&#12375;&#12414;&#12356;&#12290;&lt;/p&gt;

&lt;h3 id="unicorn--4"&gt;Unicorn &#12434;&#20572;&#27490;&#12377;&#12427;&lt;/h3&gt;

&lt;p&gt;Unicorn &#12395;&#23550;&#12377;&#12427;&#25805;&#20316;&#12399;&#22522;&#26412; Unicorn &#12398; master &#12503;&#12525;&#12475;&#12473;&#12395;&#23550;&#12375;&#12390;&#12398;&#12471;&#12464;&#12490;&#12523;&#12391;&#12398;&#25805;&#20316;&#12392;&#12394;&#12427;&#12290;&lt;/p&gt;

&lt;p&gt;&#12414;&#12378;&#12399;&#20572;&#27490;&#26041;&#27861;&#12290;2&#12388;&#12398;&#20572;&#27490;&#26041;&#27861;&#12364;&#12354;&#12427;&#12290;&lt;/p&gt;

&lt;ul&gt;
  &lt;li&gt;&#12503;&#12525;&#12475;&#12473;&#12434;&#21363;&#24231;&#12395;&#32066;&#20102;&#12377;&#12427;: &lt;strong&gt;INT/TERM&lt;/strong&gt; &#12471;&#12464;&#12490;&#12523;&#12434;&#20351;&#29992;&lt;/li&gt;
  &lt;li&gt;&#20966;&#29702;&#12434;&#34892;&#12387;&#12390;&#12356;&#12427;&#12522;&#12463;&#12456;&#12473;&#12488;&#12364;&#23436;&#20102;&#12377;&#12427;&#12398;&#12434;&#24453;&#12387;&#12390;&#12503;&#12525;&#12475;&#12473;&#12434;&#32066;&#20102;&#12377;&#12427;: &lt;strong&gt;QUIT&lt;/strong&gt; &#12471;&#12464;&#12490;&#12523;&#12434;&#20351;&#29992;&lt;/li&gt;
&lt;/ul&gt;

&lt;pre class="shell"&gt;&lt;code class="language-shell"&gt;$ ps -ef | grep unicorn | grep -v grep
hoge      7299     1  0 22:13 ?        00:00:04 unicorn master -c unicorn.conf -D
hoge      7303  7299  0 22:13 ?        00:00:03 unicorn worker[0] -c unicorn.conf -D
hoge      7306  7299  0 22:13 ?        00:00:03 unicorn worker[1] -c unicorn.conf -D
&lt;/code&gt;&lt;/pre&gt;

&lt;p&gt;&#19978;&#35352;&#12391;&#12431;&#12363;&#12427;&#12424;&#12358;&#12395;&#12289;master &#12503;&#12525;&#12475;&#12473;&#12399; 7299 &#12398;&#12503;&#12525;&#12475;&#12473;ID&#12391;&#21205;&#20316;&#12375;&#12390;&#12356;&#12427;&#12290;master &#12503;&#12525;&#12475;&#12473;&#12395;&#23550;&#12375;&#12390;&#12471;&#12464;&#12490;&#12523;&#12434;&#36865;&#12427;&#12290;&lt;/p&gt;

&lt;p&gt;Unicorn &#12434; gracefully &#12395;&#32066;&#20102;&#12373;&#12379;&#12427;&#22580;&#21512;&#12289;&lt;/p&gt;

&lt;pre class="shell"&gt;&lt;code class="language-shell"&gt;$ kill -QUIT 7299
&lt;/code&gt;&lt;/pre&gt;

&lt;p&gt;&lt;code&gt;unicorn.log&lt;/code&gt; &#12434;&#30906;&#35469;&#12290;&lt;/p&gt;

&lt;pre class="shell"&gt;&lt;code class="language-shell"&gt;I, [2011-07-30T23:32:13.866125 #7299]  INFO -- : reaped #&amp;lt;Process::Status: pid 7303 exit 0&amp;gt; worker=0
I, [2011-07-30T23:32:13.866403 #7299]  INFO -- : reaped #&amp;lt;Process::Status: pid 7306 exit 0&amp;gt; worker=1
I, [2011-07-30T23:32:13.866683 #7299]  INFO -- : master complete
&lt;/code&gt;&lt;/pre&gt;

&lt;p&gt;2&#12388;&#12398; worker &#12503;&#12525;&#12475;&#12473;&#12392; master &#12503;&#12525;&#12475;&#12473;&#12364;&#32066;&#20102;&#12375;&#12383;&#12371;&#12392;&#12364;&#12431;&#12363;&#12427;&#12290;&lt;/p&gt;

&lt;h3 id="unicorn--5"&gt;Unicorn &#12398;&#35373;&#23450;&#12398;&#20877;&#35501;&#36796;&lt;/h3&gt;

&lt;p&gt;Unicorn &#12398;&#35373;&#23450;&#12434;&#20877;&#35501;&#36796;&#12373;&#12379;&#12427;&#22580;&#21512;&#12399;&#12289;master &#12503;&#12525;&#12475;&#12473;&#12395; &lt;strong&gt;HUP&lt;/strong&gt; &#12471;&#12464;&#12490;&#12523;&#12434;&#36865;&#12427;&#12290;&lt;/p&gt;

&lt;pre class="shell"&gt;&lt;code class="language-shell"&gt;$ kill -HUP &amp;lt;master &#12398;&#12503;&#12525;&#12475;&#12473;ID&amp;gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;p&gt;&#12525;&#12464;&#12434;&#30906;&#35469;&#12375;&#12390;&#12415;&#12427;&#12392;&#12289;&#20877;&#35501;&#12415;&#12373;&#12428;&#12390;&#12356;&#12427;&#12371;&#12392;&#12364;&#30906;&#35469;&#12391;&#12365;&#12427;&#12290;&lt;/p&gt;

&lt;pre class="shell"&gt;&lt;code class="language-shell"&gt;I, [2011-07-30T23:35:42.261177 #7768]  INFO -- : reloading config_file=unicorn.conf
I, [2011-07-30T23:35:42.272338 #7768]  INFO -- : Refreshing Gem list
I, [2011-07-30T23:35:42.557187 #7768]  INFO -- : done reloading config_file=unicorn.conf
I, [2011-07-30T23:35:42.557362 #7768]  INFO -- : reaped #&amp;lt;Process::Status: pid 7773 exit 0&amp;gt; worker=0
I, [2011-07-30T23:35:42.557432 #7768]  INFO -- : reaped #&amp;lt;Process::Status: pid 7776 exit 0&amp;gt; worker=1
I, [2011-07-30T23:35:42.557545 #7768]  INFO -- : worker=0 spawning...
I, [2011-07-30T23:35:42.558136 #7768]  INFO -- : worker=1 spawning...
I, [2011-07-30T23:35:42.558726 #7782]  INFO -- : worker=0 spawned pid=7782
I, [2011-07-30T23:35:42.558966 #7782]  INFO -- : worker=0 ready
I, [2011-07-30T23:35:42.559173 #7785]  INFO -- : worker=1 spawned pid=7785
I, [2011-07-30T23:35:42.559430 #7785]  INFO -- : worker=1 ready
&lt;/code&gt;&lt;/pre&gt;

&lt;h3 id="section"&gt;&#12469;&#12540;&#12499;&#12473;&#12398;&#25552;&#20379;&#12434;&#27490;&#12417;&#12378;&#12395;&#12503;&#12525;&#12464;&#12521;&#12512;&#12398;&#20877;&#35501;&#36796;&lt;/h3&gt;

&lt;p&gt;&#12503;&#12525;&#12464;&#12521;&#12512;(&#12371;&#12371;&#12391;&#35328;&#12358; Sinatra Hello World &#12450;&#12503;&#12522;)&#12434;&#20877;&#37197;&#32622;&#12377;&#12427;&#12392;&#12365;&#12394;&#12393;&#12289;&#20877;&#24230;&#12503;&#12525;&#12464;&#12521;&#12512;&#12434;&#12525;&#12540;&#12489;&#12375;&#30452;&#12377;&#24517;&#35201;&#12364;&#12354;&#12427;&#12290;&lt;br /&gt;
Unicorn &#12469;&#12540;&#12496;&#12434;&#20572;&#27490;&#12375;&#12390;&#12289;&#20877;&#36215;&#21205;&#12391;&#12418;&#12424;&#12356;&#12364;&#12289;&#12469;&#12540;&#12499;&#12473;&#12398;&#25552;&#20379;&#12434;&#27490;&#12417;&#12378;&#12395;&#23455;&#26045;&#12377;&#12427;&#22580;&#21512;&#12398;&#23455;&#26045;&#26041;&#27861;&#12399;&#20197;&#19979;&#12398;&#26041;&#27861;&#12392;&#12394;&#12427;&#12290;&lt;/p&gt;

&lt;p&gt;&#29694;&#22312;&#12398;&#12503;&#12525;&#12475;&#12473;&#12398;&#29366;&#27841;&#12399;&#20197;&#19979;&#12398;&#36890;&#12426;&#12290;&lt;/p&gt;

&lt;pre class="shell"&gt;&lt;code class="language-shell"&gt;$ ps -ef | grep unicorn | grep -v grep
hoge      7768     1  0 23:35 ?        00:00:00 unicorn master -c unicorn.conf -D
hoge      7782  7768  0 23:35 ?        00:00:00 unicorn worker[0] -c unicorn.conf -D
hoge      7785  7768  0 23:35 ?        00:00:00 unicorn worker[1] -c unicorn.conf -D
&lt;/code&gt;&lt;/pre&gt;

&lt;p&gt;&#12371;&#12371;&#12391;&#20309;&#12425;&#12363;&#12398;&#12450;&#12503;&#12522;&#12398;&#25913;&#20462;&#12364;&#12354;&#12426;&#12289;&#12503;&#12525;&#12464;&#12521;&#12512;&#12434;&#20877;&#37197;&#32622;&#12375;&#12383;&#12392;&#12377;&#12427;&#12290;&lt;/p&gt;

&lt;p&gt;Unicorn &#12391;&#12399;&#12289;&#26082;&#23384;&#12398;&#12503;&#12525;&#12475;&#12473;&#12434;&#12381;&#12398;&#12414;&#12414;&#27531;&#12375;&#12289;&#26032;&#12383;&#12394; Unicorn &#12469;&#12540;&#12496;&#12398;&#12475;&#12483;&#12488;&#12434;&#12418;&#12358;&#19968;&#12475;&#12483;&#12488;&#20316;&#25104;&#12375;&#12289;&#12522;&#12463;&#12456;&#12473;&#12488;&#12398;&#20966;&#29702;&#12418;&#12381;&#12385;&#12425;&#12395;&#24341;&#12365;&#32153;&#12356;&#12391;&#12354;&#12370;&#12427;&#12371;&#12392;&#12364;&#12391;&#12365;&#12427;&#12290;&lt;/p&gt;

&lt;p&gt;&#12414;&#12378; &#29694;&#22312;&#12398; master &#12503;&#12525;&#12475;&#12473;&#12395; USR2 &#12471;&#12464;&#12490;&#12523;&#12434;&#36865;&#12427;&#12290;&lt;/p&gt;

&lt;pre class="shell"&gt;&lt;code class="language-shell"&gt;$ kill -USR2 7768
&lt;/code&gt;&lt;/pre&gt;

&lt;p&gt;Unicorn &#12398;&#12503;&#12525;&#12475;&#12473;&#12434;&#30906;&#35469;&#12375;&#12390;&#12415;&#12427;&#12290;&lt;/p&gt;

&lt;pre class="shell"&gt;&lt;code class="language-shell"&gt;$ ps -ef | grep unicorn | grep -v grep
hoge      7768     1  0 23:35 ?        00:00:01 unicorn master (old) -c unicorn.conf -D
hoge      7782  7768  0 23:35 ?        00:00:00 unicorn worker[0] -c unicorn.conf -D
hoge      7785  7768  0 23:35 ?        00:00:00 unicorn worker[1] -c unicorn.conf -D
hoge      7822  7768  1 23:43 ?        00:00:00 unicorn master -c unicorn.conf -D
hoge      7826  7822  0 23:43 ?        00:00:00 unicorn worker[0] -c unicorn.conf -D
hoge      7829  7822  0 23:43 ?        00:00:00 unicorn worker[1] -c unicorn.conf -D
&lt;/code&gt;&lt;/pre&gt;

&lt;p&gt;&#20803;&#12293;&#12354;&#12387;&#12383;&#12503;&#12525;&#12475;&#12473;(master pid: 7768)&#12395; old &#12392;&#12356;&#12358;&#34920;&#31034;&#12364;&#20837;&#12387;&#12390;&#12362;&#12426;&#12289;Unicorn &#12469;&#12540;&#12496;&#12398;&#12475;&#12483;&#12488;&#12364;&#12418;&#12358;&#12527;&#12531;&#12475;&#12483;&#12488;&#36861;&#21152;&#12373;&#12428;&#12390;&#12356;&#12427;&#12371;&#12392;&#12364;&#12431;&#12363;&#12427;&#12290;&lt;/p&gt;

&lt;p&gt;&#26032;&#12383;&#12395;&#29983;&#25104;&#12373;&#12428;&#12383;&#12503;&#12525;&#12475;&#12473;&#12395;&#12399;&#12289;&#12503;&#12525;&#12464;&#12521;&#12512;&#12398;&#26356;&#26032;&#12364;&#21453;&#26144;&#12373;&#12428;&#12390;&#12356;&#12427;&#12290;&lt;/p&gt;

&lt;p&gt;&#12371;&#12398;&#26178;&#12398; Unicorn &#12398;&#21205;&#20316;&#12434;&#12525;&#12464;&#12391;&#30906;&#35469;&#12375;&#12390;&#12415;&#12427;&#12392;&#20197;&#19979;&#12398;&#21205;&#20316;&#12395;&#12394;&#12387;&#12390;&#12356;&#12427;&#12290;&lt;/p&gt;

&lt;pre class="shell"&gt;&lt;code class="language-shell"&gt;I, [2011-07-30T23:43:20.117449 #7822]  INFO -- : executing ["/home/hoge/.rvm/gems/ruby-1.9.2-p180/bin/unicorn", "-c", "unicorn.conf", "-D"] (in /home/hoge/Dropbox/work/unicorn-app-sample)
I, [2011-07-30T23:43:20.117641 #7822]  INFO -- : forked child re-executing...
I, [2011-07-30T23:43:20.798555 #7822]  INFO -- : inherited addr=/tmp/unicorn.sock fd=3
I, [2011-07-30T23:43:20.798829 #7822]  INFO -- : Refreshing Gem list
I, [2011-07-30T23:43:21.165052 #7822]  INFO -- : worker=0 spawning...
I, [2011-07-30T23:43:21.165798 #7822]  INFO -- : worker=1 spawning...
I, [2011-07-30T23:43:21.166209 #7826]  INFO -- : worker=0 spawned pid=7826
I, [2011-07-30T23:43:21.166311 #7822]  INFO -- : master process ready
I, [2011-07-30T23:43:21.166401 #7826]  INFO -- : worker=0 ready
I, [2011-07-30T23:43:21.166635 #7829]  INFO -- : worker=1 spawned pid=7829
I, [2011-07-30T23:43:21.166768 #7829]  INFO -- : worker=1 ready
&lt;/code&gt;&lt;/pre&gt;

&lt;p&gt;&#26032;&#12375;&#12356;&#12503;&#12525;&#12475;&#12473;&#12395;&#12522;&#12463;&#12456;&#12473;&#12488;&#12398;&#21463;&#20184;&#20966;&#29702;&#12399;&#24341;&#12365;&#32153;&#12364;&#12428;&#12390;&#12356;&#12427;&#12398;&#12391;&#12289;&#21476;&#12356;&#26041;&#12398;&#12503;&#12525;&#12475;&#12473;&#12434;&#33853;&#12392;&#12375;&#12390;&#12356;&#12367;&#12290;&lt;/p&gt;

&lt;p&gt;&#12414;&#12378;&#12399;&#12289;&#21476;&#12356;&#26041;&#12398; master &#12503;&#12525;&#12475;&#12473;&#12395; WINCH &#12471;&#12464;&#12490;&#12523;&#12434;&#36865;&#12426;&#12289;&#12381;&#12398; worker &#12503;&#12525;&#12475;&#12473;&#12434;&#33853;&#12392;&#12375;&#12390;&#12354;&#12370;&#12427;&#12290;
WINCH &#12471;&#12464;&#12490;&#12523;&#12399;&#12381;&#12398; master &#12503;&#12525;&#12475;&#12473;&#12398; worker &#12503;&#12525;&#12475;&#12473;&#12434; gracefully &#12395;&#27490;&#12417;&#12390;&#12354;&#12370;&#12427;&#12290;&lt;/p&gt;

&lt;pre class="shell"&gt;&lt;code class="language-shell"&gt;$ kill -WINCH 7768
&lt;/code&gt;&lt;/pre&gt;

&lt;p&gt;&#12503;&#12525;&#12475;&#12473;&#12392;&#12525;&#12464;&#12434;&#30906;&#35469;&#12375;&#12390;&#12415;&#12427;&#12290;&lt;/p&gt;

&lt;pre class="shell"&gt;&lt;code class="language-shell"&gt;$ ps -ef | grep unicorn | grep -v grep
hoge      7768     1  0 23:35 ?        00:00:01 unicorn master (old) -c unicorn.conf -D
hoge      7822  7768  0 23:43 ?        00:00:01 unicorn master -c unicorn.conf -D
hoge      7826  7822  0 23:43 ?        00:00:00 unicorn worker[0] -c unicorn.conf -D
hoge      7829  7822  0 23:43 ?        00:00:00 unicorn worker[1] -c unicorn.conf -D
&lt;/code&gt;&lt;/pre&gt;

&lt;pre class="shell"&gt;&lt;code class="language-shell"&gt;I, [2011-07-30T23:48:45.648299 #7768]  INFO -- : gracefully stopping all workers
I, [2011-07-30T23:48:45.678491 #7768]  INFO -- : reaped #&amp;lt;Process::Status: pid 7782 exit 0&amp;gt; worker=0
I, [2011-07-30T23:48:45.678664 #7768]  INFO -- : reaped #&amp;lt;Process::Status: pid 7785 exit 0&amp;gt; worker=1
&lt;/code&gt;&lt;/pre&gt;

&lt;p&gt;&#30906;&#12363;&#12395;&#12289;&#21476;&#12356;&#26041;&#12398; Unicorn &#12398;&#12503;&#12525;&#12475;&#12473;&#12399;&#12289;master &#12503;&#12525;&#12475;&#12473;&#12384;&#12369;&#12364;&#27531;&#12426;&#12289;worker &#12399;&#20840;&#12390;&#32066;&#20102;&#12375;&#12390;&#12356;&#12427;&#12290;&lt;/p&gt;

&lt;p&gt;&#19968;&#26086;&#12371;&#12371;&#12391;&#24565;&#12398;&#12383;&#12417;&#12289;&#12450;&#12503;&#12522;&#12364;&#12461;&#12481;&#12531;&#12392;&#21205;&#20316;&#12375;&#12390;&#12356;&#12427;&#12363;&#30906;&#35469;&#12375;&#12390;&#12362;&#12367;&#12290;&lt;br /&gt;
&#21839;&#38988;&#28961;&#12356;&#12424;&#12358;&#12391;&#12354;&#12428;&#12400;&#12289;&#21476;&#12356; master &#12503;&#12525;&#12475;&#12473;&#12418;&#27490;&#12417;&#12390;&#12354;&#12370;&#12427;&#12290;&lt;/p&gt;

&lt;pre class="shell"&gt;&lt;code class="language-shell"&gt;$ kill -QUIT 7768
&lt;/code&gt;&lt;/pre&gt;

&lt;p&gt;&#12503;&#12525;&#12475;&#12473;&#12392;&#12525;&#12464;&#12434;&#30906;&#35469;&#12375;&#12390;&#12415;&#12427;&#12290;&lt;/p&gt;

&lt;pre class="shell"&gt;&lt;code class="language-shell"&gt;$ ps -ef | grep unicorn | grep -v grep
hoge      7822     1  0 23:43 ?        00:00:01 unicorn master -c unicorn.conf -D
hoge      7826  7822  0 23:43 ?        00:00:00 unicorn worker[0] -c unicorn.conf -D
hoge      7829  7822  0 23:43 ?        00:00:00 unicorn worker[1] -c unicorn.conf -D
&lt;/code&gt;&lt;/pre&gt;

&lt;pre class="shell"&gt;&lt;code class="language-shell"&gt;I, [2011-07-30T23:51:35.694051 #7768]  INFO -- : master complete
&lt;/code&gt;&lt;/pre&gt;

&lt;p&gt;&#12371;&#12428;&#12391;&#12289;&#26032;&#12375;&#12356;&#12503;&#12525;&#12464;&#12521;&#12512;&#12391; Unicorn &#12469;&#12540;&#12496;&#12364;&#21205;&#20316;&#12375;&#12390;&#12356;&#12427;&#29366;&#24907;&#12392;&#12394;&#12427;&#12290;&lt;/p&gt;
</content>
    <summary type="html">&lt;h3 id="unicorn-"&gt;Unicorn &#12392;&#12399;&#65311;&lt;/h3&gt;

&lt;p&gt;Rails&#12289;Rack &#12450;&#12503;&#12522;&#12465;&#12540;&#12471;&#12519;&#12531;&#12434;&#21205;&#20316;&#12373;&#12379;&#12427;&#12467;&#12531;&#12486;&#12490;&#12392;&#12375;&#12390;&#12399;&#12289;&lt;a href="http://www.modrails.com/"&gt;Passenger&lt;/a&gt;&#12289;&lt;a href="http://code.macournoyer.com/thin/"&gt;Thin&lt;/a&gt;&#12289;Mongrel &#12394;&#12393;&#12398;&#36984;&#25246;&#32930;&#12364;&#12354;&#12427;&#12290;
&#12381;&#12428;&#20197;&#22806;&#12395;&#12418; Unicorn &#12392;&#12356;&#12358; Rack &#12450;&#12503;&#12522;&#12465;&#12540;&#12471;&#12519;&#12531;&#21521;&#12369;&#12398; HTTP &#12469;&#12540;&#12496;&#12364;&#12354;&#12426;&#12289;&#20170;&#22238;&#35430;&#12375;&#12395;&#20351;&#12387;&#12390;&#12415;&#12383;&#12398;&#12391;&#12381;&#12398;&#12513;&#12514;&#12290;&lt;/p&gt;

&lt;ul&gt;
  &lt;li&gt;&lt;a href="http://unicorn.bogomips.org"&gt;Unicorn: Rack HTTP server for fast clients and Unix&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;&#35373;&#35336;&#26041;&#37341;&#12395;&#29305;&#24500;&#30340;&#12394;&#37096;&#20998;&#12364;&#12354;&#12426;&#12289;&#20197;&#19979;&#12398;&#35352;&#20107;&#12395;&#35443;&#12375;&#12356;&#12290;&lt;/p&gt;

&lt;ul&gt;
  &lt;li&gt;&lt;a href="https://github.com/blog/517-unicorn"&gt;Unicorn! - GitHub&lt;/a&gt;&lt;br /&gt;
Unicorn &#12434;&#20351;&#29992;&#12375;&#12390;&#12356;&#12427; github &#12398;&#35352;&#20107;&lt;/li&gt;
  &lt;li&gt;&lt;a href="http://d.hatena.ne.jp/tkng/20100707/1278517873"&gt;Unicorn&#12391;Sinatra&#12450;&#12503;&#12522;&#12434;&#12487;&#12503;&#12525;&#12452;&#12375;&#12390;&#12415;&#12383; - &#23556;&#25731;&#12375;&#12388;&#12388;&#21069;&#36578;&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;github &#12398;&#35352;&#20107;&#12398;&#32080;&#35542;&#12391;&#26360;&#12363;&#12428;&#12390;&#12356;&#12427;&#12364;&#12289;&lt;/p&gt;

&lt;blockquote&gt;
  &lt;p&gt;Passenger is awesome. Mongrel is awesome. Thin is awesome.&lt;/p&gt;

  &lt;p&gt;Use what works best for you. Decide what you need and evaluate the available options based on those needs. Don&#8217;t pick a tool because GitHub uses it, pick a tool because it solves the problems you have.&lt;/p&gt;
&lt;/blockquote&gt;

&lt;p&gt;&#12381;&#12428;&#12382;&#12428;&#12398; HTTP &#12469;&#12540;&#12496;&#12364;&#33391;&#12356;&#28857;&#12434;&#25345;&#12387;&#12390;&#12362;&#12426;&#12289;&#33258;&#36523;&#12398;&#12469;&#12540;&#12499;&#12473;&#12398;&#29992;&#36884;&#12289;&#30446;&#30340;&#12395;&#24540;&#12376;&#12390;&#36969;&#20999;&#12394;&#12418;&#12398;&#12434;&#20351;&#29992;&#12377;&#12427;&#12398;&#12364;&#12424;&#12356;&#12391;&#12375;&#12423;&#12358;&#12392;&#12290;&lt;/p&gt;

&lt;p&gt;&#12469;&#12540;&#12496;&#12398;&#33391;&#12375;&#24746;&#12375;&#12434;&#28204;&#12427;&#38917;&#30446;&#12398;1&#38917;&#30446;&#12392;&#12375;&#12390; ab &#12434;&#20351;&#12387;&#12383;&#12505;&#12531;&#12481;&#12394;&#12393;&#12364;&#12424;&#12367;&#12392;&#12425;&#12428;&#12390;&#12356;&#12427;&#12290;
&#30906;&#12363;&#12395;&#12473;&#12523;&#12540;&#12503;&#12483;&#12488;&#12395;&#12354;&#12427;&#31243;&#24230;&#12398;&#12524;&#12505;&#12523;&#12398;&#12418;&#12398;&#12399;&#35201;&#27714;&#12375;&#12383;&#12356;&#12364;&#12289;&#12381;&#12428;&#12424;&#12426;&#12418;&#36939;&#29992;&#12395;&#20837;&#12387;&#12383;&#38555;&#12398;&#23433;&#23450;&#24615;&#12289;&#20449;&#38972;&#24615;&#12289;&#20309;&#12363;&#21839;&#38988;&#12364;&#36215;&#12365;&#12383;&#38555;&#12398;&#12522;&#12459;&#12496;&#12522;&#21547;&#12417;&#12383;&#21487;&#29992;&#24615;&#12398;&#37096;&#20998;&#12434;&#27671;&#12395;&#12375;&#12390;&#12356;&#12383;&#12290;&lt;/p&gt;

&lt;p&gt;&#20170;&#22238; Unicorn &#12434;&#35430;&#12375;&#12390;&#12415;&#12424;&#12358;&#12392;&#24605;&#12387;&#12383;&#12398;&#12399;&#12289;&#12381;&#12371;&#12395;&#12354;&#12426;&#12289;&#20808;&#12398;&#35352;&#20107;&#12395;&#12418;&#12289;&#20197;&#19979;&#12398;&#35352;&#36617;&#12364;&#12354;&#12426;&#12289;Unicorn &#12434;&#35430;&#12375;&#12390;&#12415;&#12427;&#12371;&#12392;&#12395;&#12375;&#12383;&#12290;&lt;/p&gt;

&lt;blockquote&gt;
  &lt;p&gt;Honestly, I don&#8217;t care. I want a production environment that can gracefully handle chaos more than I want something that&#8217;s screaming fast. I want stability and reliability over raw speed.&lt;/p&gt;
&lt;/blockquote&gt;

&lt;p&gt;&#12371;&#12371;&#12391;&#35352;&#36617;&#12377;&#12427;&#12398;&#12399; Unicorn &#12434;&#21205;&#20316;&#12373;&#12379;&#12427;&#12414;&#12391;&#12398;&#22522;&#26412;&#30340;&#12394;&#35373;&#23450;&#12392; Unicorn &#12434;&#25805;&#20316;&#12377;&#12427;&#22522;&#26412;&#30340;&#12394;&#12458;&#12506;&#12524;&#12540;&#12471;&#12519;&#12531;&#12398;&#12513;&#12514;&#12395;&#12394;&#12427;&#12290;&lt;/p&gt;

&lt;ul&gt;
  &lt;li&gt;Unicorn &#12398;&#12452;&#12531;&#12473;&#12488;&#12540;&#12523;&#12392;&#20107;&#21069;&#28310;&#20633;&lt;/li&gt;
  &lt;li&gt;Unicorn &#12398;&#35373;&#23450;&#12501;&#12449;&#12452;&#12523;&#12434;&#29992;&#24847;&#12377;&#12427;&lt;/li&gt;
  &lt;li&gt;Unicorn &#12469;&#12540;&#12496;&#12434;&#36215;&#21205;&#12377;&#12427;&lt;/li&gt;
  &lt;li&gt;nginx &#12392; Unicorn &#12434;&#36899;&#25658;&#12377;&#12427;&lt;/li&gt;
  &lt;li&gt;Unicorn &#12434;&#20572;&#27490;&#12377;&#12427;&lt;/li&gt;
  &lt;li&gt;Unicorn &#12398;&#35373;&#23450;&#12398;&#20877;&#35501;&#36796;&lt;/li&gt;
  &lt;li&gt;&#12469;&#12540;&#12499;&#12473;&#12398;&#25552;&#20379;&#12434;&#27490;&#12417;&#12378;&#12395;&#12503;&#12525;&#12464;&#12521;&#12512;&#12398;&#20877;&#35501;&#36796;&lt;/li&gt;
&lt;/ul&gt;

&lt;h3 id="unicorn--1"&gt;Unicorn &#12398;&#12452;&#12531;&#12473;&#12488;&#12540;&#12523;&#12392;&#20107;&#21069;&#28310;&#20633;&lt;/h3&gt;

&lt;p&gt;&#20170;&#22238;&#12398;&#12362;&#35430;&#12375;&#29872;&#22659;&#12399;&#20197;&#19979;&#12398;&#36890;&#12426;&#12392;&#12394;&#12427;&#12290;&lt;/p&gt;

&lt;ul&gt;
  &lt;li&gt;&#12450;&#12503;&#12522;&#12395;&#12399;&#31777;&#21336;&#12394; Sinatra Hello World &#12450;&#12503;&#12522;&#12434;&#20351;&#29992;&lt;/li&gt;
  &lt;li&gt;Unicorn &#12469;&#12540;&#12496;&#12398;&#12501;&#12525;&#12531;&#12488;&#12399; nginx &#12434;&#12522;&#12496;&#12540;&#12473;&#12503;&#12525;&#12461;&#12471;&#12392;&#12375;&#12390;&#12383;&#12390;&#12427;&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;Unicorn &#20197;&#22806;&#12395; nginx &#12392; Sinatra gem &#12364;&#12452;&#12531;&#12473;&#12488;&#12540;&#12523;&#12373;&#12428;&#12390;&#12356;&#12427;&#24517;&#35201;&#12364;&#12354;&#12427;&#12290;&lt;/p&gt;

&lt;p&gt;Unicorn &#12399; RubyGems &#12391;&#25552;&#20379;&#12373;&#12428;&#12390;&#12356;&#12427;&#12398;&#12391; gem &#12467;&#12510;&#12531;&#12489;&#12434;&#20351;&#29992;&#12375;&#12390;&#12452;&#12531;&#12473;&#12488;&#12540;&#12523;&#12377;&#12427;&#12290;&lt;/p&gt;

&lt;pre class="shell"&gt;&lt;code class="language-shell"&gt;# gem install unicorn
&lt;/code&gt;&lt;/pre&gt;

&lt;p&gt;&#21205;&#20316;&#29872;&#22659;&#12398;&#12469;&#12531;&#12503;&#12523;&#12392;&#12375;&#12390; Sinatra &#12450;&#12503;&#12522;&#12465;&#12540;&#12471;&#12519;&#12531;&#12434;&#29992;&#24847;&#12377;&#12427;&#12290;&lt;br /&gt;
(Sinatra &#12364;&#12452;&#12531;&#12473;&#12488;&#12540;&#12523;&#12373;&#12428;&#12390;&#12356;&#12394;&#12356;&#22580;&#21512;&#12395;&#12399;&#12289;&lt;code&gt;# gem install sinatra&lt;/code&gt; &#12364;&#24517;&#35201;&#12290;)&lt;/p&gt;

&lt;p&gt;&#36969;&#24403;&#12394;&#12487;&#12451;&#12524;&#12463;&#12488;&#12522;(&lt;strong&gt;&lt;code&gt;$APP_DIR&lt;/code&gt;&lt;/strong&gt;)&#12395; Rack &#12450;&#12503;&#12522;&#12465;&#12540;&#12471;&#12519;&#12531;&#12398;&#12456;&#12531;&#12488;&#12522;&#12509;&#12452;&#12531;&#12488;&#12392;&#12394;&#12427;&#12501;&#12449;&#12452;&#12523; &lt;code&gt;config.ru&lt;/code&gt; &#12434;&#29992;&#24847;&#12375;&#12289;&#31777;&#21336;&#12394; HelloWorld &#12450;&#12503;&#12522;&#12465;&#12540;&#12471;&#12519;&#12531;&#12434;&#35352;&#36848;&#12375;&#12390;&#12362;&#12367;&#12290;&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;&lt;code&gt;$APP_DIR/config.ru&lt;/code&gt;&lt;/strong&gt;:&lt;/p&gt;

&lt;pre class="ruby"&gt;&lt;code class="language-ruby"&gt;require 'rubygems'
require 'sinatra/base'

class HelloApp &amp;lt; Sinatra::Base
  get '/hello' do
    'Hello World'
  end
end

run HelloApp
&lt;/code&gt;&lt;/pre&gt;

&lt;p&gt;Rack &#12398; rackup &#12467;&#12510;&#12531;&#12489;&#12434;&#20351;&#29992;&#12375;&#12390;&#12289;&#19978;&#35352;&#12398;&#12450;&#12503;&#12522;&#12364;&#12365;&#12385;&#12435;&#12392;&#21205;&#20316;&#12377;&#12427;&#12371;&#12392;&#12434;&#30906;&#35469;&#12375;&#12390;&#12362;&#12367;&#12290;&lt;/p&gt;

&lt;pre class="shell"&gt;&lt;code class="language-shell"&gt;$ cd $APP_DIR
$ rackup
[2011-07-30 21:15:38] INFO  WEBrick 1.3.1
[2011-07-30 21:15:38] INFO  ruby 1.9.2 (2011-02-18) [i686-linux]
[2011-07-30 21:15:38] INFO  WEBrick::HTTPServer#start: pid=6260 port=9292
&lt;/code&gt;&lt;/pre&gt;

&lt;p&gt;&#12502;&#12521;&#12454;&#12470;&#12363;&#12425;&#12289;&lt;code&gt;http://localhost:9292/hello&lt;/code&gt; &#12398; URI &#12391; &#8220;Hello World&#8221; &#12364;&#34920;&#31034;&#12373;&#12428;&#12427;&#12371;&#12392;&#12434;&#30906;&#35469;&#12375;&#12390;&#12362;&#12367;&#12290;&lt;/p&gt;

&lt;h3 id="unicorn--2"&gt;Unicorn &#12398;&#35373;&#23450;&#12501;&#12449;&#12452;&#12523;&#12434;&#29992;&#24847;&#12377;&#12427;&lt;/h3&gt;

&lt;p&gt;Unicorn &#12399; unicorn &#12467;&#12510;&#12531;&#12489;&#12434;&#20351;&#12387;&#12390;&#36215;&#21205;&#12377;&#12427;&#12364;&#12289;&#36215;&#21205;&#26178;&#12395;&#35373;&#23450;&#12501;&#12449;&#12452;&#12523;&#12434;&#25351;&#23450;&#12375;&#12390;&#36215;&#21205;&#12377;&#12427;&#12371;&#12392;&#12364;&#12391;&#12365;&#12427;&#12290;&lt;br /&gt;
&#35373;&#23450;&#20363;&#12399;&#12289;&lt;a href="http://unicorn.bogomips.org/Unicorn/Configurator.html"&gt;Class: Unicorn::Configurator&lt;/a&gt; &#12363;&#12425;&#12522;&#12531;&#12463;&#12398;&#12354;&#12427;&#20197;&#19979;&#12398;&#12506;&#12540;&#12472;&#12391;&#30906;&#35469;&#12391;&#12365;&#12427;&#12290;&lt;/p&gt;

&lt;ul&gt;
  &lt;li&gt;&lt;a href="http://unicorn.bogomips.org/examples/unicorn.conf.rb"&gt;Sample verbose configuration file for Unicorn&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href="http://unicorn.bogomips.org/examples/unicorn.conf.minimal.rb"&gt;Minimal sample configuration file for Unicorn (&#24517;&#35201;&#26368;&#23567;&#38480;&#12398;&#35373;&#23450;&#20363;)&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;&#19978;&#35352;&#12398;&#26368;&#20302;&#38480;&#12398;&#35373;&#23450;&#12434;&#35373;&#23450;&#12434;&#27969;&#29992;&#12375;&#12289;&#20197;&#19979;&#12398;&#35373;&#23450;&#12501;&#12449;&#12452;&#12523;&#12434;&#29992;&#24847;&#12377;&#12427;&#12290;&lt;br /&gt;
Unicorn &#12399; TCP/IP &#12477;&#12465;&#12483;&#12488;&#12391;&#12418;&#24453;&#27231;&#12391;&#12365;&#12427;&#12364;&#12289;&#20197;&#19979;&#12398;&#35373;&#23450;&#12391;&#12399; Unix &#12489;&#12513;&#12452;&#12531;&#12477;&#12465;&#12483;&#12488;&#12434;&#20351;&#12387;&#12383;&#35373;&#23450;&#12398;&#12415;&#12392;&#12375;&#12390;&#12356;&#12427;&#12290;&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;&lt;code&gt;$APP_DIR/unicorn.conf&lt;/code&gt;&lt;/strong&gt;:&lt;/p&gt;

&lt;pre class="ruby"&gt;&lt;code class="language-ruby"&gt;worker_processes 2

listen '/tmp/unicorn.sock'

stderr_path File.expand_path('unicorn.log', File.dirname(__FILE__))
stdout_path File.expand_path('unicorn.log', File.dirname(__FILE__))

preload_app true
&lt;/code&gt;&lt;/pre&gt;

&lt;p&gt;&#12525;&#12464;&#12501;&#12449;&#12452;&#12523;&#12398;&#35352;&#36617;&#37096;&#20998;&#12434;&#35211;&#12390;&#12418;&#12425;&#12360;&#12427;&#12392;&#12431;&#12363;&#12427;&#12364;&#12289;Unicorn &#12398;&#35373;&#23450;&#12501;&#12449;&#12452;&#12523;&#12395;&#12399; Ruby &#12398;&#27083;&#25991;&#12364;&#21033;&#29992;&#21487;&#33021;&#12392;&#12394;&#12387;&#12390;&#12356;&#12427;&#12290;&lt;/p&gt;

&lt;h3 id="unicorn--3"&gt;Unicorn &#12469;&#12540;&#12496;&#12434;&#36215;&#21205;&#12377;&#12427;&lt;/h3&gt;

&lt;p&gt;Unicorn &#12469;&#12540;&#12496;&#12434;&#36215;&#21205;&#12377;&#12427;&#12290;&lt;br /&gt;
unicorn &#12467;&#12510;&#12531;&#12489;&#12434;&#21033;&#29992;&#12375;&#12390;&#36215;&#21205;&#12377;&#12427;&#12371;&#12392;&#12395;&#12394;&#12427;&#12290;&lt;code&gt;$APP_DIR&lt;/code&gt; &#12395;&#31227;&#21205;&#12375;&#12390;&#12289;&#20197;&#19979;&#12398;&#12467;&#12510;&#12531;&#12489;&#12391;&#36215;&#21205;&#12377;&#12427;&#12290;&lt;/p&gt;

&lt;pre class="shell"&gt;&lt;code class="language-shell"&gt;$ unicorn -c unicorn.conf -D
&lt;/code&gt;&lt;/pre&gt;

&lt;p&gt;&#20808;&#12411;&#12393;&#20316;&#25104;&#12375;&#12383; Unicorn &#12398;&#35373;&#23450;&#12501;&#12449;&#12452;&#12523;&#12434; &lt;code&gt;-c&lt;/code&gt; &#12458;&#12503;&#12471;&#12519;&#12531;&#12391;&#25351;&#23450;&#12375;&#12289;&lt;code&gt;-D&lt;/code&gt; &#12458;&#12503;&#12471;&#12519;&#12531;&#12391;&#12487;&#12540;&#12514;&#12531;&#36215;&#21205;&#12434;&#34892;&#12387;&#12390;&#12356;&#12427;&#12290;&lt;/p&gt;

&lt;p&gt;unicorn &#12399;&#12487;&#12501;&#12457;&#12523;&#12488;&#12391; &lt;code&gt;config.ru&lt;/code&gt; &#12434;&#12450;&#12503;&#12522;&#12465;&#12540;&#12471;&#12519;&#12531;&#12398;&#12456;&#12531;&#12488;&#12522;&#12509;&#12452;&#12531;&#12488;&#12392;&#12375;&#12390;&#35469;&#35672;&#12377;&#12427;&#12398;&#12391;&#12289;&#36215;&#21205;&#26178;&#12398;&#12487;&#12451;&#12524;&#12463;&#12488;&#12522;&#12395;&#23384;&#22312;&#12377;&#12427; Sinatra &#12391;&#26360;&#12363;&#12428;&#12383; Rack &#12450;&#12503;&#12522;&#12465;&#12540;&#12471;&#12519;&#12531;&#12391;&#12354;&#12427; &lt;code&gt;$APP_DIR/config.ru&lt;/code&gt; &#12364;&#19978;&#35352;&#12398;&#12467;&#12510;&#12531;&#12489;&#12391;&#35501;&#12415;&#36796;&#12414;&#12428;&#12390;&#12356;&#12427;&#12290;&lt;/p&gt;

&lt;p&gt;&#12525;&#12464;&#12501;&#12449;&#12452;&#12523;&#12434;&#30906;&#35469;&#12375;&#12390;&#12415;&#12427;&#12290;&lt;/p&gt;

&lt;pre class="shell"&gt;&lt;code class="language-shell"&gt;$ cat unicorn.log
I, [2011-07-30T21:50:47.966116 #6632]  INFO -- : unlinking existing socket=/tmp/unicorn.sock
I, [2011-07-30T21:50:47.966669 #6632]  INFO -- : listening on addr=/tmp/unicorn.sock fd=3
I, [2011-07-30T21:50:47.967666 #6632]  INFO -- : Refreshing Gem list
I, [2011-07-30T21:50:48.343228 #6632]  INFO -- : worker=0 spawning...
I, [2011-07-30T21:50:48.343795 #6632]  INFO -- : worker=1 spawning...
I, [2011-07-30T21:50:48.344260 #6632]  INFO -- : master process ready
I, [2011-07-30T21:50:48.344266 #6635]  INFO -- : worker=0 spawned pid=6635
I, [2011-07-30T21:50:48.344450 #6635]  INFO -- : worker=0 ready
I, [2011-07-30T21:50:48.344672 #6638]  INFO -- : worker=1 spawned pid=6638
I, [2011-07-30T21:50:48.344863 #6638]  INFO -- : worker=1 ready
&lt;/code&gt;&lt;/pre&gt;

&lt;p&gt;&#12456;&#12521;&#12540;&#12364;&#34920;&#31034;&#12373;&#12428;&#12390;&#12362;&#12425;&#12378;&#12289;&#19978;&#35352;&#12398;&#12424;&#12358;&#12394;&#12525;&#12464;&#12364;&#20986;&#21147;&#12373;&#12428;&#12390;&#12356;&#12428;&#12400;&#21839;&#38988;&#12394;&#12367;&#36215;&#21205;&#12364;&#34892;&#12360;&#12390;&#12356;&#12427;&#12290;
master &#12503;&#12525;&#12475;&#12473;&#12364;1&#12388;&#19978;&#12364;&#12426;&#12289;worker &#12503;&#12525;&#12475;&#12473;2&#12388;&#12434;&#36215;&#21205;&#12375;&#12390;&#12356;&#12427;&#12290;&lt;/p&gt;

&lt;h3 id="nginx--unicorn-"&gt;nginx &#12392; Unicorn &#12434;&#36899;&#25658;&#12377;&#12427;&lt;/h3&gt;

&lt;p&gt;&#12501;&#12525;&#12531;&#12488;&#12391;&#12522;&#12463;&#12456;&#12473;&#12488;&#12434;&#20966;&#29702;&#12377;&#12427; nginx &#12398;&#35373;&#23450;&#12290;&lt;/p&gt;

&lt;p&gt;&#26368;&#20302;&#38480;&#12398;&#35373;&#23450;&#12392;&#12356;&#12358;&#12392;&#12371;&#12429;&#12391;&#12289;&#20197;&#19979;&#12398;&#35373;&#23450;&#12434;&#35352;&#36848;&#12377;&#12427;&#12290;&lt;/p&gt;

&lt;ul&gt;
  &lt;li&gt;&lt;code&gt;upstream&lt;/code&gt; &#12487;&#12451;&#12524;&#12463;&#12486;&#12451;&#12502;(&#12525;&#12540;&#12489;&#12496;&#12521;&#12531;&#12471;&#12531;&#12464;&#12398;&#25351;&#23450;)&#12391; &lt;code&gt;unicornapp&lt;/code&gt; &#12392;&#12356;&#12358;&#12496;&#12483;&#12463;&#12456;&#12531;&#12489;&#12469;&#12540;&#12496;&#12434;&#23450;&#32681;&#12375;&#12289;Unicorn &#12469;&#12540;&#12496;&#12398; Unix &#12489;&#12513;&#12452;&#12531;&#12477;&#12465;&#12483;&#12488;&#12434;&#25351;&#23450;&#12375;&#12390;&#12362;&#12367;&#12290;&lt;/li&gt;
  &lt;li&gt;&lt;code&gt;location&lt;/code&gt; &#12487;&#12451;&#12524;&#12463;&#12486;&#12451;&#12502;&#12391; &lt;code&gt;upstream&lt;/code&gt; &#12395;&#25351;&#23450;&#12375;&#12383; &lt;code&gt;unicornapp&lt;/code&gt; &#12496;&#12483;&#12463;&#12456;&#12531;&#12489;&#12469;&#12540;&#12496;&#12434;&#25351;&#23450;&#12377;&#12427;&lt;/li&gt;
&lt;/ul&gt;

&lt;pre class="shell"&gt;&lt;code class="language-shell"&gt;upstream unicornapp {
  server unix:/tmp/unicorn.sock;
}

server {
        listen   80;
        server_name localhost;

        location / {
               proxy_pass http://unicornapp;
        }
}
&lt;/code&gt;&lt;/pre&gt;

&lt;p&gt;nginx &#35373;&#23450;&#12501;&#12449;&#12452;&#12523;&#12398;&#20877;&#35501;&#36796;&#12434;&#34892;&#12356;&#12289;&#12502;&#12521;&#12454;&#12470;&#12391; &lt;code&gt;http://localhost/hello&lt;/code&gt; &#12398; URI &#12434;&#21442;&#29031;&#12377;&#12427;&#12392;&#20808;&#12411;&#12393;&#12398; rackup &#12467;&#12510;&#12531;&#12489;&#12434;&#20351;&#29992;&#12375;&#12390;&#30906;&#35469;&#12375;&#12383; &#8220;Hello World&#8221; &#12392;&#21516;&#12376;&#12513;&#12483;&#12475;&#12540;&#12472;&#12398;&#30011;&#38754;&#12364;&#34920;&#31034;&#12373;&#12428;&#12390;&#12356;&#12427;&#12371;&#12392;&#12364;&#30906;&#35469;&#12391;&#12365;&#12427;&#12290;&lt;br /&gt;
(&#12371;&#12371;&#12391;&#30906;&#35469;&#12375;&#12390;&#12356;&#12427;&#30011;&#38754;&#12399; Unicorn &#12391;&#25552;&#20379;&#12373;&#12428;&#12390;&#12356;&#12427;&#12469;&#12540;&#12499;&#12473;)&lt;/p&gt;

&lt;p&gt;unicorn &#12398;&#12525;&#12464;&#12395;&#12418;&#12522;&#12463;&#12456;&#12473;&#12488;&#12434;&#20966;&#29702;&#12375;&#12383;&#12513;&#12483;&#12475;&#12540;&#12472;&#12364;&#30906;&#35469;&#12391;&#12365;&#12427;&#12290;&lt;/p&gt;

&lt;pre class="shell"&gt;&lt;code class="language-shell"&gt;$ tail -f unicorn.log
...
I, [2011-07-30T22:13:27.755913 #7306]  INFO -- : worker=1 ready
I, [2011-07-30T22:13:27.756925 #7303]  INFO -- : worker=0 spawned pid=7303
I, [2011-07-30T22:13:27.757150 #7303]  INFO -- : worker=0 ready
127.0.0.1 - - [30/Jul/2011 22:13:39] "GET /hello HTTP/1.0" 200 11 0.0155
&lt;/code&gt;&lt;/pre&gt;

&lt;p&gt;&#20197;&#19978;&#12391;&#22522;&#26412;&#30340;&#12394;&#35373;&#23450;&#12399;&#12362;&#12375;&#12414;&#12356;&#12290;&lt;/p&gt;

&lt;h3 id="unicorn--4"&gt;Unicorn &#12434;&#20572;&#27490;&#12377;&#12427;&lt;/h3&gt;

&lt;p&gt;Unicorn &#12395;&#23550;&#12377;&#12427;&#25805;&#20316;&#12399;&#22522;&#26412; Unicorn &#12398; master &#12503;&#12525;&#12475;&#12473;&#12395;&#23550;&#12375;&#12390;&#12398;&#12471;&#12464;&#12490;&#12523;&#12391;&#12398;&#25805;&#20316;&#12392;&#12394;&#12427;&#12290;&lt;/p&gt;

&lt;p&gt;&#12414;&#12378;&#12399;&#20572;&#27490;&#26041;&#27861;&#12290;2&#12388;&#12398;&#20572;&#27490;&#26041;&#27861;&#12364;&#12354;&#12427;&#12290;&lt;/p&gt;

&lt;ul&gt;
  &lt;li&gt;&#12503;&#12525;&#12475;&#12473;&#12434;&#21363;&#24231;&#12395;&#32066;&#20102;&#12377;&#12427;: &lt;strong&gt;INT/TERM&lt;/strong&gt; &#12471;&#12464;&#12490;&#12523;&#12434;&#20351;&#29992;&lt;/li&gt;
  &lt;li&gt;&#20966;&#29702;&#12434;&#34892;&#12387;&#12390;&#12356;&#12427;&#12522;&#12463;&#12456;&#12473;&#12488;&#12364;&#23436;&#20102;&#12377;&#12427;&#12398;&#12434;&#24453;&#12387;&#12390;&#12503;&#12525;&#12475;&#12473;&#12434;&#32066;&#20102;&#12377;&#12427;: &lt;strong&gt;QUIT&lt;/strong&gt; &#12471;&#12464;&#12490;&#12523;&#12434;&#20351;&#29992;&lt;/li&gt;
&lt;/ul&gt;

&lt;pre class="shell"&gt;&lt;code class="language-shell"&gt;$ ps -ef | grep unicorn | grep -v grep
hoge      7299     1  0 22:13 ?        00:00:04 unicorn master -c unicorn.conf -D
hoge      7303  7299  0 22:13 ?        00:00:03 unicorn worker[0] -c unicorn.conf -D
hoge      7306  7299  0 22:13 ?        00:00:03 unicorn worker[1] -c unicorn.conf -D
&lt;/code&gt;&lt;/pre&gt;

&lt;p&gt;&#19978;&#35352;&#12391;&#12431;&#12363;&#12427;&#12424;&#12358;&#12395;&#12289;master &#12503;&#12525;&#12475;&#12473;&#12399; 7299 &#12398;&#12503;&#12525;&#12475;&#12473;ID&#12391;&#21205;&#20316;&#12375;&#12390;&#12356;&#12427;&#12290;master &#12503;&#12525;&#12475;&#12473;&#12395;&#23550;&#12375;&#12390;&#12471;&#12464;&#12490;&#12523;&#12434;&#36865;&#12427;&#12290;&lt;/p&gt;

&lt;p&gt;Unicorn &#12434; gracefully &#12395;&#32066;&#20102;&#12373;&#12379;&#12427;&#22580;&#21512;&#12289;&lt;/p&gt;

&lt;pre class="shell"&gt;&lt;code class="language-shell"&gt;$ kill -QUIT 7299
&lt;/code&gt;&lt;/pre&gt;

&lt;p&gt;&lt;code&gt;unicorn.log&lt;/code&gt; &#12434;&#30906;&#35469;&#12290;&lt;/p&gt;

&lt;pre class="shell"&gt;&lt;code class="language-shell"&gt;I, [2011-07-30T23:32:13.866125 #7299]  INFO -- : reaped #&amp;lt;Process::Status: pid 7303 exit 0&amp;gt; worker=0
I, [2011-07-30T23:32:13.866403 #7299]  INFO -- : reaped #&amp;lt;Process::Status: pid 7306 exit 0&amp;gt; worker=1
I, [2011-07-30T23:32:13.866683 #7299]  INFO -- : master complete
&lt;/code&gt;&lt;/pre&gt;

&lt;p&gt;2&#12388;&#12398; worker &#12503;&#12525;&#12475;&#12473;&#12392; master &#12503;&#12525;&#12475;&#12473;&#12364;&#32066;&#20102;&#12375;&#12383;&#12371;&#12392;&#12364;&#12431;&#12363;&#12427;&#12290;&lt;/p&gt;

&lt;h3 id="unicorn--5"&gt;Unicorn &#12398;&#35373;&#23450;&#12398;&#20877;&#35501;&#36796;&lt;/h3&gt;

&lt;p&gt;Unicorn &#12398;&#35373;&#23450;&#12434;&#20877;&#35501;&#36796;&#12373;&#12379;&#12427;&#22580;&#21512;&#12399;&#12289;master &#12503;&#12525;&#12475;&#12473;&#12395; &lt;strong&gt;HUP&lt;/strong&gt; &#12471;&#12464;&#12490;&#12523;&#12434;&#36865;&#12427;&#12290;&lt;/p&gt;

&lt;pre class="shell"&gt;&lt;code class="language-shell"&gt;$ kill -HUP &amp;lt;master &#12398;&#12503;&#12525;&#12475;&#12473;ID&amp;gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;p&gt;&#12525;&#12464;&#12434;&#30906;&#35469;&#12375;&#12390;&#12415;&#12427;&#12392;&#12289;&#20877;&#35501;&#12415;&#12373;&#12428;&#12390;&#12356;&#12427;&#12371;&#12392;&#12364;&#30906;&#35469;&#12391;&#12365;&#12427;&#12290;&lt;/p&gt;

&lt;pre class="shell"&gt;&lt;code class="language-shell"&gt;I, [2011-07-30T23:35:42.261177 #7768]  INFO -- : reloading config_file=unicorn.conf
I, [2011-07-30T23:35:42.272338 #7768]  INFO -- : Refreshing Gem list
I, [2011-07-30T23:35:42.557187 #7768]  INFO -- : done reloading config_file=unicorn.conf
I, [2011-07-30T23:35:42.557362 #7768]  INFO -- : reaped #&amp;lt;Process::Status: pid 7773 exit 0&amp;gt; worker=0
I, [2011-07-30T23:35:42.557432 #7768]  INFO -- : reaped #&amp;lt;Process::Status: pid 7776 exit 0&amp;gt; worker=1
I, [2011-07-30T23:35:42.557545 #7768]  INFO -- : worker=0 spawning...
I, [2011-07-30T23:35:42.558136 #7768]  INFO -- : worker=1 spawning...
I, [2011-07-30T23:35:42.558726 #7782]  INFO -- : worker=0 spawned pid=7782
I, [2011-07-30T23:35:42.558966 #7782]  INFO -- : worker=0 ready
I, [2011-07-30T23:35:42.559173 #7785]  INFO -- : worker=1 spawned pid=7785
I, [2011-07-30T23:35:42.559430 #7785]  INFO -- : worker=1 ready
&lt;/code&gt;&lt;/pre&gt;

&lt;h3 id="section"&gt;&#12469;&#12540;&#12499;&#12473;&#12398;&#25552;&#20379;&#12434;&#27490;&#12417;&#12378;&#12395;&#12503;&#12525;&#12464;&#12521;&#12512;&#12398;&#20877;&#35501;&#36796;&lt;/h3&gt;

&lt;p&gt;&#12503;&#12525;&#12464;&#12521;&#12512;(&#12371;&#12371;&#12391;&#35328;&#12358; Sinatra Hello World &#12450;&#12503;&#12522;)&#12434;&#20877;&#37197;&#32622;&#12377;&#12427;&#12392;&#12365;&#12394;&#12393;&#12289;&#20877;&#24230;&#12503;&#12525;&#12464;&#12521;&#12512;&#12434;&#12525;&#12540;&#12489;&#12375;&#30452;&#12377;&#24517;&#35201;&#12364;&#12354;&#12427;&#12290;&lt;br /&gt;
Unicorn &#12469;&#12540;&#12496;&#12434;&#20572;&#27490;&#12375;&#12390;&#12289;&#20877;&#36215;&#21205;&#12391;&#12418;&#12424;&#12356;&#12364;&#12289;&#12469;&#12540;&#12499;&#12473;&#12398;&#25552;&#20379;&#12434;&#27490;&#12417;&#12378;&#12395;&#23455;&#26045;&#12377;&#12427;&#22580;&#21512;&#12398;&#23455;&#26045;&#26041;&#27861;&#12399;&#20197;&#19979;&#12398;&#26041;&#27861;&#12392;&#12394;&#12427;&#12290;&lt;/p&gt;

&lt;p&gt;&#29694;&#22312;&#12398;&#12503;&#12525;&#12475;&#12473;&#12398;&#29366;&#27841;&#12399;&#20197;&#19979;&#12398;&#36890;&#12426;&#12290;&lt;/p&gt;

&lt;pre class="shell"&gt;&lt;code class="language-shell"&gt;$ ps -ef | grep unicorn | grep -v grep
hoge      7768     1  0 23:35 ?        00:00:00 unicorn master -c unicorn.conf -D
hoge      7782  7768  0 23:35 ?        00:00:00 unicorn worker[0] -c unicorn.conf -D
hoge      7785  7768  0 23:35 ?        00:00:00 unicorn worker[1] -c unicorn.conf -D
&lt;/code&gt;&lt;/pre&gt;

&lt;p&gt;&#12371;&#12371;&#12391;&#20309;&#12425;&#12363;&#12398;&#12450;&#12503;&#12522;&#12398;&#25913;&#20462;&#12364;&#12354;&#12426;&#12289;&#12503;&#12525;&#12464;&#12521;&#12512;&#12434;&#20877;&#37197;&#32622;&#12375;&#12383;&#12392;&#12377;&#12427;&#12290;&lt;/p&gt;

&lt;p&gt;Unicorn &#12391;&#12399;&#12289;&#26082;&#23384;&#12398;&#12503;&#12525;&#12475;&#12473;&#12434;&#12381;&#12398;&#12414;&#12414;&#27531;&#12375;&#12289;&#26032;&#12383;&#12394; Unicorn &#12469;&#12540;&#12496;&#12398;&#12475;&#12483;&#12488;&#12434;&#12418;&#12358;&#19968;&#12475;&#12483;&#12488;&#20316;&#25104;&#12375;&#12289;&#12522;&#12463;&#12456;&#12473;&#12488;&#12398;&#20966;&#29702;&#12418;&#12381;&#12385;&#12425;&#12395;&#24341;&#12365;&#32153;&#12356;&#12391;&#12354;&#12370;&#12427;&#12371;&#12392;&#12364;&#12391;&#12365;&#12427;&#12290;&lt;/p&gt;

&lt;p&gt;&#12414;&#12378; &#29694;&#22312;&#12398; master &#12503;&#12525;&#12475;&#12473;&#12395; USR2 &#12471;&#12464;&#12490;&#12523;&#12434;&#36865;&#12427;&#12290;&lt;/p&gt;

&lt;pre class="shell"&gt;&lt;code class="language-shell"&gt;$ kill -USR2 7768
&lt;/code&gt;&lt;/pre&gt;

&lt;p&gt;Unicorn &#12398;&#12503;&#12525;&#12475;&#12473;&#12434;&#30906;&#35469;&#12375;&#12390;&#12415;&#12427;&#12290;&lt;/p&gt;

&lt;pre class="shell"&gt;&lt;code class="language-shell"&gt;$ ps -ef | grep unicorn | grep -v grep
hoge      7768     1  0 23:35 ?        00:00:01 unicorn master (old) -c unicorn.conf -D
hoge      7782  7768  0 23:35 ?        00:00:00 unicorn worker[0] -c unicorn.conf -D
hoge      7785  7768  0 23:35 ?        00:00:00 unicorn worker[1] -c unicorn.conf -D
hoge      7822  7768  1 23:43 ?        00:00:00 unicorn master -c unicorn.conf -D
hoge      7826  7822  0 23:43 ?        00:00:00 unicorn worker[0] -c unicorn.conf -D
hoge      7829  7822  0 23:43 ?        00:00:00 unicorn worker[1] -c unicorn.conf -D
&lt;/code&gt;&lt;/pre&gt;

&lt;p&gt;&#20803;&#12293;&#12354;&#12387;&#12383;&#12503;&#12525;&#12475;&#12473;(master pid: 7768)&#12395; old &#12392;&#12356;&#12358;&#34920;&#31034;&#12364;&#20837;&#12387;&#12390;&#12362;&#12426;&#12289;Unicorn &#12469;&#12540;&#12496;&#12398;&#12475;&#12483;&#12488;&#12364;&#12418;&#12358;&#12527;&#12531;&#12475;&#12483;&#12488;&#36861;&#21152;&#12373;&#12428;&#12390;&#12356;&#12427;&#12371;&#12392;&#12364;&#12431;&#12363;&#12427;&#12290;&lt;/p&gt;

&lt;p&gt;&#26032;&#12383;&#12395;&#29983;&#25104;&#12373;&#12428;&#12383;&#12503;&#12525;&#12475;&#12473;&#12395;&#12399;&#12289;&#12503;&#12525;&#12464;&#12521;&#12512;&#12398;&#26356;&#26032;&#12364;&#21453;&#26144;&#12373;&#12428;&#12390;&#12356;&#12427;&#12290;&lt;/p&gt;

&lt;p&gt;&#12371;&#12398;&#26178;&#12398; Unicorn &#12398;&#21205;&#20316;&#12434;&#12525;&#12464;&#12391;&#30906;&#35469;&#12375;&#12390;&#12415;&#12427;&#12392;&#20197;&#19979;&#12398;&#21205;&#20316;&#12395;&#12394;&#12387;&#12390;&#12356;&#12427;&#12290;&lt;/p&gt;

&lt;pre class="shell"&gt;&lt;code class="language-shell"&gt;I, [2011-07-30T23:43:20.117449 #7822]  INFO -- : executing ["/home/hoge/.rvm/gems/ruby-1.9.2-p180/bin/unicorn", "-c", "unicorn.conf", "-D"] (in /home/hoge/Dropbox/work/unicorn-app-sample)
I, [2011-07-30T23:43:20.117641 #7822]  INFO -- : forked child re-executing...
I, [2011-07-30T23:43:20.798555 #7822]  INFO -- : inherited addr=/tmp/unicorn.sock fd=3
I, [2011-07-30T23:43:20.798829 #7822]  INFO -- : Refreshing Gem list
I, [2011-07-30T23:43:21.165052 #7822]  INFO -- : worker=0 spawning...
I, [2011-07-30T23:43:21.165798 #7822]  INFO -- : worker=1 spawning...
I, [2011-07-30T23:43:21.166209 #7826]  INFO -- : worker=0 spawned pid=7826
I, [2011-07-30T23:43:21.166311 #7822]  INFO -- : master process ready
I, [2011-07-30T23:43:21.166401 #7826]  INFO -- : worker=0 ready
I, [2011-07-30T23:43:21.166635 #7829]  INFO -- : worker=1 spawned pid=7829
I, [2011-07-30T23:43:21.166768 #7829]  INFO -- : worker=1 ready
&lt;/code&gt;&lt;/pre&gt;

&lt;p&gt;&#26032;&#12375;&#12356;&#12503;&#12525;&#12475;&#12473;&#12395;&#12522;&#12463;&#12456;&#12473;&#12488;&#12398;&#21463;&#20184;&#20966;&#29702;&#12399;&#24341;&#12365;&#32153;&#12364;&#12428;&#12390;&#12356;&#12427;&#12398;&#12391;&#12289;&#21476;&#12356;&#26041;&#12398;&#12503;&#12525;&#12475;&#12473;&#12434;&#33853;&#12392;&#12375;&#12390;&#12356;&#12367;&#12290;&lt;/p&gt;

&lt;p&gt;&#12414;&#12378;&#12399;&#12289;&#21476;&#12356;&#26041;&#12398; master &#12503;&#12525;&#12475;&#12473;&#12395; WINCH &#12471;&#12464;&#12490;&#12523;&#12434;&#36865;&#12426;&#12289;&#12381;&#12398; worker &#12503;&#12525;&#12475;&#12473;&#12434;&#33853;&#12392;&#12375;&#12390;&#12354;&#12370;&#12427;&#12290;
WINCH &#12471;&#12464;&#12490;&#12523;&#12399;&#12381;&#12398; master &#12503;&#12525;&#12475;&#12473;&#12398; worker &#12503;&#12525;&#12475;&#12473;&#12434; gracefully &#12395;&#27490;&#12417;&#12390;&#12354;&#12370;&#12427;&#12290;&lt;/p&gt;

&lt;pre class="shell"&gt;&lt;code class="language-shell"&gt;$ kill -WINCH 7768
&lt;/code&gt;&lt;/pre&gt;

&lt;p&gt;&#12503;&#12525;&#12475;&#12473;&#12392;&#12525;&#12464;&#12434;&#30906;&#35469;&#12375;&#12390;&#12415;&#12427;&#12290;&lt;/p&gt;

&lt;pre class="shell"&gt;&lt;code class="language-shell"&gt;$ ps -ef | grep unicorn | grep -v grep
hoge      7768     1  0 23:35 ?        00:00:01 unicorn master (old) -c unicorn.conf -D
hoge      7822  7768  0 23:43 ?        00:00:01 unicorn master -c unicorn.conf -D
hoge      7826  7822  0 23:43 ?        00:00:00 unicorn worker[0] -c unicorn.conf -D
hoge      7829  7822  0 23:43 ?        00:00:00 unicorn worker[1] -c unicorn.conf -D
&lt;/code&gt;&lt;/pre&gt;

&lt;pre class="shell"&gt;&lt;code class="language-shell"&gt;I, [2011-07-30T23:48:45.648299 #7768]  INFO -- : gracefully stopping all workers
I, [2011-07-30T23:48:45.678491 #7768]  INFO -- : reaped #&amp;lt;Process::Status: pid 7782 exit 0&amp;gt; worker=0
I, [2011-07-30T23:48:45.678664 #7768]  INFO -- : reaped #&amp;lt;Process::Status: pid 7785 exit 0&amp;gt; worker=1
&lt;/code&gt;&lt;/pre&gt;

&lt;p&gt;&#30906;&#12363;&#12395;&#12289;&#21476;&#12356;&#26041;&#12398; Unicorn &#12398;&#12503;&#12525;&#12475;&#12473;&#12399;&#12289;master &#12503;&#12525;&#12475;&#12473;&#12384;&#12369;&#12364;&#27531;&#12426;&#12289;worker &#12399;&#20840;&#12390;&#32066;&#20102;&#12375;&#12390;&#12356;&#12427;&#12290;&lt;/p&gt;

&lt;p&gt;&#19968;&#26086;&#12371;&#12371;&#12391;&#24565;&#12398;&#12383;&#12417;&#12289;&#12450;&#12503;&#12522;&#12364;&#12461;&#12481;&#12531;&#12392;&#21205;&#20316;&#12375;&#12390;&#12356;&#12427;&#12363;&#30906;&#35469;&#12375;&#12390;&#12362;&#12367;&#12290;&lt;br /&gt;
&#21839;&#38988;&#28961;&#12356;&#12424;&#12358;&#12391;&#12354;&#12428;&#12400;&#12289;&#21476;&#12356; master &#12503;&#12525;&#12475;&#12473;&#12418;&#27490;&#12417;&#12390;&#12354;&#12370;&#12427;&#12290;&lt;/p&gt;

&lt;pre class="shell"&gt;&lt;code class="language-shell"&gt;$ kill -QUIT 7768
&lt;/code&gt;&lt;/pre&gt;

&lt;p&gt;&#12503;&#12525;&#12475;&#12473;&#12392;&#12525;&#12464;&#12434;&#30906;&#35469;&#12375;&#12390;&#12415;&#12427;&#12290;&lt;/p&gt;

&lt;pre class="shell"&gt;&lt;code class="language-shell"&gt;$ ps -ef | grep unicorn | grep -v grep
hoge      7822     1  0 23:43 ?        00:00:01 unicorn master -c unicorn.conf -D
hoge      7826  7822  0 23:43 ?        00:00:00 unicorn worker[0] -c unicorn.conf -D
hoge      7829  7822  0 23:43 ?        00:00:00 unicorn worker[1] -c unicorn.conf -D
&lt;/code&gt;&lt;/pre&gt;

&lt;pre class="shell"&gt;&lt;code class="language-shell"&gt;I, [2011-07-30T23:51:35.694051 #7768]  INFO -- : master complete
&lt;/code&gt;&lt;/pre&gt;

&lt;p&gt;&#12371;&#12428;&#12391;&#12289;&#26032;&#12375;&#12356;&#12503;&#12525;&#12464;&#12521;&#12512;&#12391; Unicorn &#12469;&#12540;&#12496;&#12364;&#21205;&#20316;&#12375;&#12390;&#12356;&#12427;&#29366;&#24907;&#12392;&#12394;&#12427;&#12290;&lt;/p&gt;
</summary>
  </entry>
  <entry>
    <id>tag:blog.designrecipe.jp,2011-07-09:/2011/07/09/flowdock/</id>
    <title type="html">&#24773;&#22577;&#12398;&#38598;&#32004;&#12392;&#12467;&#12511;&#12517;&#12491;&#12465;&#12540;&#12471;&#12519;&#12531;&#12398;&#20870;&#28369;&#21270; - &#12481;&#12540;&#12512;&#12398;&#24773;&#22577;&#12398;&#12495;&#12502;&#12395;&#12394;&#12427;&#20415;&#21033;&#12394;&#12484;&#12540;&#12523; Flowdock</title>
    <published>2011-07-08T15:35:00Z</published>
    <updated>2011-07-08T15:35:00Z</updated>
    <link rel="alternate" href="http://blog.designrecipe.jp/2011/07/09/flowdock/"/>
    <content type="html">&lt;p&gt;&#12481;&#12540;&#12512;&#20869;&#12391;&#25201;&#12431;&#12428;&#12427;&#24773;&#22577;&#12434;&#19968;&#31623;&#25152;&#12395;&#38598;&#32004;&#12375;&#12289;&#12522;&#12450;&#12523;&#12479;&#12452;&#12512;&#12395;&#12381;&#12428;&#12425;&#12398;&#24773;&#22577;&#12395;&#12388;&#12356;&#12390;&#12467;&#12511;&#12491;&#12517;&#12465;&#12540;&#12471;&#12519;&#12531;&#12434;&#12392;&#12428;&#12427;&#12424;&#12358;&#12394;&#12484;&#12540;&#12523;&#12399;&#12394;&#12356;&#12384;&#12429;&#12358;&#12363;&#65311;
&#12383;&#12414;&#12383;&#12414;&#12501;&#12457;&#12525;&#12540;&#12375;&#12390;&#12356;&#12427;&#26041;&#12398;&#12388;&#12406;&#12420;&#12365;&#12391;&#30693;&#12387;&#12383; Flowdock&#12290;1&#12534;&#26376;&#31243;&#20351;&#12387;&#12390;&#12415;&#12383;&#12364;&#12289;&#12414;&#12373;&#12395;&#27714;&#12417;&#12390;&#12356;&#12383;(&#20197;&#19978;&#12398;)&#12484;&#12540;&#12523;&#12290;&lt;/p&gt;

&lt;ul&gt;
  &lt;li&gt;&lt;a href="http://www.flowdock.com/"&gt;Flowdock Teamwork Revolution&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;&lt;img src="/assets/images/misc/flowdock-w500.png" alt="lowdock" /&gt;&lt;/p&gt;

&lt;p&gt;&#23455;&#38555;&#12395;&#20351;&#29992;&#12375;&#12390;&#12356;&#12427;&#30011;&#38754;&#12399;&#20197;&#19979;&#12398;&#12424;&#12358;&#12394;&#24863;&#12376;&#12290;&lt;br /&gt;
&#20351;&#12356;&#26041;&#12399;&#33267;&#12387;&#12390;&#12471;&#12531;&#12503;&#12523;&#12290;&#12414;&#12373;&#12395;&#12498;&#12483;&#12488;&#12375;&#12390;&#12356;&#12427;&#12467;&#12511;&#12491;&#12517;&#12465;&#12540;&#12471;&#12519;&#12531;&#12484;&#12540;&#12523;(twitter &#12384;&#12387;&#12383;&#12426;&#12289;2ch &#12384;&#12387;&#12383;&#12426;)&#12398;&#29305;&#24500;&#12384;&#12290;
&#12371;&#12398;&#12471;&#12531;&#12503;&#12523;&#12373;&#12398;&#12383;&#12417;&#12289;&#33258;&#20998;&#12383;&#12385;&#12398;&#30446;&#30340;&#12395;&#21512;&#12431;&#12379;&#12390;&#33258;&#30001;&#12395;&#20351;&#12360;&#12427;&#26580;&#36575;&#24615;&#12418;&#21512;&#12431;&#12379;&#25345;&#12388;&#12290;&lt;/p&gt;

&lt;p&gt;&lt;img src="/assets/images/misc/flowdock-1-w500.png" alt="lowdock-1" /&gt;&lt;/p&gt;

&lt;p&gt;&#24038;&#20596;&#12364; &lt;strong&gt;influx&lt;/strong&gt;(&#30452;&#35379;&#12377;&#12427;&#12392;&#12300;&#27969;&#20837;&#12301;) &#12392;&#21628;&#12400;&#12428;&#12390;&#12356;&#12427;&#12418;&#12398;&#12391;&#12289;&#12481;&#12540;&#12512;&#20869;&#12395;&#24517;&#35201;&#12394;&#24773;&#22577;&#12434;&#27969;&#12375;&#12371;&#12416;&#12392;&#12371;&#12429;&#12290;&lt;br /&gt;
&#19978;&#35352;&#30011;&#38754;&#12391;&#12399;&#12289;twitter &#12398;&#12522;&#12450;&#12523;&#12479;&#12452;&#12512;&#26908;&#32034;&#12398;&#32080;&#26524;&#12289;&#12481;&#12455;&#12483;&#12463;&#12375;&#12390;&#12362;&#12365;&#12383;&#12356; twitter &#12450;&#12459;&#12454;&#12531;&#12488;&#12398;&#24773;&#22577;&#12289;Wiki &#12484;&#12540;&#12523;&#12391;&#12354;&#12427; Confluence &#12398;&#26356;&#26032;&#23653;&#27508;&#12394;&#12393;&#12364;&#12522;&#12450;&#12523;&#12479;&#12452;&#12512;&#12395;&#27969;&#12428;&#36796;&#12435;&#12391;&#12365;&#12390;&#12356;&#12427;&#12290;&lt;/p&gt;

&lt;p&gt;&#12371;&#12398;&#27969;&#12428;&#12371;&#12435;&#12391;&#12365;&#12390;&#12356;&#12427;1&#12388;1&#12388;&#12398;&#24773;&#22577;&#12395;&#12399;&#12467;&#12513;&#12531;&#12488;&#12434;&#20837;&#12428;&#12427;&#12371;&#12392;&#12418;&#12391;&#12365;&#12427;&#12290;&lt;br /&gt;
&#20363;&#12360;&#12400; wiki &#12391;&#26360;&#12363;&#12428;&#12383;&#26356;&#26032;&#23653;&#27508;&#12395;&#12388;&#12356;&#12390;&#12467;&#12513;&#12531;&#12488;&#12375;&#12390;&#35696;&#35542;&#12375;&#12383;&#12426;&#12289;&#24460;&#12391;&#12481;&#12455;&#12483;&#12463;&#12375;&#12390;&#12362;&#12365;&#12383;&#12356;&#24773;&#22577;&#12395;&#12399;&#12467;&#12513;&#12531;&#12488;&#12434;&#20837;&#12428;&#12390;&#12362;&#12367;&#12424;&#12358;&#12394;&#12371;&#12392;&#12418;&#12391;&#12365;&#12427;&#12398;&#12391;&#12289;&#24773;&#22577;&#12364;&#22475;&#12418;&#12428;&#12390;&#12375;&#12414;&#12358;&#12371;&#12392;&#12364;&#12394;&#12356;&#12290;&lt;/p&gt;

&lt;p&gt;&#21491;&#20596;&#12364;&#12464;&#12523;&#12540;&#12503;&#12481;&#12515;&#12483;&#12488;&#12398;&#12506;&#12452;&#12531;&#12290;&lt;br /&gt;
&#29420;&#12426;&#35328;&#12434;&#21599;&#12367;&#12398;&#12418;&#12424;&#12356;&#12364;&#12289;twitter &#12398;&#12424;&#12358;&#12395; &#8220;@&#8221; &#12434;&#20351;&#12387;&#12390;&#23451;&#20808;&#12434;&#25351;&#23450;&#12391;&#12365;&#12383;&#12426;&#12289;&#8221;#&#8221; &#12434;&#20351;&#12387;&#12390;&#12479;&#12464;&#12434;&#20184;&#12369;&#12427;&#12371;&#12392;&#12418;&#12391;&#12365;&#12427;&#12290;&lt;br /&gt;
&#33258;&#20998;&#23451;&#12398;&#12388;&#12406;&#12420;&#12365;&#12395;&#12399;&#19978;&#35352;&#12398;&#12424;&#12358;&#12395;&#32972;&#26223;&#33394;&#12364;&#40644;&#33394;&#12395;&#12394;&#12427;&#12398;&#12391;&#12431;&#12363;&#12426;&#26131;&#12356;&#12290;&#12414;&#12383;&#12289;&#35373;&#23450;&#12391;&#22793;&#12360;&#12425;&#12428;&#12427;&#12364;&#33258;&#20998;&#23451;&#12398;&#12388;&#12406;&#12420;&#12365;&#12364;&#23626;&#12356;&#12383;&#22580;&#21512;&#12395;&#12399;&#12300;&#12509;&#12525;&#12540;&#12531;&#12301;&#12392;&#38899;&#12391;&#36890;&#30693;&#12375;&#12390;&#12428;&#12427;&#12290;&lt;/p&gt;

&lt;p&gt;&#20351;&#12356;&#26041;&#12364;&#12471;&#12531;&#12503;&#12523;&#12394;&#21106;&#12395;&#22810;&#12367;&#12398;&#29305;&#24500;&#12434;&#12418;&#12388;&#12450;&#12503;&#12522;&#12465;&#12540;&#12471;&#12519;&#12531;&#12391;&#12289;&#12394;&#12363;&#12394;&#12363;&#12381;&#12398;&#33391;&#12373;&#12398;&#20840;&#12390;&#12399;&#26360;&#12365;&#12365;&#12428;&#12394;&#12356;&#12290;&lt;br /&gt;
&#20808;&#12395;&#35352;&#36848;&#12375;&#12383;&#20869;&#23481;&#12392;&#22810;&#23569;&#37325;&#35079;&#12377;&#12427;&#12371;&#12392;&#37096;&#20998;&#12418;&#12354;&#12427;&#12364;&#12289;&#20844;&#24335;&#12469;&#12452;&#12488;&#12391;&#26360;&#12363;&#12428;&#12390;&#12356;&#12427;3&#12388;&#12398;&#29305;&#24500;&#12395;&#12388;&#12356;&#12390;&#26360;&#12356;&#12390;&#12415;&#12427;&#12290;&lt;/p&gt;

&lt;ul&gt;
  &lt;li&gt;&lt;strong&gt;Discuss (&#35696;&#35542;&#12377;&#12427;)&lt;/strong&gt;&lt;/li&gt;
  &lt;li&gt;&lt;strong&gt;Aggregate (&#38598;&#32004;&#12377;&#12427;)&lt;/strong&gt;&lt;/li&gt;
  &lt;li&gt;&lt;strong&gt;Organize (&#25972;&#29702;&#12377;&#12427;)&lt;/strong&gt;&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;&#20855;&#20307;&#30340;&#12395;&#12393;&#12358;&#12356;&#12358;&#12371;&#12392;&#12363;&#65311;&lt;/p&gt;

&lt;h3 id="discuss-"&gt;Discuss (&#35696;&#35542;&#12377;&#12427;)&lt;/h3&gt;

&lt;p&gt;&lt;strong&gt;&lt;em&gt;&#12522;&#12450;&#12523;&#12479;&#12452;&#12512;&#12464;&#12523;&#12540;&#12503;&#12481;&#12515;&#12483;&#12488; &amp;amp;&amp;amp; &#12501;&#12449;&#12452;&#12523;&#12398;&#20849;&#26377;&#12392;&#20445;&#31649;&#22580;&#25152;&#12392;&#12375;&#12390;&lt;/em&gt;&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;&#12481;&#12540;&#12512;&#20869;&#12398;&#12467;&#12511;&#12491;&#12517;&#12465;&#12540;&#12471;&#12519;&#12531;&#12395;&#12513;&#12540;&#12523;&#12434;&#20351;&#12358;&#12398;&#12399;&#38750;&#21177;&#29575;&#12391;&#12473;&#12488;&#12524;&#12473;&#12364;&#28316;&#12414;&#12427;&#12290;&lt;br /&gt;
&#38283;&#30330;&#32773;&#38291;&#12391;&#12354;&#12428;&#12400;&#12289;IRC &#12394;&#12393;&#12434;&#20351;&#12358;&#12398;&#12418;&#25163;&#12394;&#12398;&#12384;&#12364;&#12289;&#12487;&#12470;&#12452;&#12490;&#12540;&#12373;&#12435;&#12391;&#12354;&#12387;&#12383;&#12426;&#12289;IT &#12434;&#23554;&#38272;&#12392;&#12375;&#12394;&#12356;&#26041;&#12394;&#12393;&#12392;&#12398;&#12420;&#12426;&#21462;&#12426;&#12395;&#12399;&#20351;&#12356;&#38627;&#12356;&#12290;&lt;br /&gt;
&#12414;&#12383;&#12289;&#30011;&#20687;&#12394;&#12393;&#12364;&#25201;&#12360;&#12427;&#12392;&#20250;&#35441;&#12364;&#12473;&#12512;&#12540;&#12474;&#12395;&#12394;&#12387;&#12383;&#12426;&#12418;&#12377;&#12427;&#12290;&lt;/p&gt;

&lt;p&gt;&#35504;&#12395;&#12391;&#12418;&#31777;&#21336;&#12395;&#20351;&#12360;&#12390;&#12289;&#30011;&#20687;&#12398;&#25201;&#12356;&#12418;&#23481;&#26131;&#12394;&#12522;&#12450;&#12523;&#12479;&#12452;&#12512;&#12464;&#12523;&#12540;&#12503;&#12481;&#12515;&#12483;&#12488;&#12289;&#12414;&#12378;1&#12388;&#30446;&#12398; Flowdock &#12398;&#29305;&#24500;&#12290;&lt;/p&gt;

&lt;p&gt;&#26356;&#12395;&#12289;Twitter &#12398;&#12424;&#12358;&#12395;&#12289;&#8221;@&#8221; &#12391;&#23451;&#20808;&#12434;&#25351;&#23450;&#12391;&#12365;&#12289;&#25351;&#23450;&#12373;&#12428;&#12383;&#26041;&#12391;&#12399;&#38899;&#22768;&#12391;&#12398;&#36890;&#30693;(&#35373;&#23450;&#12399;&#22793;&#12360;&#12425;&#12428;&#12427;)&#12289;&#32972;&#26223;&#33394;&#12398;&#22793;&#21270;&#12394;&#12393;&#12391;&#23481;&#26131;&#12395;&#35469;&#35672;&#12391;&#12365;&#12427;&#12424;&#12358;&#12395;&#12394;&#12387;&#12390;&#12356;&#12427;&#12290;
&#12414;&#12383;&#12289;&#8221;#&#8221; &#12391;&#12479;&#12464;&#20184;&#12369;&#12364;&#34892;&#12360;&#12427;&#12290;&lt;/p&gt;

&lt;p&gt;&#12479;&#12464;&#12391;&#12398;&#32094;&#12426;&#36796;&#12415;&#26908;&#32034;&#12289;&#8221;@&#8221; &#12398;&#23451;&#20808;&#12395;&#12424;&#12427;&#32094;&#12426;&#36796;&#12415;&#26908;&#32034;&#12394;&#12393;&#12418;&#34892;&#12360;&#12427;&#12398;&#12391;&#12289;&#12481;&#12515;&#12483;&#12488;&#12450;&#12503;&#12522;&#12465;&#12540;&#12471;&#12519;&#12531;&#12395;&#12354;&#12426;&#12364;&#12385;&#12394; &lt;strong&gt;&#36942;&#21435;&#24773;&#22577;&#12364;&#22475;&#12418;&#12428;&#12390;&#12375;&#12414;&#12358;&#24515;&#37197;&#12418;&#12394;&#12356;&lt;/strong&gt;&#12290;&lt;/p&gt;

&lt;p&gt;&#12479;&#12464;&#12289;&#8221;@&#8221; &#12395;&#12424;&#12427;&#23451;&#20808;&#25351;&#23450;&#12399;&#21462;&#12426;&#22806;&#12375;&#21487;&#33021;&#12394;&#12398;&#12391;&#12289;&#33258;&#20998;&#12394;&#12393;&#12399;&#12385;&#12423;&#12387;&#12392;&#12375;&#12383;&#12479;&#12473;&#12463;&#31649;&#29702;&#12395;&#12418; Flowdock &#12434;&#20351;&#12387;&#12390;&#12362;&#12426;&#12289;&#12479;&#12464;&#12434;&#27963;&#29992;&#12375;&#12390;&#12356;&#12427;&#12290;
&#12377;&#12368;&#12391;&#12365;&#12394;&#12356;&#12479;&#12473;&#12463;&#12395;&#12399; &#8220;#todo&#8221; &#12479;&#12464;&#12434;&#25391;&#12387;&#12390;&#12362;&#12365;&#12289;&#24460;&#12391;&#8221;#todo&#8221;&#12479;&#12464;&#12391;&#12479;&#12473;&#12463;&#12434;&#26908;&#32034;&#12289;&#23436;&#20102;&#12375;&#12383;&#12425;&#12479;&#12464;&#12434;&#21093;&#12364;&#12377;&#12289;&#12392;&#12356;&#12358;&#12424;&#12358;&#12394;&#20351;&#12356;&#26041;&#12290;&lt;br /&gt;
&#12414;&#12383;&#12289;&#8221;@&#8221; &#12434;&#20341;&#29992;&#12377;&#12427;&#12371;&#12392;&#12391;&#12289;&#35504;&#12398;&#12479;&#12473;&#12463;&#12394;&#12398;&#12363;&#65311;&#12414;&#12391;&#31649;&#29702;&#12391;&#12365;&#12383;&#12426;&#12418;&#12377;&#12427;&#12290;&lt;/p&gt;

&lt;h3 id="aggregate-"&gt;Aggregate (&#38598;&#32004;&#12377;&#12427;)&lt;/h3&gt;

&lt;p&gt;&lt;strong&gt;&lt;em&gt;&#20182;&#12471;&#12473;&#12486;&#12512;&#12392;&#12398;&#23481;&#26131;&#12394;&#36899;&#25658;&lt;/em&gt;&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;Redmine &#12420; JIRA &#12392;&#12356;&#12387;&#12383;&#35506;&#38988;&#31649;&#29702;&#12471;&#12473;&#12486;&#12512;&#12289;Confluence &#12394;&#12393;&#12398; Wiki &#12471;&#12473;&#12486;&#12512;&#12289;github &#12394;&#12393;&#12289;&#12503;&#12525;&#12472;&#12455;&#12463;&#12488;&#12395;&#12399;&#27424;&#12363;&#12379;&#12394;&#12356;&#20182;&#12471;&#12473;&#12486;&#12512;&#12392;&#12398;&#36899;&#25658;&#12364;&#23481;&#26131;&#12395;&#12289;&#12363;&#12388;&#12289;&#12522;&#12450;&#12523;&#12479;&#12452;&#12512;&#12395;&#34892;&#12360;&#12427;&#12290;&lt;/p&gt;

&lt;p&gt;&#12522;&#12450;&#12523;&#12394;&#12450;&#12483;&#12503;&#12487;&#12540;&#12488;&#24773;&#22577;&#12399; Flowdock &#12384;&#12369;&#12434;&#27671;&#12395;&#12375;&#12390;&#12356;&#12428;&#12400;&#20107;&#36275;&#12426;&#12427;&#12424;&#12358;&#12395;&#12394;&#12427;&#12290;&lt;/p&gt;

&lt;p&gt;&#12371;&#12398;&lt;strong&gt;&#12481;&#12540;&#12512;&#12395;&#24517;&#35201;&#12394;&#24773;&#22577;&#12434;&#20840;&#12390;1&#31623;&#25152;&#12395;&#38598;&#32004;&lt;/strong&gt;&#12391;&#12365;&#12427;&#12392;&#12356;&#12358;&#12398;&#12364;&#12289;2&#12388;&#30446;&#12398; Flowdock &#12398;&#29305;&#24500;&#12290;&lt;/p&gt;

&lt;p&gt;Atlassian &#35069;&#21697;&#12398;&#20195;&#29702;&#24215;&#12391;&#12418;&#12354;&#12427;&#12425;&#12375;&#12367;&#12289;Atlassian &#35069;&#21697;&#12392;&#12398;&#36899;&#25658;&#12399;&#29305;&#12395;&#12424;&#12367;&#12391;&#12390;&#12356;&#12427;&#12290;&lt;br /&gt;
&#12381;&#12428;&#20197;&#22806;&#12398;&#12418;&#12398;&#12391;&#12418;&#12289;&#22522;&#26412; RSS &#12501;&#12451;&#12540;&#12489;&#12434;&#12399;&#12356;&#12390;&#12356;&#12427;&#12418;&#12398;&#12391;&#12354;&#12428;&#12400;&#12289;Flow &#12395;&#27969;&#12375;&#36796;&#12416;&#12371;&#12392;&#12364;&#12391;&#12365;&#12427;&#12290;&lt;/p&gt;

&lt;p&gt;&#12414;&#12383;&#12289;Twitter &#12392;&#12398;&#36899;&#25658;&#12418;&#21487;&#33021;&#12391;&#12289;&#12522;&#12450;&#12523;&#12479;&#12452;&#12512;&#26908;&#32034;&#12398;&#32080;&#26524;&#12398;&#27969;&#12375;&#12371;&#12415;&#12289;Twitter &#12450;&#12459;&#12454;&#12531;&#12488;&#12398; follow &#12418;&#21487;&#33021;&#12290;&lt;/p&gt;

&lt;p&gt;&#38283;&#30330;&#12481;&#12540;&#12512;&#12391;&#12354;&#12428;&#12400;&#12289;&#12522;&#12509;&#12472;&#12488;&#12522;&#12408;&#12398;&#12467;&#12511;&#12483;&#12488;&#12525;&#12464;&#12420;&#12289;deploy &#24773;&#22577;&#12418;&#27969;&#12375;&#36796;&#12417;&#12427;&#12398;&#12391; Flowdock &#12398; &lt;strong&gt;influx&lt;/strong&gt; &#12434;&#36861;&#12387;&#12390;&#12356;&#12427;&#12384;&#12369;&#12391;&#12289;&#12486;&#12451;&#12540;&#12512;&#20869;&#12398;&#27963;&#21205;&#29366;&#27841;&#12434;&#25226;&#25569;&#12377;&#12427;&#12371;&#12392;&#12364;&#12391;&#12365;&#12427;&#12290;&lt;/p&gt;

&lt;ul&gt;
  &lt;li&gt;&lt;a href="http://www.flowdock.com/tour/developers"&gt;Flowdock for Software Developers&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;

&lt;h3 id="organize-"&gt;Organize (&#25972;&#29702;&#12377;&#12427;)&lt;/h3&gt;

&lt;p&gt;&lt;strong&gt;&lt;em&gt;&#12479;&#12464;&#20184;&#12369;&#12391;&#20250;&#35441;&#12434;&#12490;&#12524;&#12483;&#12472;&#12395;&lt;/em&gt;&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;&#12464;&#12523;&#12540;&#12503;&#12481;&#12515;&#12483;&#12488;&#12391;&#12399;&#19968;&#36942;&#24615;&#12398;&#24773;&#22577;&#12434;&#12420;&#12426;&#21462;&#12426;&#12377;&#12427;&#12371;&#12392;&#12364;&#22823;&#21322;&#12384;&#12364;&#12289;Flowdock &#12391;&#12399;&lt;strong&gt;&#12381;&#12398;&#12420;&#12426;&#21462;&#12426;&#12364;&#12381;&#12398;&#12414;&#12414;&#12490;&#12524;&#12483;&#12472;&#12392;&#12375;&#12390;&#12418;&#33988;&#31309;&#12373;&#12428;&#12427;&lt;/strong&gt;&#20181;&#32068;&#12415;&#12434;&#29992;&#24847;&#12375;&#12390;&#12367;&#12428;&#12390;&#12356;&#12427;&#12290;&lt;br /&gt;
&#12371;&#12428;&#12364;3&#12388;&#30446;&#12398; Flowdock &#12398;&#29305;&#24500;&#12290;&lt;/p&gt;

&lt;p&gt;&#12414;&#12378;&#12289;&#12420;&#12426;&#21462;&#12426;&#12373;&#12428;&#12427;&#24773;&#22577;&#12399;&#20840;&#12390;&#27704;&#20037;&#12395; Flowdock &#12395;&#20445;&#23384;&#12373;&#12428;&#12427;&#12290;&lt;br /&gt;
Twitter &#12398;&#12424;&#12358;&#12394;&#12479;&#12464;&#20184;&#12369;&#12289;&#12513;&#12531;&#12471;&#12519;&#12531;&#12398;&#27231;&#33021;&#12289;&#12381;&#12375;&#12390;&#12289;&#20840;&#25991;&#26908;&#32034;&#12418;&#21487;&#33021;&#12394;&#12398;&#12391;&#12289;&lt;strong&gt;&#36942;&#21435;&#12420;&#12426;&#21462;&#12426;&#12375;&#12383;&#24773;&#22577;&#12434;&#23481;&#26131;&#12395;&#24460;&#12363;&#12425;&#12500;&#12483;&#12463;&#12450;&#12483;&#12503;&#12377;&#12427;&#12371;&#12392;&#12364;&#12391;&#12365;&#12427;&lt;/strong&gt;&#12290;&lt;br /&gt;
(&#12479;&#12464;&#12399;&#26085;&#26412;&#35486;&#12391;&#12418;&#20840;&#28982;&#21839;&#38988;&#12394;&#12356;&#12364;&#12289;&#20840;&#25991;&#26908;&#32034;&#12395;&#38306;&#12375;&#12390;&#12399;&#29694;&#29366;&#26085;&#26412;&#35486;&#12391;&#12398;&#26908;&#32034;&#12399;&#34892;&#12360;&#12394;&#12356;&#12290;)&lt;/p&gt;

&lt;h3 id="section"&gt;&#12300;&#12489;&#12483;&#12464;&#12501;&#12540;&#12489;&#12434;&#39135;&#12409;&#12427;&#12301;&lt;/h3&gt;

&lt;p&gt;&#12480;&#12521;&#12480;&#12521;&#12392;&#26360;&#12356;&#12390;&#12375;&#12414;&#12387;&#12383;&#12364;&#12289;&#20351;&#12387;&#12390;&#12415;&#12390;&#12418;&#12425;&#12360;&#12427;&#12392;&#12377;&#12368;&#12395;&#12381;&#12398;&#33391;&#12373;&#12434;&#20307;&#24863;&#12375;&#12390;&#12418;&#12425;&#12360;&#12427;&#12398;&#12391;&#12399;&#12394;&#12356;&#12363;&#12392;&#24605;&#12358;&#12290;&lt;/p&gt;

&lt;ul&gt;
  &lt;li&gt;&lt;a href="http://www.flowdock.com/"&gt;Flowdock Teamwork Revolution&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;&#12477;&#12501;&#12488;&#12454;&#12455;&#12450;&#38283;&#30330;&#12398;&#27010;&#24565;&#12391;&#12289;&#12300;&#12489;&#12483;&#12464;&#12501;&#12540;&#12489;&#12434;&#39135;&#12409;&#12427;&#12301;&#12392;&#12356;&#12358;&#35328;&#33865;&#12364;&#12354;&#12427;&#12290;&lt;/p&gt;

&lt;ul&gt;
  &lt;li&gt;
    &lt;p&gt;&lt;a href="http://en.wikipedia.org/wiki/Eating_your_own_dog_food"&gt;Eating your own dog food - Wikipedia, the free encyclopedia&lt;/a&gt;&lt;/p&gt;

    &lt;blockquote&gt;
      &lt;p&gt;Eating your own dog food, also called dogfooding, is when a company (usually, a software company) uses the products that it makes.&lt;/p&gt;
    &lt;/blockquote&gt;
  &lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;&#33258;&#31038;&#35069;&#21697;&#12434;&#33258;&#20998;&#12383;&#12385;&#12391;&#12418;&#23455;&#38555;&#12395;&#26989;&#21209;&#12391;&#20351;&#12387;&#12390;&#35413;&#20385;&#12375;&#12390;&#38283;&#30330;&#12375;&#12390;&#12356;&#12427;&#12371;&#12392;&#12434;&#35328;&#12358;&#12398;&#12384;&#12364;&#12289;&#20351;&#12387;&#12390;&#12415;&#12390;&#12289;&#12414;&#12373;&#12395;&#12381;&#12358;&#12375;&#12390;&#38283;&#30330;&#12373;&#12428;&#12390;&#12365;&#12383;&#12469;&#12540;&#12499;&#12473;&#12391;&#12399;&#12394;&#12356;&#12398;&#12363;&#12394;&#12392;&#24863;&#12376;&#12383;&#12290;&lt;/p&gt;

&lt;p&gt;&#33258;&#20998;&#12383;&#12385;&#12364;&#24517;&#35201;&#12289;&#20415;&#21033;&#12384;&#12392;&#24605;&#12358;&#12418;&#12398;&#12434;&#12469;&#12540;&#12499;&#12473;&#12395;&#12375;&#12390;&#12289;&#12381;&#12428;&#12434;&#12381;&#12398;&#21033;&#29992;&#32773;&#12395;&#12418;&#21916;&#12435;&#12391;&#12418;&#12425;&#12360;&#12427;&#12289;&#12392;&#12356;&#12358;&#29366;&#27841;&#12399;&#29702;&#24819;&#30340;&#12394;&#29366;&#27841;&#12384;&#12290;&lt;/p&gt;

&lt;p&gt;&#12501;&#12451;&#12531;&#12521;&#12531;&#12489;&#12398;&#20250;&#31038;&#12398;&#12424;&#12358;&#12391;&#12289;&#12513;&#12531;&#12496;&#12398;&#26041;&#12392;&#12385;&#12423;&#12387;&#12392;&#12420;&#12426;&#21462;&#12426;&#12373;&#12379;&#12390;&#12418;&#12425;&#12387;&#12383;&#12398;&#12384;&#12364;&#12289;&#12392;&#12390;&#12418;&#19969;&#23527;&#12391;&#35242;&#20999;&#12290;&lt;br /&gt;
&#12381;&#12375;&#12390;&#12289;&#33258;&#20998;&#12383;&#12385;&#12398;&#12469;&#12540;&#12499;&#12473;&#12434;&#22909;&#12365;&#12391;&#12289;&#35463;&#12426;&#12434;&#25345;&#12387;&#12390;&#12362;&#12426;&#12289;&#26356;&#12395;&#12424;&#12356;&#12469;&#12540;&#12499;&#12473;&#12395;&#12375;&#12390;&#12356;&#12365;&#12383;&#12356;&#12392;&#24605;&#12387;&#12390;&#12356;&#12427;&#24847;&#24535;&#12392;&#24773;&#29105;&#12364;&#12402;&#12375;&#12402;&#12375;&#12392;&#20253;&#12431;&#12387;&#12390;&#12365;&#12383;&#12290;&lt;/p&gt;

&lt;p&gt;&#20170;&#24460;&#12398;&#26356;&#12394;&#12427;&#36914;&#21270;&#12418;&#26399;&#24453;&#12391;&#12365;&#12427;&#12469;&#12540;&#12499;&#12473;&#12290;&lt;/p&gt;
</content>
    <summary type="html">&lt;p&gt;&#12481;&#12540;&#12512;&#20869;&#12391;&#25201;&#12431;&#12428;&#12427;&#24773;&#22577;&#12434;&#19968;&#31623;&#25152;&#12395;&#38598;&#32004;&#12375;&#12289;&#12522;&#12450;&#12523;&#12479;&#12452;&#12512;&#12395;&#12381;&#12428;&#12425;&#12398;&#24773;&#22577;&#12395;&#12388;&#12356;&#12390;&#12467;&#12511;&#12491;&#12517;&#12465;&#12540;&#12471;&#12519;&#12531;&#12434;&#12392;&#12428;&#12427;&#12424;&#12358;&#12394;&#12484;&#12540;&#12523;&#12399;&#12394;&#12356;&#12384;&#12429;&#12358;&#12363;&#65311;
&#12383;&#12414;&#12383;&#12414;&#12501;&#12457;&#12525;&#12540;&#12375;&#12390;&#12356;&#12427;&#26041;&#12398;&#12388;&#12406;&#12420;&#12365;&#12391;&#30693;&#12387;&#12383; Flowdock&#12290;1&#12534;&#26376;&#31243;&#20351;&#12387;&#12390;&#12415;&#12383;&#12364;&#12289;&#12414;&#12373;&#12395;&#27714;&#12417;&#12390;&#12356;&#12383;(&#20197;&#19978;&#12398;)&#12484;&#12540;&#12523;&#12290;&lt;/p&gt;

&lt;ul&gt;
  &lt;li&gt;&lt;a href="http://www.flowdock.com/"&gt;Flowdock Teamwork Revolution&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;&lt;img src="/assets/images/misc/flowdock-w500.png" alt="lowdock" /&gt;&lt;/p&gt;

&lt;p&gt;&#23455;&#38555;&#12395;&#20351;&#29992;&#12375;&#12390;&#12356;&#12427;&#30011;&#38754;&#12399;&#20197;&#19979;&#12398;&#12424;&#12358;&#12394;&#24863;&#12376;&#12290;&lt;br /&gt;
&#20351;&#12356;&#26041;&#12399;&#33267;&#12387;&#12390;&#12471;&#12531;&#12503;&#12523;&#12290;&#12414;&#12373;&#12395;&#12498;&#12483;&#12488;&#12375;&#12390;&#12356;&#12427;&#12467;&#12511;&#12491;&#12517;&#12465;&#12540;&#12471;&#12519;&#12531;&#12484;&#12540;&#12523;(twitter &#12384;&#12387;&#12383;&#12426;&#12289;2ch &#12384;&#12387;&#12383;&#12426;)&#12398;&#29305;&#24500;&#12384;&#12290;
&#12371;&#12398;&#12471;&#12531;&#12503;&#12523;&#12373;&#12398;&#12383;&#12417;&#12289;&#33258;&#20998;&#12383;&#12385;&#12398;&#30446;&#30340;&#12395;&#21512;&#12431;&#12379;&#12390;&#33258;&#30001;&#12395;&#20351;&#12360;&#12427;&#26580;&#36575;&#24615;&#12418;&#21512;&#12431;&#12379;&#25345;&#12388;&#12290;&lt;/p&gt;

&lt;p&gt;&lt;img src="/assets/images/misc/flowdock-1-w500.png" alt="lowdock-1" /&gt;&lt;/p&gt;

&lt;p&gt;&#24038;&#20596;&#12364; &lt;strong&gt;influx&lt;/strong&gt;(&#30452;&#35379;&#12377;&#12427;&#12392;&#12300;&#27969;&#20837;&#12301;) &#12392;&#21628;&#12400;&#12428;&#12390;&#12356;&#12427;&#12418;&#12398;&#12391;&#12289;&#12481;&#12540;&#12512;&#20869;&#12395;&#24517;&#35201;&#12394;&#24773;&#22577;&#12434;&#27969;&#12375;&#12371;&#12416;&#12392;&#12371;&#12429;&#12290;&lt;br /&gt;
&#19978;&#35352;&#30011;&#38754;&#12391;&#12399;&#12289;twitter &#12398;&#12522;&#12450;&#12523;&#12479;&#12452;&#12512;&#26908;&#32034;&#12398;&#32080;&#26524;&#12289;&#12481;&#12455;&#12483;&#12463;&#12375;&#12390;&#12362;&#12365;&#12383;&#12356; twitter &#12450;&#12459;&#12454;&#12531;&#12488;&#12398;&#24773;&#22577;&#12289;Wiki &#12484;&#12540;&#12523;&#12391;&#12354;&#12427; Confluence &#12398;&#26356;&#26032;&#23653;&#27508;&#12394;&#12393;&#12364;&#12522;&#12450;&#12523;&#12479;&#12452;&#12512;&#12395;&#27969;&#12428;&#36796;&#12435;&#12391;&#12365;&#12390;&#12356;&#12427;&#12290;&lt;/p&gt;

&lt;p&gt;&#12371;&#12398;&#27969;&#12428;&#12371;&#12435;&#12391;&#12365;&#12390;&#12356;&#12427;1&#12388;1&#12388;&#12398;&#24773;&#22577;&#12395;&#12399;&#12467;&#12513;&#12531;&#12488;&#12434;&#20837;&#12428;&#12427;&#12371;&#12392;&#12418;&#12391;&#12365;&#12427;&#12290;&lt;br /&gt;
&#20363;&#12360;&#12400; wiki &#12391;&#26360;&#12363;&#12428;&#12383;&#26356;&#26032;&#23653;&#27508;&#12395;&#12388;&#12356;&#12390;&#12467;&#12513;&#12531;&#12488;&#12375;&#12390;&#35696;&#35542;&#12375;&#12383;&#12426;&#12289;&#24460;&#12391;&#12481;&#12455;&#12483;&#12463;&#12375;&#12390;&#12362;&#12365;&#12383;&#12356;&#24773;&#22577;&#12395;&#12399;&#12467;&#12513;&#12531;&#12488;&#12434;&#20837;&#12428;&#12390;&#12362;&#12367;&#12424;&#12358;&#12394;&#12371;&#12392;&#12418;&#12391;&#12365;&#12427;&#12398;&#12391;&#12289;&#24773;&#22577;&#12364;&#22475;&#12418;&#12428;&#12390;&#12375;&#12414;&#12358;&#12371;&#12392;&#12364;&#12394;&#12356;&#12290;&lt;/p&gt;

&lt;p&gt;&#21491;&#20596;&#12364;&#12464;&#12523;&#12540;&#12503;&#12481;&#12515;&#12483;&#12488;&#12398;&#12506;&#12452;&#12531;&#12290;&lt;br /&gt;
&#29420;&#12426;&#35328;&#12434;&#21599;&#12367;&#12398;&#12418;&#12424;&#12356;&#12364;&#12289;twitter &#12398;&#12424;&#12358;&#12395; &#8220;@&#8221; &#12434;&#20351;&#12387;&#12390;&#23451;&#20808;&#12434;&#25351;&#23450;&#12391;&#12365;&#12383;&#12426;&#12289;&#8221;#&#8221; &#12434;&#20351;&#12387;&#12390;&#12479;&#12464;&#12434;&#20184;&#12369;&#12427;&#12371;&#12392;&#12418;&#12391;&#12365;&#12427;&#12290;&lt;br /&gt;
&#33258;&#20998;&#23451;&#12398;&#12388;&#12406;&#12420;&#12365;&#12395;&#12399;&#19978;&#35352;&#12398;&#12424;&#12358;&#12395;&#32972;&#26223;&#33394;&#12364;&#40644;&#33394;&#12395;&#12394;&#12427;&#12398;&#12391;&#12431;&#12363;&#12426;&#26131;&#12356;&#12290;&#12414;&#12383;&#12289;&#35373;&#23450;&#12391;&#22793;&#12360;&#12425;&#12428;&#12427;&#12364;&#33258;&#20998;&#23451;&#12398;&#12388;&#12406;&#12420;&#12365;&#12364;&#23626;&#12356;&#12383;&#22580;&#21512;&#12395;&#12399;&#12300;&#12509;&#12525;&#12540;&#12531;&#12301;&#12392;&#38899;&#12391;&#36890;&#30693;&#12375;&#12390;&#12428;&#12427;&#12290;&lt;/p&gt;

&lt;p&gt;&#20351;&#12356;&#26041;&#12364;&#12471;&#12531;&#12503;&#12523;&#12394;&#21106;&#12395;&#22810;&#12367;&#12398;&#29305;&#24500;&#12434;&#12418;&#12388;&#12450;&#12503;&#12522;&#12465;&#12540;&#12471;&#12519;&#12531;&#12391;&#12289;&#12394;&#12363;&#12394;&#12363;&#12381;&#12398;&#33391;&#12373;&#12398;&#20840;&#12390;&#12399;&#26360;&#12365;&#12365;&#12428;&#12394;&#12356;&#12290;&lt;br /&gt;
&#20808;&#12395;&#35352;&#36848;&#12375;&#12383;&#20869;&#23481;&#12392;&#22810;&#23569;&#37325;&#35079;&#12377;&#12427;&#12371;&#12392;&#37096;&#20998;&#12418;&#12354;&#12427;&#12364;&#12289;&#20844;&#24335;&#12469;&#12452;&#12488;&#12391;&#26360;&#12363;&#12428;&#12390;&#12356;&#12427;3&#12388;&#12398;&#29305;&#24500;&#12395;&#12388;&#12356;&#12390;&#26360;&#12356;&#12390;&#12415;&#12427;&#12290;&lt;/p&gt;

&lt;ul&gt;
  &lt;li&gt;&lt;strong&gt;Discuss (&#35696;&#35542;&#12377;&#12427;)&lt;/strong&gt;&lt;/li&gt;
  &lt;li&gt;&lt;strong&gt;Aggregate (&#38598;&#32004;&#12377;&#12427;)&lt;/strong&gt;&lt;/li&gt;
  &lt;li&gt;&lt;strong&gt;Organize (&#25972;&#29702;&#12377;&#12427;)&lt;/strong&gt;&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;&#20855;&#20307;&#30340;&#12395;&#12393;&#12358;&#12356;&#12358;&#12371;&#12392;&#12363;&#65311;&lt;/p&gt;

&lt;h3 id="discuss-"&gt;Discuss (&#35696;&#35542;&#12377;&#12427;)&lt;/h3&gt;

&lt;p&gt;&lt;strong&gt;&lt;em&gt;&#12522;&#12450;&#12523;&#12479;&#12452;&#12512;&#12464;&#12523;&#12540;&#12503;&#12481;&#12515;&#12483;&#12488; &amp;amp;&amp;amp; &#12501;&#12449;&#12452;&#12523;&#12398;&#20849;&#26377;&#12392;&#20445;&#31649;&#22580;&#25152;&#12392;&#12375;&#12390;&lt;/em&gt;&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;&#12481;&#12540;&#12512;&#20869;&#12398;&#12467;&#12511;&#12491;&#12517;&#12465;&#12540;&#12471;&#12519;&#12531;&#12395;&#12513;&#12540;&#12523;&#12434;&#20351;&#12358;&#12398;&#12399;&#38750;&#21177;&#29575;&#12391;&#12473;&#12488;&#12524;&#12473;&#12364;&#28316;&#12414;&#12427;&#12290;&lt;br /&gt;
&#38283;&#30330;&#32773;&#38291;&#12391;&#12354;&#12428;&#12400;&#12289;IRC &#12394;&#12393;&#12434;&#20351;&#12358;&#12398;&#12418;&#25163;&#12394;&#12398;&#12384;&#12364;&#12289;&#12487;&#12470;&#12452;&#12490;&#12540;&#12373;&#12435;&#12391;&#12354;&#12387;&#12383;&#12426;&#12289;IT &#12434;&#23554;&#38272;&#12392;&#12375;&#12394;&#12356;&#26041;&#12394;&#12393;&#12392;&#12398;&#12420;&#12426;&#21462;&#12426;&#12395;&#12399;&#20351;&#12356;&#38627;&#12356;&#12290;&lt;br /&gt;
&#12414;&#12383;&#12289;&#30011;&#20687;&#12394;&#12393;&#12364;&#25201;&#12360;&#12427;&#12392;&#20250;&#35441;&#12364;&#12473;&#12512;&#12540;&#12474;&#12395;&#12394;&#12387;&#12383;&#12426;&#12418;&#12377;&#12427;&#12290;&lt;/p&gt;

&lt;p&gt;&#35504;&#12395;&#12391;&#12418;&#31777;&#21336;&#12395;&#20351;&#12360;&#12390;&#12289;&#30011;&#20687;&#12398;&#25201;&#12356;&#12418;&#23481;&#26131;&#12394;&#12522;&#12450;&#12523;&#12479;&#12452;&#12512;&#12464;&#12523;&#12540;&#12503;&#12481;&#12515;&#12483;&#12488;&#12289;&#12414;&#12378;1&#12388;&#30446;&#12398; Flowdock &#12398;&#29305;&#24500;&#12290;&lt;/p&gt;

&lt;p&gt;&#26356;&#12395;&#12289;Twitter &#12398;&#12424;&#12358;&#12395;&#12289;&#8221;@&#8221; &#12391;&#23451;&#20808;&#12434;&#25351;&#23450;&#12391;&#12365;&#12289;&#25351;&#23450;&#12373;&#12428;&#12383;&#26041;&#12391;&#12399;&#38899;&#22768;&#12391;&#12398;&#36890;&#30693;(&#35373;&#23450;&#12399;&#22793;&#12360;&#12425;&#12428;&#12427;)&#12289;&#32972;&#26223;&#33394;&#12398;&#22793;&#21270;&#12394;&#12393;&#12391;&#23481;&#26131;&#12395;&#35469;&#35672;&#12391;&#12365;&#12427;&#12424;&#12358;&#12395;&#12394;&#12387;&#12390;&#12356;&#12427;&#12290;
&#12414;&#12383;&#12289;&#8221;#&#8221; &#12391;&#12479;&#12464;&#20184;&#12369;&#12364;&#34892;&#12360;&#12427;&#12290;&lt;/p&gt;

&lt;p&gt;&#12479;&#12464;&#12391;&#12398;&#32094;&#12426;&#36796;&#12415;&#26908;&#32034;&#12289;&#8221;@&#8221; &#12398;&#23451;&#20808;&#12395;&#12424;&#12427;&#32094;&#12426;&#36796;&#12415;&#26908;&#32034;&#12394;&#12393;&#12418;&#34892;&#12360;&#12427;&#12398;&#12391;&#12289;&#12481;&#12515;&#12483;&#12488;&#12450;&#12503;&#12522;&#12465;&#12540;&#12471;&#12519;&#12531;&#12395;&#12354;&#12426;&#12364;&#12385;&#12394; &lt;strong&gt;&#36942;&#21435;&#24773;&#22577;&#12364;&#22475;&#12418;&#12428;&#12390;&#12375;&#12414;&#12358;&#24515;&#37197;&#12418;&#12394;&#12356;&lt;/strong&gt;&#12290;&lt;/p&gt;

&lt;p&gt;&#12479;&#12464;&#12289;&#8221;@&#8221; &#12395;&#12424;&#12427;&#23451;&#20808;&#25351;&#23450;&#12399;&#21462;&#12426;&#22806;&#12375;&#21487;&#33021;&#12394;&#12398;&#12391;&#12289;&#33258;&#20998;&#12394;&#12393;&#12399;&#12385;&#12423;&#12387;&#12392;&#12375;&#12383;&#12479;&#12473;&#12463;&#31649;&#29702;&#12395;&#12418; Flowdock &#12434;&#20351;&#12387;&#12390;&#12362;&#12426;&#12289;&#12479;&#12464;&#12434;&#27963;&#29992;&#12375;&#12390;&#12356;&#12427;&#12290;
&#12377;&#12368;&#12391;&#12365;&#12394;&#12356;&#12479;&#12473;&#12463;&#12395;&#12399; &#8220;#todo&#8221; &#12479;&#12464;&#12434;&#25391;&#12387;&#12390;&#12362;&#12365;&#12289;&#24460;&#12391;&#8221;#todo&#8221;&#12479;&#12464;&#12391;&#12479;&#12473;&#12463;&#12434;&#26908;&#32034;&#12289;&#23436;&#20102;&#12375;&#12383;&#12425;&#12479;&#12464;&#12434;&#21093;&#12364;&#12377;&#12289;&#12392;&#12356;&#12358;&#12424;&#12358;&#12394;&#20351;&#12356;&#26041;&#12290;&lt;br /&gt;
&#12414;&#12383;&#12289;&#8221;@&#8221; &#12434;&#20341;&#29992;&#12377;&#12427;&#12371;&#12392;&#12391;&#12289;&#35504;&#12398;&#12479;&#12473;&#12463;&#12394;&#12398;&#12363;&#65311;&#12414;&#12391;&#31649;&#29702;&#12391;&#12365;&#12383;&#12426;&#12418;&#12377;&#12427;&#12290;&lt;/p&gt;

&lt;h3 id="aggregate-"&gt;Aggregate (&#38598;&#32004;&#12377;&#12427;)&lt;/h3&gt;

&lt;p&gt;&lt;strong&gt;&lt;em&gt;&#20182;&#12471;&#12473;&#12486;&#12512;&#12392;&#12398;&#23481;&#26131;&#12394;&#36899;&#25658;&lt;/em&gt;&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;Redmine &#12420; JIRA &#12392;&#12356;&#12387;&#12383;&#35506;&#38988;&#31649;&#29702;&#12471;&#12473;&#12486;&#12512;&#12289;Confluence &#12394;&#12393;&#12398; Wiki &#12471;&#12473;&#12486;&#12512;&#12289;github &#12394;&#12393;&#12289;&#12503;&#12525;&#12472;&#12455;&#12463;&#12488;&#12395;&#12399;&#27424;&#12363;&#12379;&#12394;&#12356;&#20182;&#12471;&#12473;&#12486;&#12512;&#12392;&#12398;&#36899;&#25658;&#12364;&#23481;&#26131;&#12395;&#12289;&#12363;&#12388;&#12289;&#12522;&#12450;&#12523;&#12479;&#12452;&#12512;&#12395;&#34892;&#12360;&#12427;&#12290;&lt;/p&gt;

&lt;p&gt;&#12522;&#12450;&#12523;&#12394;&#12450;&#12483;&#12503;&#12487;&#12540;&#12488;&#24773;&#22577;&#12399; Flowdock &#12384;&#12369;&#12434;&#27671;&#12395;&#12375;&#12390;&#12356;&#12428;&#12400;&#20107;&#36275;&#12426;&#12427;&#12424;&#12358;&#12395;&#12394;&#12427;&#12290;&lt;/p&gt;

&lt;p&gt;&#12371;&#12398;&lt;strong&gt;&#12481;&#12540;&#12512;&#12395;&#24517;&#35201;&#12394;&#24773;&#22577;&#12434;&#20840;&#12390;1&#31623;&#25152;&#12395;&#38598;&#32004;&lt;/strong&gt;&#12391;&#12365;&#12427;&#12392;&#12356;&#12358;&#12398;&#12364;&#12289;2&#12388;&#30446;&#12398; Flowdock &#12398;&#29305;&#24500;&#12290;&lt;/p&gt;

&lt;p&gt;Atlassian &#35069;&#21697;&#12398;&#20195;&#29702;&#24215;&#12391;&#12418;&#12354;&#12427;&#12425;&#12375;&#12367;&#12289;Atlassian &#35069;&#21697;&#12392;&#12398;&#36899;&#25658;&#12399;&#29305;&#12395;&#12424;&#12367;&#12391;&#12390;&#12356;&#12427;&#12290;&lt;br /&gt;
&#12381;&#12428;&#20197;&#22806;&#12398;&#12418;&#12398;&#12391;&#12418;&#12289;&#22522;&#26412; RSS &#12501;&#12451;&#12540;&#12489;&#12434;&#12399;&#12356;&#12390;&#12356;&#12427;&#12418;&#12398;&#12391;&#12354;&#12428;&#12400;&#12289;Flow &#12395;&#27969;&#12375;&#36796;&#12416;&#12371;&#12392;&#12364;&#12391;&#12365;&#12427;&#12290;&lt;/p&gt;

&lt;p&gt;&#12414;&#12383;&#12289;Twitter &#12392;&#12398;&#36899;&#25658;&#12418;&#21487;&#33021;&#12391;&#12289;&#12522;&#12450;&#12523;&#12479;&#12452;&#12512;&#26908;&#32034;&#12398;&#32080;&#26524;&#12398;&#27969;&#12375;&#12371;&#12415;&#12289;Twitter &#12450;&#12459;&#12454;&#12531;&#12488;&#12398; follow &#12418;&#21487;&#33021;&#12290;&lt;/p&gt;

&lt;p&gt;&#38283;&#30330;&#12481;&#12540;&#12512;&#12391;&#12354;&#12428;&#12400;&#12289;&#12522;&#12509;&#12472;&#12488;&#12522;&#12408;&#12398;&#12467;&#12511;&#12483;&#12488;&#12525;&#12464;&#12420;&#12289;deploy &#24773;&#22577;&#12418;&#27969;&#12375;&#36796;&#12417;&#12427;&#12398;&#12391; Flowdock &#12398; &lt;strong&gt;influx&lt;/strong&gt; &#12434;&#36861;&#12387;&#12390;&#12356;&#12427;&#12384;&#12369;&#12391;&#12289;&#12486;&#12451;&#12540;&#12512;&#20869;&#12398;&#27963;&#21205;&#29366;&#27841;&#12434;&#25226;&#25569;&#12377;&#12427;&#12371;&#12392;&#12364;&#12391;&#12365;&#12427;&#12290;&lt;/p&gt;

&lt;ul&gt;
  &lt;li&gt;&lt;a href="http://www.flowdock.com/tour/developers"&gt;Flowdock for Software Developers&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;

&lt;h3 id="organize-"&gt;Organize (&#25972;&#29702;&#12377;&#12427;)&lt;/h3&gt;

&lt;p&gt;&lt;strong&gt;&lt;em&gt;&#12479;&#12464;&#20184;&#12369;&#12391;&#20250;&#35441;&#12434;&#12490;&#12524;&#12483;&#12472;&#12395;&lt;/em&gt;&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;&#12464;&#12523;&#12540;&#12503;&#12481;&#12515;&#12483;&#12488;&#12391;&#12399;&#19968;&#36942;&#24615;&#12398;&#24773;&#22577;&#12434;&#12420;&#12426;&#21462;&#12426;&#12377;&#12427;&#12371;&#12392;&#12364;&#22823;&#21322;&#12384;&#12364;&#12289;Flowdock &#12391;&#12399;&lt;strong&gt;&#12381;&#12398;&#12420;&#12426;&#21462;&#12426;&#12364;&#12381;&#12398;&#12414;&#12414;&#12490;&#12524;&#12483;&#12472;&#12392;&#12375;&#12390;&#12418;&#33988;&#31309;&#12373;&#12428;&#12427;&lt;/strong&gt;&#20181;&#32068;&#12415;&#12434;&#29992;&#24847;&#12375;&#12390;&#12367;&#12428;&#12390;&#12356;&#12427;&#12290;&lt;br /&gt;
&#12371;&#12428;&#12364;3&#12388;&#30446;&#12398; Flowdock &#12398;&#29305;&#24500;&#12290;&lt;/p&gt;

&lt;p&gt;&#12414;&#12378;&#12289;&#12420;&#12426;&#21462;&#12426;&#12373;&#12428;&#12427;&#24773;&#22577;&#12399;&#20840;&#12390;&#27704;&#20037;&#12395; Flowdock &#12395;&#20445;&#23384;&#12373;&#12428;&#12427;&#12290;&lt;br /&gt;
Twitter &#12398;&#12424;&#12358;&#12394;&#12479;&#12464;&#20184;&#12369;&#12289;&#12513;&#12531;&#12471;&#12519;&#12531;&#12398;&#27231;&#33021;&#12289;&#12381;&#12375;&#12390;&#12289;&#20840;&#25991;&#26908;&#32034;&#12418;&#21487;&#33021;&#12394;&#12398;&#12391;&#12289;&lt;strong&gt;&#36942;&#21435;&#12420;&#12426;&#21462;&#12426;&#12375;&#12383;&#24773;&#22577;&#12434;&#23481;&#26131;&#12395;&#24460;&#12363;&#12425;&#12500;&#12483;&#12463;&#12450;&#12483;&#12503;&#12377;&#12427;&#12371;&#12392;&#12364;&#12391;&#12365;&#12427;&lt;/strong&gt;&#12290;&lt;br /&gt;
(&#12479;&#12464;&#12399;&#26085;&#26412;&#35486;&#12391;&#12418;&#20840;&#28982;&#21839;&#38988;&#12394;&#12356;&#12364;&#12289;&#20840;&#25991;&#26908;&#32034;&#12395;&#38306;&#12375;&#12390;&#12399;&#29694;&#29366;&#26085;&#26412;&#35486;&#12391;&#12398;&#26908;&#32034;&#12399;&#34892;&#12360;&#12394;&#12356;&#12290;)&lt;/p&gt;

&lt;h3 id="section"&gt;&#12300;&#12489;&#12483;&#12464;&#12501;&#12540;&#12489;&#12434;&#39135;&#12409;&#12427;&#12301;&lt;/h3&gt;

&lt;p&gt;&#12480;&#12521;&#12480;&#12521;&#12392;&#26360;&#12356;&#12390;&#12375;&#12414;&#12387;&#12383;&#12364;&#12289;&#20351;&#12387;&#12390;&#12415;&#12390;&#12418;&#12425;&#12360;&#12427;&#12392;&#12377;&#12368;&#12395;&#12381;&#12398;&#33391;&#12373;&#12434;&#20307;&#24863;&#12375;&#12390;&#12418;&#12425;&#12360;&#12427;&#12398;&#12391;&#12399;&#12394;&#12356;&#12363;&#12392;&#24605;&#12358;&#12290;&lt;/p&gt;

&lt;ul&gt;
  &lt;li&gt;&lt;a href="http://www.flowdock.com/"&gt;Flowdock Teamwork Revolution&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;&#12477;&#12501;&#12488;&#12454;&#12455;&#12450;&#38283;&#30330;&#12398;&#27010;&#24565;&#12391;&#12289;&#12300;&#12489;&#12483;&#12464;&#12501;&#12540;&#12489;&#12434;&#39135;&#12409;&#12427;&#12301;&#12392;&#12356;&#12358;&#35328;&#33865;&#12364;&#12354;&#12427;&#12290;&lt;/p&gt;

&lt;ul&gt;
  &lt;li&gt;
    &lt;p&gt;&lt;a href="http://en.wikipedia.org/wiki/Eating_your_own_dog_food"&gt;Eating your own dog food - Wikipedia, the free encyclopedia&lt;/a&gt;&lt;/p&gt;

    &lt;blockquote&gt;
      &lt;p&gt;Eating your own dog food, also called dogfooding, is when a company (usually, a software company) uses the products that it makes.&lt;/p&gt;
    &lt;/blockquote&gt;
  &lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;&#33258;&#31038;&#35069;&#21697;&#12434;&#33258;&#20998;&#12383;&#12385;&#12391;&#12418;&#23455;&#38555;&#12395;&#26989;&#21209;&#12391;&#20351;&#12387;&#12390;&#35413;&#20385;&#12375;&#12390;&#38283;&#30330;&#12375;&#12390;&#12356;&#12427;&#12371;&#12392;&#12434;&#35328;&#12358;&#12398;&#12384;&#12364;&#12289;&#20351;&#12387;&#12390;&#12415;&#12390;&#12289;&#12414;&#12373;&#12395;&#12381;&#12358;&#12375;&#12390;&#38283;&#30330;&#12373;&#12428;&#12390;&#12365;&#12383;&#12469;&#12540;&#12499;&#12473;&#12391;&#12399;&#12394;&#12356;&#12398;&#12363;&#12394;&#12392;&#24863;&#12376;&#12383;&#12290;&lt;/p&gt;

&lt;p&gt;&#33258;&#20998;&#12383;&#12385;&#12364;&#24517;&#35201;&#12289;&#20415;&#21033;&#12384;&#12392;&#24605;&#12358;&#12418;&#12398;&#12434;&#12469;&#12540;&#12499;&#12473;&#12395;&#12375;&#12390;&#12289;&#12381;&#12428;&#12434;&#12381;&#12398;&#21033;&#29992;&#32773;&#12395;&#12418;&#21916;&#12435;&#12391;&#12418;&#12425;&#12360;&#12427;&#12289;&#12392;&#12356;&#12358;&#29366;&#27841;&#12399;&#29702;&#24819;&#30340;&#12394;&#29366;&#27841;&#12384;&#12290;&lt;/p&gt;

&lt;p&gt;&#12501;&#12451;&#12531;&#12521;&#12531;&#12489;&#12398;&#20250;&#31038;&#12398;&#12424;&#12358;&#12391;&#12289;&#12513;&#12531;&#12496;&#12398;&#26041;&#12392;&#12385;&#12423;&#12387;&#12392;&#12420;&#12426;&#21462;&#12426;&#12373;&#12379;&#12390;&#12418;&#12425;&#12387;&#12383;&#12398;&#12384;&#12364;&#12289;&#12392;&#12390;&#12418;&#19969;&#23527;&#12391;&#35242;&#20999;&#12290;&lt;br /&gt;
&#12381;&#12375;&#12390;&#12289;&#33258;&#20998;&#12383;&#12385;&#12398;&#12469;&#12540;&#12499;&#12473;&#12434;&#22909;&#12365;&#12391;&#12289;&#35463;&#12426;&#12434;&#25345;&#12387;&#12390;&#12362;&#12426;&#12289;&#26356;&#12395;&#12424;&#12356;&#12469;&#12540;&#12499;&#12473;&#12395;&#12375;&#12390;&#12356;&#12365;&#12383;&#12356;&#12392;&#24605;&#12387;&#12390;&#12356;&#12427;&#24847;&#24535;&#12392;&#24773;&#29105;&#12364;&#12402;&#12375;&#12402;&#12375;&#12392;&#20253;&#12431;&#12387;&#12390;&#12365;&#12383;&#12290;&lt;/p&gt;

&lt;p&gt;&#20170;&#24460;&#12398;&#26356;&#12394;&#12427;&#36914;&#21270;&#12418;&#26399;&#24453;&#12391;&#12365;&#12427;&#12469;&#12540;&#12499;&#12473;&#12290;&lt;/p&gt;
</summary>
  </entry>
  <entry>
    <id>tag:blog.designrecipe.jp,2011-07-03:/2011/07/03/virtualbox-shared-folders/</id>
    <title type="html">&#20316;&#26989;&#12487;&#12540;&#12479;&#12434;&#35079;&#25968;&#12398; VM &#12391;&#20849;&#26377;&#12377;&#12427; - VirtualBox&#12300;&#20849;&#26377;&#12501;&#12457;&#12523;&#12480;&#12301;&#12398;&#20351;&#12356;&#26041;</title>
    <published>2011-07-03T08:01:00Z</published>
    <updated>2011-07-03T08:01:00Z</updated>
    <link rel="alternate" href="http://blog.designrecipe.jp/2011/07/03/virtualbox-shared-folders/"/>
    <content type="html">&lt;p&gt;&#35079;&#25968;&#12398; VM &#29872;&#22659;&#12434;&#25201;&#12387;&#12390;&#12356;&#12427;&#12392;&#12365;&#12289;VM &#19978;&#12391;&#12459;&#12473;&#12479;&#12510;&#12452;&#12474;&#12377;&#12427;&#35373;&#23450;&#12501;&#12449;&#12452;&#12523;&#12289;&#12473;&#12463;&#12522;&#12503;&#12488;&#12394;&#12393;&#12398;&#22823;&#21322;&#12399;&#21508; VM &#12391;&#20849;&#26377;&#12391;&#12365;&#12427;&#12371;&#12392;&#12364;&#22810;&#12356;&#12290;&lt;br /&gt;
VM &#29872;&#22659;&#27598;&#12395;&#26032;&#12383;&#12395;&#12501;&#12449;&#12452;&#12523;&#12434;&#20316;&#25104;&#12375;&#12383;&#12426;&#12289;&#12501;&#12449;&#12452;&#12523;&#12434; scp &#31561;&#12391;&#12467;&#12500;&#12540;&#12375;&#12383;&#12426;&#12289;&#12394;&#12393;&#12289;&#12414;&#12392;&#12418;&#12395;&#12420;&#12387;&#12390;&#12356;&#12427;&#12392;&#31649;&#29702;&#21547;&#12417;&#12390;&#12513;&#12531;&#12489;&#12452;&#12371;&#12392;&#12395;&#12394;&#12427;&#12290;&lt;br /&gt;
&#12525;&#12540;&#12459;&#12523;&#12391;&#38283;&#30330;&#12434;&#34892;&#12387;&#12390;&#12362;&#12426;&#12289;&#35079;&#25968;&#12398; VM &#12434;&#20351;&#12387;&#12390;&#20316;&#26989;&#12434;&#34892;&#12358;&#22580;&#21512;&#12289;VM &#29872;&#22659;&#12363;&#12425;&#12525;&#12540;&#12459;&#12523;(&#12507;&#12473;&#12488;OS)&#12398;&#12501;&#12449;&#12452;&#12523;&#12434;&#25201;&#12360;&#12427;&#12424;&#12358;&#12395;&#12375;&#12390;&#12362;&#12356;&#12390;&#12289;&#21508; VM &#12391;&#20849;&#26377;&#12391;&#12365;&#12427;&#12392;&#20309;&#12363;&#12392;&#20415;&#21033;&#12384;&#12290;&lt;/p&gt;

&lt;p&gt;VM &#29872;&#22659;&#12363;&#12425;&#12525;&#12540;&#12459;&#12523;(&#12507;&#12473;&#12488;OS)&#12398;&#12501;&#12449;&#12452;&#12523;&#12434;&#12300;&#20849;&#26377;&#12501;&#12457;&#12523;&#12480;&#12301;&#12392;&#12375;&#12390;&#25201;&#12360;&#12427;&#12424;&#12358;&#12395;&#12377;&#12427;&#12290;&lt;/p&gt;

&lt;p&gt;&#12414;&#12383;&#12289;&#12371;&#12398;&#12507;&#12473;&#12488; OS &#12398;&#23550;&#35937;&#12501;&#12449;&#12452;&#12523;&#12434;&#12458;&#12531;&#12521;&#12452;&#12531;&#12473;&#12488;&#12524;&#12540;&#12472;&#12469;&#12540;&#12499;&#12473; Dropbox &#12394;&#12393;&#12391;&#31649;&#29702;&#12375;&#12390;&#12356;&#12418;&#12398;&#12434;&#21033;&#29992;&#12377;&#12427;&#12392;&#12289;&#12393;&#12398;&#12510;&#12471;&#12531;&#12391;&#12418;&#21516;&#12376;&#20316;&#26989;&#12487;&#12540;&#12479;&#12434;&#20351;&#29992;&#12375;&#12390; VM &#29872;&#22659;&#12434;&#21033;&#29992;&#12391;&#12365;&#12427;&#12424;&#12358;&#12395;&#12394;&#12427;&#12290;&lt;/p&gt;

&lt;h3 id="section"&gt;&#29872;&#22659;&#12392;&#25163;&#38918;&#12398;&#27010;&#35201;&lt;/h3&gt;

&lt;p&gt;&#29872;&#22659;&#12399;&#20197;&#19979;&#12398;&#36890;&#12426;&#12392;&#12394;&#12427;&#12290;&lt;/p&gt;

&lt;ul&gt;
  &lt;li&gt;Oracle VM VirtualBox v4.0.8&lt;/li&gt;
  &lt;li&gt;&#12525;&#12540;&#12459;&#12523;(&#12507;&#12473;&#12488;)OS&#12399;&#12289;Ubuntu 10.04 Desktop or Windows XP&lt;br /&gt;
VirtualBox &#12364;&#21205;&#20316;&#12377;&#12428;&#12400;&#29305;&#12395;&#36984;&#12400;&#12394;&#12356;&#12399;&#12378;&#12290;&lt;/li&gt;
  &lt;li&gt;&#20206;&#24819; OS &#12399; Turnkey Linux (Ubuntu 10.04) &#12434;&#20351;&#29992;&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;&#25163;&#38918;&#12399;&#20197;&#19979;&#12398;&#27969;&#12428;&#12392;&#12394;&#12427;&#12290;&lt;/p&gt;

&lt;ol&gt;
  &lt;li&gt;VM Manager &#12391;&#12398;&#20316;&#26989;
    &lt;ol&gt;
      &lt;li&gt;VM Manager &#12391;&#12493;&#12483;&#12488;&#12527;&#12540;&#12463;&#35373;&#23450;&#12395; &#8220;Host only adapter&#8221; &#12434;&#36861;&#21152;&#12375;&#12390;&#12362;&#12367;&lt;/li&gt;
      &lt;li&gt;&#20849;&#26377;&#12501;&#12457;&#12523;&#12480;&#12434;&#20316;&#25104;&#12375;&#12390;&#12362;&#12367;&lt;/li&gt;
    &lt;/ol&gt;
  &lt;/li&gt;
  &lt;li&gt;VM &#12466;&#12473;&#12488; OS &#12391;&#12398;&#20316;&#26989;
    &lt;ol&gt;
      &lt;li&gt;&#24517;&#35201;&#12394;&#12497;&#12483;&#12465;&#12540;&#12472;&#12398;&#12452;&#12531;&#12473;&#12488;&#12540;&#12523;&lt;/li&gt;
      &lt;li&gt;Guest Additions &#12398;&#12452;&#12531;&#12473;&#12488;&#12540;&#12523;&lt;br /&gt;
 a. &#12452;&#12513;&#12540;&#12472;&#12398;&#12510;&#12454;&#12531;&#12488;&lt;br /&gt;
 b. Guest Addictions &#12398;&#12452;&#12531;&#12473;&#12488;&#12540;&#12523;&#23455;&#34892;&lt;/li&gt;
      &lt;li&gt;&#20849;&#26377;&#12501;&#12457;&#12523;&#12480;&#12434;&#21033;&#29992;&#12377;&#12427;&lt;/li&gt;
    &lt;/ol&gt;
  &lt;/li&gt;
&lt;/ol&gt;

&lt;h3 id="vm-manager-"&gt;1. VM Manager &#12391;&#12398;&#20316;&#26989;&lt;/h3&gt;

&lt;p&gt;&#12414;&#12378;&#12399;&#12289;VM Manager &#12391;&#12398;&#20316;&#26989;&#12290;&#12414;&#12384; VM &#12398;&#12510;&#12471;&#12531;&#12399;&#36215;&#21205;&#12375;&#12390;&#12356;&#12394;&#12356;&#12290;&lt;/p&gt;

&lt;h4 id="vm-manager--host-only-adapter-"&gt;1.1. VM Manager &#12391;&#12493;&#12483;&#12488;&#12527;&#12540;&#12463;&#35373;&#23450;&#12395; &#8220;Host only adapter&#8221; &#12434;&#36861;&#21152;&#12375;&#12390;&#12362;&#12367;&lt;/h4&gt;

&lt;p&gt;VM Manager &#12434;&#20351;&#29992;&#12375;&#12390;&#20206;&#24819;&#12510;&#12471;&#12531;&#12398;&#12493;&#12483;&#12488;&#12527;&#12540;&#12463;&#35373;&#23450;&#12395; &#8220;Host only adapter&#8221; &#12434;&#35373;&#23450;&#12375;&#12390;&#12356;&#12394;&#12356;&#22580;&#21512;&#12395;&#12399;&#35373;&#23450;&#12375;&#12390;&#12362;&#12367;&#12290;&lt;/p&gt;

&lt;p&gt;&lt;img src="/assets/images/ubuntu/virtualbox-network-setting-w500.png" alt="virtualbox-network-setting" /&gt;&lt;/p&gt;

&lt;h4 id="section-1"&gt;1.2. &#20849;&#26377;&#12501;&#12457;&#12523;&#12480;&#12434;&#20316;&#25104;&#12375;&#12390;&#12362;&#12367;&lt;/h4&gt;

&lt;p&gt;VM &#12363;&#12425;&#20351;&#29992;&#12377;&#12427;&#12525;&#12540;&#12459;&#12523;(&#12466;&#12473;&#12488;OS)&#12398;&#12487;&#12451;&#12524;&#12463;&#12488;&#12522;&#12434;&#25351;&#23450;&#12375;&#12289;&#20849;&#26377;&#12501;&#12457;&#12523;&#12480;&#12392;&#12375;&#12390; VM Manager &#12395;&#30331;&#37682;&#12375;&#12390;&#12362;&#12367;&#12290;&lt;/p&gt;

&lt;p&gt;&lt;img src="/assets/images/ubuntu/virtualbox-share-folder-setting-w500.png" alt="virtualbox-share-folder-setting" /&gt;&lt;/p&gt;

&lt;p&gt;&#19978;&#35352;&#12398;&#20363;&#12391;&#12399;&#12289;&#23455;&#20307;&#12392;&#12375;&#12390;&#12398;&#12501;&#12457;&#12523;&#12480;&#12434;&#8221;&#12501;&#12449;&#12523;&#12480;&#12398;&#12497;&#12473;&#8221; (&lt;code&gt;/home/xxx/Dropbox&lt;/code&gt;) &#12395;&#25351;&#23450;&#12375;&#12289;&#8221;&#12501;&#12457;&#12523;&#12480;&#21517;&#8221; &#12395; &#8220;Dropbox&#8221; &#12392;&#25351;&#23450;&#12375;&#12390;&#12356;&#12427;&#12290;
&#24460;&#32773;&#12398; &#8220;&#12501;&#12457;&#12523;&#12480;&#21517;&#8221; &#12392;&#12356;&#12358;&#12398;&#12364;&#12289;VM &#29872;&#22659;&#12398;&#12466;&#12473;&#12488; OS &#12363;&#12425;&#21442;&#29031;&#12377;&#12427;&#38555;&#12398;&#12501;&#12457;&#12523;&#12480;&#12398;&#21517;&#31216;&#12392;&#12394;&#12427;&#12290;&lt;/p&gt;

&lt;p&gt;&#12371;&#12371;&#12391;&#12289;VM &#12398;&#12510;&#12471;&#12531;&#12434;&#36215;&#21205;&#12375;&#12390;&#12362;&#12367;&#12290;&lt;/p&gt;

&lt;h3 id="vm--os-"&gt;2. VM &#12466;&#12473;&#12488; OS &#12391;&#12398;&#20316;&#26989;&lt;/h3&gt;

&lt;p&gt;VM &#12398;&#12466;&#12473;&#12488; OS &#12391;&#12398;&#20316;&#26989;&#12395;&#12394;&#12427;&#12290;&lt;/p&gt;

&lt;h4 id="section-2"&gt;2.1. &#24517;&#35201;&#12394;&#12497;&#12483;&#12465;&#12540;&#12472;&#12398;&#12452;&#12531;&#12473;&#12488;&#12540;&#12523;&lt;/h4&gt;

&lt;p&gt;&lt;code&gt;bzip2&lt;/code&gt;&#12289;&lt;code&gt;dkms&lt;/code&gt;&#12289;&lt;code&gt;build-essential&lt;/code&gt;&#12289;&lt;code&gt;linux-headers-&amp;lt;kernel-version&amp;gt;&lt;/code&gt; &#12364;&#24517;&#35201;&#12392;&#12394;&#12427;&#12290;&lt;/p&gt;

&lt;pre class="shell"&gt;&lt;code class="language-shell"&gt;# apt-get install bzip2
# apt-get install dkms
# apt-get install build-essential
# apt-get install linux-headers-`uname -r`
&lt;/code&gt;&lt;/pre&gt;

&lt;h4 id="guest-additions-"&gt;2.2. Guest Additions &#12398;&#12452;&#12531;&#12473;&#12488;&#12540;&#12523;&lt;/h4&gt;

&lt;p&gt;VirtualBox &#12364;&#25552;&#20379;&#12375;&#12390;&#12356;&#12427; Guest Addictions &#12398;&#12452;&#12531;&#12473;&#12488;&#12540;&#12523;&#12434;&#34892;&#12358;&#12290;
&#12414;&#12378;&#12399;&#12289;&#12371;&#12398;&#12452;&#12531;&#12473;&#12488;&#12540;&#12523;&#12395;&#20351;&#29992;&#12377;&#12427;&#12501;&#12449;&#12452;&#12523;&#12434;&#12466;&#12473;&#12488;OS&#12363;&#12425;&#35211;&#12360;&#12427;&#12424;&#12358;&#12395;&#12377;&#12427;&#12290;&lt;/p&gt;

&lt;h5 id="a-"&gt;2.2.a) &#12452;&#12513;&#12540;&#12472;&#12398;&#12510;&#12454;&#12531;&#12488;&lt;/h5&gt;

&lt;p&gt;VirtualBox &#12398; &#8220;&#12487;&#12496;&#12452;&#12473;&#8221; &#12513;&#12491;&#12517;&#12540;&#12395;&#12354;&#12427; &#8220;Guest Addictions &#12398;&#12452;&#12531;&#12473;&#12488;&#12540;&#12523;&#8221; &#12434;&#12463;&#12522;&#12483;&#12463;&#12377;&#12427;&#12290;&lt;/p&gt;

&lt;p&gt;&lt;img src="/assets/images/ubuntu/virtualbox-guest-addictions-install-1-w500.png" alt="virtualbox-guest-addictions-install-1" /&gt;&lt;/p&gt;

&lt;p&gt;&#12463;&#12522;&#12483;&#12463;&#12375;&#12383;&#24460;&#12289;&#30011;&#38754;&#19978;&#20309;&#12398;&#22793;&#21270;&#12418;&#12394;&#12367;&#12289;&#20309;&#12364;&#36215;&#12365;&#12383;&#12398;&#65311;&#30340;&#12394;&#29366;&#27841;&#12395;&#12394;&#12427;&#12364;&#12289;&#12371;&#12428;&#12391;&#12289;&#12466;&#12473;&#12488; OS &#12363;&#12425; &#8220;Guest Addictions&#8221; &#12398;&#12452;&#12531;&#12473;&#12488;&#12540;&#12523;&#29992;&#12501;&#12449;&#12452;&#12523;&#12364;&#12354;&#12427;&#12452;&#12513;&#12540;&#12472;&#12434;&#21442;&#29031;&#12391;&#12365;&#12427;&#12424;&#12358;&#12395;&#12394;&#12387;&#12390;&#12356;&#12427;&#12290;&lt;/p&gt;

&lt;p&gt;&#12466;&#12473;&#12488; OS &#12363;&#12425;&#12510;&#12454;&#12531;&#12488;&#12377;&#12427;&#12290;&lt;/p&gt;

&lt;pre class="shell"&gt;&lt;code class="language-shell"&gt;# mkdir /media/cdrom
# mount /dev/cdrom /media/cdrom
# cd /media/cdrom/
# ls -l
total 37393
dr-xr-xr-x 3 root root     2048 2011-05-17 01:59 32Bit
dr-xr-xr-x 2 root root     2048 2011-05-17 01:59 64Bit
-r-xr-xr-x 1 root root      647 2011-01-19 21:42 AUTORUN.INF
-r-xr-xr-x 1 root root  7853516 2011-05-17 01:53 VBoxLinuxAdditions.run
-r-xr-xr-x 1 root root 14664192 2011-05-17 01:55 VBoxSolarisAdditions.pkg
-r-xr-xr-x 1 root root  9284432 2011-05-17 01:45 VBoxWindowsAdditions-amd64.exe
-r-xr-xr-x 1 root root  6190464 2011-05-17 01:39 VBoxWindowsAdditions-x86.exe
-r-xr-xr-x 1 root root   278832 2011-05-17 01:39 VBoxWindowsAdditions.exe
-r-xr-xr-x 1 root root     6966 2011-05-17 01:51 autorun.sh
-r-xr-xr-x 1 root root     5523 2011-05-17 01:51 runasroot.sh
&lt;/code&gt;&lt;/pre&gt;

&lt;p&gt;&#12452;&#12531;&#12473;&#12488;&#12540;&#12523;&#12503;&#12525;&#12464;&#12521;&#12512;&#12391;&#12354;&#12427; &lt;code&gt;VBoxLinuxAdditions.run&lt;/code&gt; &#12364;&#35211;&#12360;&#12390;&#12356;&#12427;&#12290;&lt;/p&gt;

&lt;h5 id="b-guest-addictions-"&gt;2.2.b) Guest Addictions &#12398;&#12452;&#12531;&#12473;&#12488;&#12540;&#12523;&#23455;&#34892;&lt;/h5&gt;

&lt;p&gt;&#12452;&#12531;&#12473;&#12488;&#12540;&#12523;&#12434;&#23455;&#34892;&#12377;&#12427;&#12290;&lt;/p&gt;

&lt;pre class="shell"&gt;&lt;code class="language-shell"&gt;# ./VBoxLinuxAdditions.run 
Verifying archive integrity... All good.
Uncompressing VirtualBox 4.0.8 Guest Additions for Linux..........
VirtualBox Guest Additions installer
tar: Record size = 8 blocks
Removing existing VirtualBox DKMS kernel modules ...done.
Removing existing VirtualBox non-DKMS kernel modules ...done.
Building the VirtualBox Guest Additions kernel modules ...done.
Doing non-kernel setup of the Guest Additions ...done.
Starting the VirtualBox Guest Additions ...done.
Installing the Window System drivers ...fail!
(Could not find the X.Org or XFree86 Window System.)
&lt;/code&gt;&lt;/pre&gt;

&lt;p&gt;&#8220;Window System drivers&#8221; &#12364; fail &#12375;&#12390;&#12356;&#12427;&#12364;&#12289;&#12469;&#12540;&#12496;&#29992;&#36884;&#12391;&#20351;&#12387;&#12390;&#12356;&#12390;&#12501;&#12449;&#12452;&#12523;&#12398;&#20849;&#26377;&#12384;&#12369;&#12398;&#29992;&#36884;&#12391;&#12354;&#12428;&#12400;&#28961;&#35222;&#12375;&#12390;&#27083;&#12431;&#12394;&#12356;&#12290;&lt;/p&gt;

&lt;h4 id="section-3"&gt;2.3. &#20849;&#26377;&#12501;&#12457;&#12523;&#12480;&#12434;&#21033;&#29992;&#12377;&#12427;&lt;/h4&gt;

&lt;p&gt;&#20808;&#12395; VM Manager &#20596;&#12398;&#20316;&#26989;&#12391;&#20849;&#26377;&#12501;&#12457;&#12523;&#12480; &#8220;Dropbox&#8221; &#12434;&#20316;&#25104;&#12375;&#12390;&#12356;&#12383;&#12290;
&#12371;&#12398;&#20849;&#26377;&#12501;&#12457;&#12523;&#12480;&#12434;&#12466;&#12473;&#12488; OS &#12391;&#12510;&#12454;&#12531;&#12488;&#12377;&#12427;&#12290;&lt;/p&gt;

&lt;pre class="shell"&gt;&lt;code class="language-shell"&gt;# mkdir Dropbox
# mount -t vboxsf Dropbox ~/Dropbox
# cd Dropbox/
# ls -l
&lt;/code&gt;&lt;/pre&gt;

&lt;p&gt;&#20197;&#19978;&#12391;&#12466;&#12473;&#12488; OS &#12398;&#12501;&#12449;&#12452;&#12523;&#12434; VM &#12466;&#12473;&#12488; OS &#12363;&#12425;&#21033;&#29992;&#21487;&#33021;&#12392;&#12394;&#12427;&#12290;&lt;/p&gt;

&lt;h3 id="section-4"&gt;&#21442;&#32771;&#12469;&#12452;&#12488;&lt;/h3&gt;

&lt;ul&gt;
  &lt;li&gt;&lt;a href="http://www.turnkeylinux.org/forum/general/20110128/lamp-and-virtualbox-4-shared-folders"&gt;LAMP and VirtualBox 4 Shared Folders TurnKey Linux Forum&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;
</content>
    <summary type="html">&lt;p&gt;&#35079;&#25968;&#12398; VM &#29872;&#22659;&#12434;&#25201;&#12387;&#12390;&#12356;&#12427;&#12392;&#12365;&#12289;VM &#19978;&#12391;&#12459;&#12473;&#12479;&#12510;&#12452;&#12474;&#12377;&#12427;&#35373;&#23450;&#12501;&#12449;&#12452;&#12523;&#12289;&#12473;&#12463;&#12522;&#12503;&#12488;&#12394;&#12393;&#12398;&#22823;&#21322;&#12399;&#21508; VM &#12391;&#20849;&#26377;&#12391;&#12365;&#12427;&#12371;&#12392;&#12364;&#22810;&#12356;&#12290;&lt;br /&gt;
VM &#29872;&#22659;&#27598;&#12395;&#26032;&#12383;&#12395;&#12501;&#12449;&#12452;&#12523;&#12434;&#20316;&#25104;&#12375;&#12383;&#12426;&#12289;&#12501;&#12449;&#12452;&#12523;&#12434; scp &#31561;&#12391;&#12467;&#12500;&#12540;&#12375;&#12383;&#12426;&#12289;&#12394;&#12393;&#12289;&#12414;&#12392;&#12418;&#12395;&#12420;&#12387;&#12390;&#12356;&#12427;&#12392;&#31649;&#29702;&#21547;&#12417;&#12390;&#12513;&#12531;&#12489;&#12452;&#12371;&#12392;&#12395;&#12394;&#12427;&#12290;&lt;br /&gt;
&#12525;&#12540;&#12459;&#12523;&#12391;&#38283;&#30330;&#12434;&#34892;&#12387;&#12390;&#12362;&#12426;&#12289;&#35079;&#25968;&#12398; VM &#12434;&#20351;&#12387;&#12390;&#20316;&#26989;&#12434;&#34892;&#12358;&#22580;&#21512;&#12289;VM &#29872;&#22659;&#12363;&#12425;&#12525;&#12540;&#12459;&#12523;(&#12507;&#12473;&#12488;OS)&#12398;&#12501;&#12449;&#12452;&#12523;&#12434;&#25201;&#12360;&#12427;&#12424;&#12358;&#12395;&#12375;&#12390;&#12362;&#12356;&#12390;&#12289;&#21508; VM &#12391;&#20849;&#26377;&#12391;&#12365;&#12427;&#12392;&#20309;&#12363;&#12392;&#20415;&#21033;&#12384;&#12290;&lt;/p&gt;

&lt;p&gt;VM &#29872;&#22659;&#12363;&#12425;&#12525;&#12540;&#12459;&#12523;(&#12507;&#12473;&#12488;OS)&#12398;&#12501;&#12449;&#12452;&#12523;&#12434;&#12300;&#20849;&#26377;&#12501;&#12457;&#12523;&#12480;&#12301;&#12392;&#12375;&#12390;&#25201;&#12360;&#12427;&#12424;&#12358;&#12395;&#12377;&#12427;&#12290;&lt;/p&gt;

&lt;p&gt;&#12414;&#12383;&#12289;&#12371;&#12398;&#12507;&#12473;&#12488; OS &#12398;&#23550;&#35937;&#12501;&#12449;&#12452;&#12523;&#12434;&#12458;&#12531;&#12521;&#12452;&#12531;&#12473;&#12488;&#12524;&#12540;&#12472;&#12469;&#12540;&#12499;&#12473; Dropbox &#12394;&#12393;&#12391;&#31649;&#29702;&#12375;&#12390;&#12356;&#12418;&#12398;&#12434;&#21033;&#29992;&#12377;&#12427;&#12392;&#12289;&#12393;&#12398;&#12510;&#12471;&#12531;&#12391;&#12418;&#21516;&#12376;&#20316;&#26989;&#12487;&#12540;&#12479;&#12434;&#20351;&#29992;&#12375;&#12390; VM &#29872;&#22659;&#12434;&#21033;&#29992;&#12391;&#12365;&#12427;&#12424;&#12358;&#12395;&#12394;&#12427;&#12290;&lt;/p&gt;

&lt;h3 id="section"&gt;&#29872;&#22659;&#12392;&#25163;&#38918;&#12398;&#27010;&#35201;&lt;/h3&gt;

&lt;p&gt;&#29872;&#22659;&#12399;&#20197;&#19979;&#12398;&#36890;&#12426;&#12392;&#12394;&#12427;&#12290;&lt;/p&gt;

&lt;ul&gt;
  &lt;li&gt;Oracle VM VirtualBox v4.0.8&lt;/li&gt;
  &lt;li&gt;&#12525;&#12540;&#12459;&#12523;(&#12507;&#12473;&#12488;)OS&#12399;&#12289;Ubuntu 10.04 Desktop or Windows XP&lt;br /&gt;
VirtualBox &#12364;&#21205;&#20316;&#12377;&#12428;&#12400;&#29305;&#12395;&#36984;&#12400;&#12394;&#12356;&#12399;&#12378;&#12290;&lt;/li&gt;
  &lt;li&gt;&#20206;&#24819; OS &#12399; Turnkey Linux (Ubuntu 10.04) &#12434;&#20351;&#29992;&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;&#25163;&#38918;&#12399;&#20197;&#19979;&#12398;&#27969;&#12428;&#12392;&#12394;&#12427;&#12290;&lt;/p&gt;

&lt;ol&gt;
  &lt;li&gt;VM Manager &#12391;&#12398;&#20316;&#26989;
    &lt;ol&gt;
      &lt;li&gt;VM Manager &#12391;&#12493;&#12483;&#12488;&#12527;&#12540;&#12463;&#35373;&#23450;&#12395; &#8220;Host only adapter&#8221; &#12434;&#36861;&#21152;&#12375;&#12390;&#12362;&#12367;&lt;/li&gt;
      &lt;li&gt;&#20849;&#26377;&#12501;&#12457;&#12523;&#12480;&#12434;&#20316;&#25104;&#12375;&#12390;&#12362;&#12367;&lt;/li&gt;
    &lt;/ol&gt;
  &lt;/li&gt;
  &lt;li&gt;VM &#12466;&#12473;&#12488; OS &#12391;&#12398;&#20316;&#26989;
    &lt;ol&gt;
      &lt;li&gt;&#24517;&#35201;&#12394;&#12497;&#12483;&#12465;&#12540;&#12472;&#12398;&#12452;&#12531;&#12473;&#12488;&#12540;&#12523;&lt;/li&gt;
      &lt;li&gt;Guest Additions &#12398;&#12452;&#12531;&#12473;&#12488;&#12540;&#12523;&lt;br /&gt;
 a. &#12452;&#12513;&#12540;&#12472;&#12398;&#12510;&#12454;&#12531;&#12488;&lt;br /&gt;
 b. Guest Addictions &#12398;&#12452;&#12531;&#12473;&#12488;&#12540;&#12523;&#23455;&#34892;&lt;/li&gt;
      &lt;li&gt;&#20849;&#26377;&#12501;&#12457;&#12523;&#12480;&#12434;&#21033;&#29992;&#12377;&#12427;&lt;/li&gt;
    &lt;/ol&gt;
  &lt;/li&gt;
&lt;/ol&gt;

&lt;h3 id="vm-manager-"&gt;1. VM Manager &#12391;&#12398;&#20316;&#26989;&lt;/h3&gt;

&lt;p&gt;&#12414;&#12378;&#12399;&#12289;VM Manager &#12391;&#12398;&#20316;&#26989;&#12290;&#12414;&#12384; VM &#12398;&#12510;&#12471;&#12531;&#12399;&#36215;&#21205;&#12375;&#12390;&#12356;&#12394;&#12356;&#12290;&lt;/p&gt;

&lt;h4 id="vm-manager--host-only-adapter-"&gt;1.1. VM Manager &#12391;&#12493;&#12483;&#12488;&#12527;&#12540;&#12463;&#35373;&#23450;&#12395; &#8220;Host only adapter&#8221; &#12434;&#36861;&#21152;&#12375;&#12390;&#12362;&#12367;&lt;/h4&gt;

&lt;p&gt;VM Manager &#12434;&#20351;&#29992;&#12375;&#12390;&#20206;&#24819;&#12510;&#12471;&#12531;&#12398;&#12493;&#12483;&#12488;&#12527;&#12540;&#12463;&#35373;&#23450;&#12395; &#8220;Host only adapter&#8221; &#12434;&#35373;&#23450;&#12375;&#12390;&#12356;&#12394;&#12356;&#22580;&#21512;&#12395;&#12399;&#35373;&#23450;&#12375;&#12390;&#12362;&#12367;&#12290;&lt;/p&gt;

&lt;p&gt;&lt;img src="/assets/images/ubuntu/virtualbox-network-setting-w500.png" alt="virtualbox-network-setting" /&gt;&lt;/p&gt;

&lt;h4 id="section-1"&gt;1.2. &#20849;&#26377;&#12501;&#12457;&#12523;&#12480;&#12434;&#20316;&#25104;&#12375;&#12390;&#12362;&#12367;&lt;/h4&gt;

&lt;p&gt;VM &#12363;&#12425;&#20351;&#29992;&#12377;&#12427;&#12525;&#12540;&#12459;&#12523;(&#12466;&#12473;&#12488;OS)&#12398;&#12487;&#12451;&#12524;&#12463;&#12488;&#12522;&#12434;&#25351;&#23450;&#12375;&#12289;&#20849;&#26377;&#12501;&#12457;&#12523;&#12480;&#12392;&#12375;&#12390; VM Manager &#12395;&#30331;&#37682;&#12375;&#12390;&#12362;&#12367;&#12290;&lt;/p&gt;

&lt;p&gt;&lt;img src="/assets/images/ubuntu/virtualbox-share-folder-setting-w500.png" alt="virtualbox-share-folder-setting" /&gt;&lt;/p&gt;

&lt;p&gt;&#19978;&#35352;&#12398;&#20363;&#12391;&#12399;&#12289;&#23455;&#20307;&#12392;&#12375;&#12390;&#12398;&#12501;&#12457;&#12523;&#12480;&#12434;&#8221;&#12501;&#12449;&#12523;&#12480;&#12398;&#12497;&#12473;&#8221; (&lt;code&gt;/home/xxx/Dropbox&lt;/code&gt;) &#12395;&#25351;&#23450;&#12375;&#12289;&#8221;&#12501;&#12457;&#12523;&#12480;&#21517;&#8221; &#12395; &#8220;Dropbox&#8221; &#12392;&#25351;&#23450;&#12375;&#12390;&#12356;&#12427;&#12290;
&#24460;&#32773;&#12398; &#8220;&#12501;&#12457;&#12523;&#12480;&#21517;&#8221; &#12392;&#12356;&#12358;&#12398;&#12364;&#12289;VM &#29872;&#22659;&#12398;&#12466;&#12473;&#12488; OS &#12363;&#12425;&#21442;&#29031;&#12377;&#12427;&#38555;&#12398;&#12501;&#12457;&#12523;&#12480;&#12398;&#21517;&#31216;&#12392;&#12394;&#12427;&#12290;&lt;/p&gt;

&lt;p&gt;&#12371;&#12371;&#12391;&#12289;VM &#12398;&#12510;&#12471;&#12531;&#12434;&#36215;&#21205;&#12375;&#12390;&#12362;&#12367;&#12290;&lt;/p&gt;

&lt;h3 id="vm--os-"&gt;2. VM &#12466;&#12473;&#12488; OS &#12391;&#12398;&#20316;&#26989;&lt;/h3&gt;

&lt;p&gt;VM &#12398;&#12466;&#12473;&#12488; OS &#12391;&#12398;&#20316;&#26989;&#12395;&#12394;&#12427;&#12290;&lt;/p&gt;

&lt;h4 id="section-2"&gt;2.1. &#24517;&#35201;&#12394;&#12497;&#12483;&#12465;&#12540;&#12472;&#12398;&#12452;&#12531;&#12473;&#12488;&#12540;&#12523;&lt;/h4&gt;

&lt;p&gt;&lt;code&gt;bzip2&lt;/code&gt;&#12289;&lt;code&gt;dkms&lt;/code&gt;&#12289;&lt;code&gt;build-essential&lt;/code&gt;&#12289;&lt;code&gt;linux-headers-&amp;lt;kernel-version&amp;gt;&lt;/code&gt; &#12364;&#24517;&#35201;&#12392;&#12394;&#12427;&#12290;&lt;/p&gt;

&lt;pre class="shell"&gt;&lt;code class="language-shell"&gt;# apt-get install bzip2
# apt-get install dkms
# apt-get install build-essential
# apt-get install linux-headers-`uname -r`
&lt;/code&gt;&lt;/pre&gt;

&lt;h4 id="guest-additions-"&gt;2.2. Guest Additions &#12398;&#12452;&#12531;&#12473;&#12488;&#12540;&#12523;&lt;/h4&gt;

&lt;p&gt;VirtualBox &#12364;&#25552;&#20379;&#12375;&#12390;&#12356;&#12427; Guest Addictions &#12398;&#12452;&#12531;&#12473;&#12488;&#12540;&#12523;&#12434;&#34892;&#12358;&#12290;
&#12414;&#12378;&#12399;&#12289;&#12371;&#12398;&#12452;&#12531;&#12473;&#12488;&#12540;&#12523;&#12395;&#20351;&#29992;&#12377;&#12427;&#12501;&#12449;&#12452;&#12523;&#12434;&#12466;&#12473;&#12488;OS&#12363;&#12425;&#35211;&#12360;&#12427;&#12424;&#12358;&#12395;&#12377;&#12427;&#12290;&lt;/p&gt;

&lt;h5 id="a-"&gt;2.2.a) &#12452;&#12513;&#12540;&#12472;&#12398;&#12510;&#12454;&#12531;&#12488;&lt;/h5&gt;

&lt;p&gt;VirtualBox &#12398; &#8220;&#12487;&#12496;&#12452;&#12473;&#8221; &#12513;&#12491;&#12517;&#12540;&#12395;&#12354;&#12427; &#8220;Guest Addictions &#12398;&#12452;&#12531;&#12473;&#12488;&#12540;&#12523;&#8221; &#12434;&#12463;&#12522;&#12483;&#12463;&#12377;&#12427;&#12290;&lt;/p&gt;

&lt;p&gt;&lt;img src="/assets/images/ubuntu/virtualbox-guest-addictions-install-1-w500.png" alt="virtualbox-guest-addictions-install-1" /&gt;&lt;/p&gt;

&lt;p&gt;&#12463;&#12522;&#12483;&#12463;&#12375;&#12383;&#24460;&#12289;&#30011;&#38754;&#19978;&#20309;&#12398;&#22793;&#21270;&#12418;&#12394;&#12367;&#12289;&#20309;&#12364;&#36215;&#12365;&#12383;&#12398;&#65311;&#30340;&#12394;&#29366;&#27841;&#12395;&#12394;&#12427;&#12364;&#12289;&#12371;&#12428;&#12391;&#12289;&#12466;&#12473;&#12488; OS &#12363;&#12425; &#8220;Guest Addictions&#8221; &#12398;&#12452;&#12531;&#12473;&#12488;&#12540;&#12523;&#29992;&#12501;&#12449;&#12452;&#12523;&#12364;&#12354;&#12427;&#12452;&#12513;&#12540;&#12472;&#12434;&#21442;&#29031;&#12391;&#12365;&#12427;&#12424;&#12358;&#12395;&#12394;&#12387;&#12390;&#12356;&#12427;&#12290;&lt;/p&gt;

&lt;p&gt;&#12466;&#12473;&#12488; OS &#12363;&#12425;&#12510;&#12454;&#12531;&#12488;&#12377;&#12427;&#12290;&lt;/p&gt;

&lt;pre class="shell"&gt;&lt;code class="language-shell"&gt;# mkdir /media/cdrom
# mount /dev/cdrom /media/cdrom
# cd /media/cdrom/
# ls -l
total 37393
dr-xr-xr-x 3 root root     2048 2011-05-17 01:59 32Bit
dr-xr-xr-x 2 root root     2048 2011-05-17 01:59 64Bit
-r-xr-xr-x 1 root root      647 2011-01-19 21:42 AUTORUN.INF
-r-xr-xr-x 1 root root  7853516 2011-05-17 01:53 VBoxLinuxAdditions.run
-r-xr-xr-x 1 root root 14664192 2011-05-17 01:55 VBoxSolarisAdditions.pkg
-r-xr-xr-x 1 root root  9284432 2011-05-17 01:45 VBoxWindowsAdditions-amd64.exe
-r-xr-xr-x 1 root root  6190464 2011-05-17 01:39 VBoxWindowsAdditions-x86.exe
-r-xr-xr-x 1 root root   278832 2011-05-17 01:39 VBoxWindowsAdditions.exe
-r-xr-xr-x 1 root root     6966 2011-05-17 01:51 autorun.sh
-r-xr-xr-x 1 root root     5523 2011-05-17 01:51 runasroot.sh
&lt;/code&gt;&lt;/pre&gt;

&lt;p&gt;&#12452;&#12531;&#12473;&#12488;&#12540;&#12523;&#12503;&#12525;&#12464;&#12521;&#12512;&#12391;&#12354;&#12427; &lt;code&gt;VBoxLinuxAdditions.run&lt;/code&gt; &#12364;&#35211;&#12360;&#12390;&#12356;&#12427;&#12290;&lt;/p&gt;

&lt;h5 id="b-guest-addictions-"&gt;2.2.b) Guest Addictions &#12398;&#12452;&#12531;&#12473;&#12488;&#12540;&#12523;&#23455;&#34892;&lt;/h5&gt;

&lt;p&gt;&#12452;&#12531;&#12473;&#12488;&#12540;&#12523;&#12434;&#23455;&#34892;&#12377;&#12427;&#12290;&lt;/p&gt;

&lt;pre class="shell"&gt;&lt;code class="language-shell"&gt;# ./VBoxLinuxAdditions.run 
Verifying archive integrity... All good.
Uncompressing VirtualBox 4.0.8 Guest Additions for Linux..........
VirtualBox Guest Additions installer
tar: Record size = 8 blocks
Removing existing VirtualBox DKMS kernel modules ...done.
Removing existing VirtualBox non-DKMS kernel modules ...done.
Building the VirtualBox Guest Additions kernel modules ...done.
Doing non-kernel setup of the Guest Additions ...done.
Starting the VirtualBox Guest Additions ...done.
Installing the Window System drivers ...fail!
(Could not find the X.Org or XFree86 Window System.)
&lt;/code&gt;&lt;/pre&gt;

&lt;p&gt;&#8220;Window System drivers&#8221; &#12364; fail &#12375;&#12390;&#12356;&#12427;&#12364;&#12289;&#12469;&#12540;&#12496;&#29992;&#36884;&#12391;&#20351;&#12387;&#12390;&#12356;&#12390;&#12501;&#12449;&#12452;&#12523;&#12398;&#20849;&#26377;&#12384;&#12369;&#12398;&#29992;&#36884;&#12391;&#12354;&#12428;&#12400;&#28961;&#35222;&#12375;&#12390;&#27083;&#12431;&#12394;&#12356;&#12290;&lt;/p&gt;

&lt;h4 id="section-3"&gt;2.3. &#20849;&#26377;&#12501;&#12457;&#12523;&#12480;&#12434;&#21033;&#29992;&#12377;&#12427;&lt;/h4&gt;

&lt;p&gt;&#20808;&#12395; VM Manager &#20596;&#12398;&#20316;&#26989;&#12391;&#20849;&#26377;&#12501;&#12457;&#12523;&#12480; &#8220;Dropbox&#8221; &#12434;&#20316;&#25104;&#12375;&#12390;&#12356;&#12383;&#12290;
&#12371;&#12398;&#20849;&#26377;&#12501;&#12457;&#12523;&#12480;&#12434;&#12466;&#12473;&#12488; OS &#12391;&#12510;&#12454;&#12531;&#12488;&#12377;&#12427;&#12290;&lt;/p&gt;

&lt;pre class="shell"&gt;&lt;code class="language-shell"&gt;# mkdir Dropbox
# mount -t vboxsf Dropbox ~/Dropbox
# cd Dropbox/
# ls -l
&lt;/code&gt;&lt;/pre&gt;

&lt;p&gt;&#20197;&#19978;&#12391;&#12466;&#12473;&#12488; OS &#12398;&#12501;&#12449;&#12452;&#12523;&#12434; VM &#12466;&#12473;&#12488; OS &#12363;&#12425;&#21033;&#29992;&#21487;&#33021;&#12392;&#12394;&#12427;&#12290;&lt;/p&gt;

&lt;h3 id="section-4"&gt;&#21442;&#32771;&#12469;&#12452;&#12488;&lt;/h3&gt;

&lt;ul&gt;
  &lt;li&gt;&lt;a href="http://www.turnkeylinux.org/forum/general/20110128/lamp-and-virtualbox-4-shared-folders"&gt;LAMP and VirtualBox 4 Shared Folders TurnKey Linux Forum&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;
</summary>
  </entry>
  <entry>
    <id>tag:blog.designrecipe.jp,2011-06-26:/2011/06/26/refinerycms-add-migration-to-engine/</id>
    <title type="html">Refinery CMS - &#12459;&#12473;&#12479;&#12512; Engine &#12391;&#12398;&#12510;&#12452;&#12464;&#12524;&#12540;&#12471;&#12519;&#12531;&#12398;&#36861;&#21152;</title>
    <published>2011-06-26T14:05:00Z</published>
    <updated>2011-06-26T14:05:00Z</updated>
    <link rel="alternate" href="http://blog.designrecipe.jp/2011/06/26/refinerycms-add-migration-to-engine/"/>
    <content type="html">&lt;p&gt;&#20316;&#25104;&#12375;&#12383;&#12459;&#12473;&#12479;&#12512; Engine &#12391;&#12510;&#12452;&#12464;&#12524;&#12540;&#12471;&#12519;&#12531;&#12434;&#36861;&#21152;&#12377;&#12427;&#22580;&#21512;&#12289;&lt;a href="http://refinerycms.com/"&gt;Refinery CMS&lt;/a&gt; &#12398;&#12362;&#20316;&#27861;&#12392;&#12375;&#12390;&#12393;&#12358;&#12377;&#12427;&#12398;&#12364;&#12424;&#12356;&#12363;&#65311;
&#22914;&#20309;&#27096;&#12395;&#12418;&#12391;&#12365;&#12381;&#12358;&#12384;&#12364;&#12289;&#12459;&#12473;&#12479;&#12512; Engine &#12398;&#12513;&#12531;&#12486;&#12490;&#12531;&#12473;&#24615;&#12364;&#20445;&#12390;&#12427;&#12420;&#12426;&#26041;&#12364;&#12424;&#12356;&#12290;&#12381;&#12398;&#12513;&#12514;&#12290;&lt;/p&gt;

&lt;p&gt;&#12414;&#12378;&#26368;&#21021;&#12395; product &#12392;&#12356;&#12358;&#31777;&#21336;&#12394;&#12469;&#12531;&#12503;&#12523;&#12459;&#12473;&#12479;&#12512; Engine &#12434;&#20316;&#25104;&#12377;&#12427;&#12290;
&#12381;&#12398;&#24460;&#12395;&#12510;&#12452;&#12464;&#12524;&#12540;&#12471;&#12519;&#12531;&#12434;&#36861;&#21152;&#12377;&#12427;&#26041;&#27861;&#12434;&#35352;&#36617;&#12375;&#12390;&#12356;&#12367;&#12290;&#20316;&#26989;&#12398;&#27969;&#12428;&#12399;&#20197;&#19979;&#12398;&#36890;&#12426;&#12290;&lt;/p&gt;

&lt;ol&gt;
  &lt;li&gt;Rails &#27161;&#28310;&#12398; rails generate migration &#12391;&#12510;&#12452;&#12464;&#12524;&#12540;&#12471;&#12519;&#12531;&#12501;&#12449;&#12452;&#12523;&#12434;&#20316;&#25104;&#12377;&#12427;&lt;/li&gt;
  &lt;li&gt;&#20316;&#25104;&#12373;&#12428;&#12383;&#12510;&#12452;&#12464;&#12524;&#12540;&#12471;&#12519;&#12531;&#12501;&#12449;&#12452;&#12523;&#12434;&#12459;&#12473;&#12479;&#12512; Engine &#37197;&#19979;(&lt;code&gt;vendor/engines/my_engine/db/migrate&lt;/code&gt;)&#12395;&#37197;&#32622;&#12377;&#12427;&lt;/li&gt;
  &lt;li&gt;generator &#12434;&#20351;&#29992;&#12375;&#12390; Rails &#12503;&#12525;&#12472;&#12455;&#12463;&#12488;&#26412;&#20307;&#12395;&#37197;&#32622;&#12375;&#30452;&#12375;&#12390;&#12289;&lt;code&gt;rake db:migrate&lt;/code&gt;&lt;/li&gt;
&lt;/ol&gt;

&lt;h3 id="engine-"&gt;0. &#26032;&#35215;&#12398;&#12459;&#12473;&#12479;&#12512; Engine &#12434;&#20316;&#25104;&#12375;&#12390;&#12362;&#12367;&lt;/h3&gt;

&lt;p&gt;&#12371;&#12428;&#12363;&#12425;&#20316;&#26989;&#12377;&#12427;&#12383;&#12417;&#12398;&#26032;&#35215;&#12398;&#12459;&#12473;&#12479;&#12512; Engine &#12434;&#20316;&#25104;&#12375;&#12390;&#12362;&#12367;&#12290;product &#12392;&#12356;&#12358;&#31777;&#26131;&#12394; engine &#12395;&#12394;&#12427;&#12290;&lt;/p&gt;

&lt;pre class="shell"&gt;&lt;code class="language-shell"&gt;$ rails g refinery_engine product title:string description:text image:image
      create  vendor/engines/products/app/controllers/admin/products_controller.rb
      create  vendor/engines/products/app/controllers/products_controller.rb
      create  vendor/engines/products/app/models/product.rb
...(snip)...
      create  vendor/engines/products/refinerycms-products.gemspec
      create  vendor/engines/products/spec/models/product_spec.rb
------------------------
Now run:
bundle install
rails generate refinerycms_products
rake db:migrate
------------------------
&lt;/code&gt;&lt;/pre&gt;

&lt;p&gt;&#26368;&#24460;&#12398;&#12513;&#12483;&#12475;&#12540;&#12472;&#12398;&#25351;&#31034;&#36890;&#12426;&#24341;&#12365;&#32154;&#12365;&#12467;&#12510;&#12531;&#12489;&#12434;&#21481;&#12365;&#12289;&#12459;&#12473;&#12479;&#12512; Engine &#12434;&#21205;&#20316;&#21487;&#33021;&#12394;&#29366;&#24907;&#12392;&#12375;&#12390;&#12362;&#12367;&#12290;&lt;/p&gt;

&lt;pre class="shell"&gt;&lt;code class="language-shell"&gt;$ bundle install
...(snip)...
$ rails g refinerycms_products
      create  db/migrate/20110615142942_create_products.rb
      create  db/seeds/products.rb
------------------------
Now run:
rake db:migrate
------------------------
$ rake db:migrate
==  CreateProducts: migrating =================================================
-- create_table(:products)
   -&amp;gt; 0.0014s
-- add_index(:products, :id)
   -&amp;gt; 0.0005s
==  CreateProducts: migrated (0.4472s) ========================================
&lt;/code&gt;&lt;/pre&gt;

&lt;p&gt;&#20197;&#19978;&#12391; OK&#12290;&#12469;&#12540;&#12496;&#12434;&#36215;&#21205;&#12375;&#12390;&#31649;&#29702;&#30011;&#38754;&#12434;&#30906;&#35469;&#12375;&#12390;&#12415;&#12427;&#12392;&#30906;&#12363;&#12395; product &#12398;&#31649;&#29702;&#30011;&#38754;&#12364;&#36861;&#21152;&#12373;&#12428;&#12390;&#12356;&#12427;&#12290;&lt;/p&gt;

&lt;p&gt;&lt;img src="/assets/images/ruby-misc/add-migrateion-to-engine-1-w500.png" alt="add-migrateion-to-engine" /&gt;&lt;/p&gt;

&lt;h3 id="rails--rails-generate-migration-"&gt;1. Rails &#27161;&#28310;&#12398; rails generate migration &#12391;&#12510;&#12452;&#12464;&#12524;&#12540;&#12471;&#12519;&#12531;&#12501;&#12449;&#12452;&#12523;&#12434;&#20316;&#25104;&#12377;&#12427;&lt;/h3&gt;

&lt;p&gt;Product &#12398;&#12514;&#12487;&#12523;&#12399;&#12377;&#12391;&#12395;&#20316;&#25104;&#28168;&#12415;&#12391;&#12354;&#12427;&#12364;&#12289;&#36009;&#22770;&#20419;&#36914;&#29992;&#12398;&#12502;&#12525;&#12540;&#12471;&#12515;&#12450;&#12434;&#12381;&#12428;&#12382;&#12428;&#12398;&#35069;&#21697;&#12395;&#12388;&#12369;&#12383;&#12367;&#12394;&#12387;&#12383;&#12392;&#12377;&#12427;&#12290;&#35069;&#21697;&#12395;&#28155;&#20184;&#12501;&#12449;&#12452;&#12523;&#12434;&#12388;&#12369;&#12425;&#12428;&#12427;&#12424;&#12358;&#12395;&#12377;&#12427;&#12290;&lt;/p&gt;

&lt;p&gt;&#12414;&#12378;&#12399;&#12289;Rails &#27161;&#28310;&#12398; rails generate migration &#12434;&#20351;&#29992;&#12375;&#12390;&#26222;&#36890;&#12395;(Rails way &#12391;)&#12510;&#12452;&#12464;&#12524;&#12540;&#12471;&#12519;&#12531;&#12501;&#12449;&#12452;&#12523;&#12434;&#20316;&#25104;&#12377;&#12427;&#12290;&lt;/p&gt;

&lt;pre class="shell"&gt;&lt;code class="language-shell"&gt;$ rails g migration AddBrochureToProducts
      invoke  active_record
      create    db/migrate/20110616161904_add_brochure_to_products.rb
&lt;/code&gt;&lt;/pre&gt;

&lt;p&gt;&#12510;&#12452;&#12464;&#12524;&#12540;&#12471;&#12519;&#12531;&#12501;&#12449;&#12452;&#12523;&#12395;&#24517;&#35201;&#12394;&#35352;&#36617;&#12434;&#34892;&#12387;&#12390;&#12362;&#12367;&#12290;&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;&lt;code&gt;db/migrate/20110615145336_add_brochure_to_product.rb&lt;/code&gt;&lt;/strong&gt;:&lt;/p&gt;

&lt;pre class="shell"&gt;&lt;code class="language-shell"&gt;class AddBrochureToProducts &amp;lt; ActiveRecord::Migration
  def self.up
    add_column :products, :brochure_id, :integer
  end

  def self.down
    remove_column :products, :brochure
  end
end
&lt;/code&gt;&lt;/pre&gt;

&lt;p&gt;&#12510;&#12452;&#12464;&#12524;&#12540;&#12471;&#12519;&#12531;&#12501;&#12449;&#12452;&#12523;&#12408;&#12398;&#36861;&#21152;&#12399;&#20197;&#19978;&#12391;&#32066;&#20102;&#12392;&#12394;&#12427;&#12290;&lt;/p&gt;

&lt;p&gt;&#19978;&#35352;&#12398;&#12510;&#12452;&#12464;&#12524;&#12540;&#12471;&#12519;&#12531;&#12398;&#35352;&#36617;&#12395;&#38306;&#12375;&#12390;&#12289;products &#12486;&#12540;&#12502;&#12523;&#12395; brochure_id &#12392;&#12356;&#12358;&#22806;&#37096;&#12461;&#12540;&#12398;&#12501;&#12451;&#12540;&#12523;&#12489;&#12434;&#36861;&#21152;&#12375;&#12289;&#38306;&#36899;&#20184;&#12369;&#12414;&#12391;&#12373;&#12379;&#12390;&#12383;&#12398;&#12399;&#12431;&#12363;&#12427;&#12364;&#12289;brochure &#26412;&#20307;&#12399;&#12393;&#12371;&#65311;&#12392;&#12394;&#12427;&#12384;&#12429;&#12358;&#12290;&lt;/p&gt;

&lt;p&gt;&#12371;&#12371;&#12391;&#12399;&#12289;Refinery CMS &#12364;&#27161;&#28310;&#12391;&#29992;&#24847;&#12375;&#12390;&#12356;&#12427; Resources Engine &#12434;&#21033;&#29992;&#12375;&#12390;&#12356;&#12427;&#12290;&lt;/p&gt;

&lt;p&gt;resource(&#12501;&#12449;&#12452;&#12523;)&#12434;&#25201;&#12358;&#28858;&#12398;&#20181;&#32068;&#12415;&#12399;&#26082;&#12395; Refinery CMS &#12395;&#12399;&#29992;&#24847;&#12373;&#12428;&#12390;&#12362;&#12426;&#12289;Resource &#12514;&#12487;&#12523;&#12418;&#26082;&#12395;&#23384;&#22312;&#12377;&#12427;&#12290;&#19978;&#35352;&#12399;&#12381;&#12398;&#22806;&#37096;&#12461;&#12540;&#12434; products &#12486;&#12540;&#12502;&#12523;&#12395;&#20316;&#25104;&#12375;&#12424;&#12358;&#12392;&#12375;&#12390;&#12356;&#12427;&#12290;&lt;/p&gt;

&lt;p&gt;&#24403;&#28982;&#19978;&#35352;&#12398;&#12473;&#12461;&#12540;&#12510;&#12398;&#26356;&#26032;&#12384;&#12369;&#12391;&#12399;&#21205;&#20316;&#12375;&#12394;&#12356;&#12398;&#12391;&#12289;&#26082;&#12395;&#20316;&#25104;&#28168;&#12415;&#12398; Product &#12514;&#12487;&#12523;&#12395;&#12418; Resouce &#12408;&#12398;&#38306;&#36899;&#12434;&#36861;&#21152;&#12375;&#12390;&#12362;&#12367;&#12290;&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;&lt;code&gt;vendor/engines/products/app/models/product.rb&lt;/code&gt;&lt;/strong&gt;:&lt;/p&gt;

&lt;pre class="ruby"&gt;&lt;code class="language-ruby"&gt;class Product &amp;lt; ActiveRecord::Base

  acts_as_indexed :fields =&amp;gt; [:title, :description]

  validates :title, :presence =&amp;gt; true, :uniqueness =&amp;gt; true

  belongs_to :image

  belongs_to :brochure, :class_name =&amp;gt; 'Resource' # add
end
&lt;/code&gt;&lt;/pre&gt;

&lt;h3 id="engine-vendorenginesmyenginedbmigrate"&gt;2. &#20316;&#25104;&#12373;&#12428;&#12383;&#12510;&#12452;&#12464;&#12524;&#12540;&#12471;&#12519;&#12531;&#12501;&#12449;&#12452;&#12523;&#12434;&#12459;&#12473;&#12479;&#12512; Engine &#37197;&#19979;(vendor/engines/my_engine/db/migrate)&#12395;&#37197;&#32622;&#12377;&#12427;&lt;/h3&gt;

&lt;p&gt;&#20808;&#12411;&#12393;&#12398;&#20316;&#25104;&#12373;&#12428;&#12383;&#12510;&#12452;&#12464;&#12524;&#12540;&#12471;&#12519;&#12531;&#12501;&#12449;&#12452;&#12523;&#12399; Rails &#12503;&#12525;&#12472;&#12455;&#12463;&#12488;&#26412;&#20307;&#12398; db/migrate &#37197;&#19979;&#12395;&#20316;&#25104;&#12373;&#12428;&#12390;&#12356;&#12427;&#12290;
&#12371;&#12428;&#12434; Engine &#12398; db/migrate &#37197;&#19979;&#12395;&#31227;&#21205;&#12377;&#12427;&#12290;&lt;/p&gt;

&lt;pre class="shell"&gt;&lt;code class="language-shell"&gt;$ mv db/migrate/20110616161904_add_brochure_to_products.rb vendor/engines/products/db/migrate/
&lt;/code&gt;&lt;/pre&gt;

&lt;h3 id="generator--rails--rake-dbmigrate"&gt;3. generator &#12434;&#20351;&#29992;&#12375;&#12390; Rails &#12503;&#12525;&#12472;&#12455;&#12463;&#12488;&#26412;&#20307;&#12395;&#37197;&#32622;&#12375;&#30452;&#12375; rake db:migrate&lt;/h3&gt;

&lt;p&gt;Refinery CMS &#12364;&#29992;&#24847;&#12375;&#12390;&#12356;&#12427; generator &#12434;&#20351;&#29992;&#12375;&#12390;&#12289;Rails &#12503;&#12525;&#12472;&#12455;&#12463;&#12488;&#26412;&#20307;&#12395;&#37197;&#32622;&#12375;&#30452;&#12377;&#12290;&lt;/p&gt;

&lt;pre class="shell"&gt;&lt;code class="language-shell"&gt;$ rails g refinerycms_products
      create  db/migrate/20110616163831_add_brochure_to_products.rb
You already have a migration called create_products
      create  db/seeds/products.rb
------------------------
Now run:
rake db:migrate
------------------------
&lt;/code&gt;&lt;/pre&gt;

&lt;p&gt;products Engine &#37197;&#19979;&#12398; db/migrate &#12395;&#31227;&#21205;&#12375;&#12383;&#12510;&#12452;&#12464;&#12524;&#12540;&#12471;&#12519;&#12531;&#12501;&#12449;&#12452;&#12523;&#12364;&#12289;Rails &#12503;&#12525;&#12472;&#12455;&#12463;&#12488;&#26412;&#20307;&#12398; db/migrate &#37197;&#19979;&#12395;&#12467;&#12500;&#12540;&#12373;&#12428;&#12427;&#12290;
&#12371;&#12428;&#12391; migrate &#12377;&#12427;&#12290;&lt;/p&gt;

&lt;pre class="shell"&gt;&lt;code class="language-shell"&gt;$ rake db:migrate
==  AddBrochureToProducts: migrating ==========================================
-- add_column(:products, :brochure, :integer)
   -&amp;gt; 0.0014s
==  AddBrochureToProducts: migrated (0.0015s) =================================
&lt;/code&gt;&lt;/pre&gt;

&lt;p&gt;&#20206;&#12395;&#21516;&#12376;&#21517;&#21069;&#12398;&#12510;&#12452;&#12464;&#12524;&#12540;&#12471;&#12519;&#12531;&#12501;&#12449;&#12452;&#12523;&#12364;&#12354;&#12387;&#12383;&#22580;&#21512;&#12395;&#12399;&#12289;rails g refinerycms_products &#12434;&#23455;&#34892;&#12375;&#12390;&#12418; Rails &#12503;&#12525;&#12472;&#12455;&#12463;&#12488;&#26412;&#20307;&#12395;&#12399;&#12501;&#12449;&#12452;&#12523;&#12399;&#12467;&#12500;&#12540;&#12373;&#12428;&#12394;&#12356;&#12290;&lt;/p&gt;

&lt;pre class="shell"&gt;&lt;code class="language-shell"&gt;$ rails g refinerycms_products
You already have a migration called add_brochure_to_products
You already have a migration called create_products
   identical  db/seeds/products.rb
------------------------
Now run:
rake db:migrate
------------------------
&lt;/code&gt;&lt;/pre&gt;

&lt;p&gt;&#20197;&#19978;&#12392;&#12394;&#12427;&#12290;&lt;/p&gt;

&lt;p&gt;&#12473;&#12461;&#12540;&#12510;&#12395;&#22793;&#26356;&#12434;&#21152;&#12360;&#12427;&#22580;&#21512;&#12395;&#12399; 1 &#12316; 3 &#12398;&#21516;&#27096;&#12398;&#20316;&#26989;&#12434;&#32368;&#12426;&#36820;&#12377;&#12290;&lt;/p&gt;

&lt;p&gt;&#12414;&#12393;&#12429;&#12387;&#12371;&#12375;&#12356;&#12371;&#12392;&#12434;&#12420;&#12387;&#12390;&#12356;&#12427;&#12424;&#12358;&#12384;&#12364;&#12289;&#12371;&#12398;&#26041;&#27861;&#12395;&#12424;&#12426;&#12289;&#12459;&#12473;&#12479;&#12512; Engine &#12487;&#12451;&#12524;&#12463;&#12488;&#12522;&#20869;&#12395;&#20840;&#12390;&#23436;&#32080;&#12375;&#12383;&#27083;&#25104;&#12364;&#12392;&#12428;&#12427;&#12290;&lt;br /&gt;
&#29420;&#31435;&#24615;&#12364;&#20445;&#12383;&#12428;&#12427;&#12398;&#12391;&#12289;&#20182;&#12503;&#12525;&#12472;&#12455;&#12463;&#12488;&#12408;&#12398;&#31227;&#26893;&#24615;&#12418;&#39640;&#12367;&#12394;&#12427;&#12290;&lt;/p&gt;

&lt;h3 id="section"&gt;(&#34503;&#36275;) &#31649;&#29702;&#30011;&#38754;&#12395;&#12502;&#12525;&#12540;&#12471;&#12515;&#12450;&#12398;&#30331;&#37682;&#27231;&#33021;&#12434;&#36861;&#21152;&lt;/h3&gt;

&lt;p&gt;&#12300;&#12459;&#12473;&#12479;&#12512; Engine &#12391;&#12398;&#12510;&#12452;&#12464;&#12524;&#12540;&#12471;&#12519;&#12531;&#12398;&#36861;&#21152;&#12301;&#12398;&#20316;&#26989;&#12399;&#20197;&#19978;&#12391;&#32066;&#20102;&#12384;&#12364;&#12289;&#12514;&#12487;&#12523;&#12395;&#12399;&#25163;&#12434;&#21152;&#12360;&#12383;&#12418;&#12398;&#12398;&#12289;&#31649;&#29702;&#30011;&#38754;&#12395;&#12502;&#12525;&#12540;&#12471;&#12515;&#12450;&#12434;&#30331;&#37682;&#12377;&#12427;&#28858;&#12398;&#27231;&#33021;&#12364;&#23384;&#22312;&#12375;&#12394;&#12356;&#12398;&#12391;&#36861;&#21152;&#12377;&#12427;&#12290;&lt;/p&gt;

&lt;p&gt;&#26082;&#12395;&#31649;&#29702;&#30011;&#38754;&#29992;&#12398;&#20849;&#36890;&#37096;&#21697;&#12392;&#12375;&#12390; refinerycms-core &#12391; resource &#29992;&#12398;Picker(&lt;code&gt;/shared/admin/_resource_picker.html.erb&lt;/code&gt;)&#12364;&#29992;&#24847;&#12373;&#12428;&#12390;&#12356;&#12427;&#12398;&#12391;&#12289;&#12371;&#12428;&#12434;&#21033;&#29992;&#12377;&#12427;&#12290;&lt;/p&gt;

&lt;p&gt;&#31649;&#29702;&#30011;&#38754;&#12398;&#12501;&#12457;&#12540;&#12512;&#12398; view &#12395;&#20197;&#19979;&#12398;&#36861;&#21152;&#12434;&#34892;&#12387;&#12390;&#12362;&#12367;&#12290;&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;&lt;code&gt;vendor/engines/products/app/views/admin/products/_form.html.erb&lt;/code&gt;&lt;/strong&gt;:&lt;/p&gt;

&lt;p&gt;&#12452;&#12513;&#12540;&#12472;&#12398;&#12501;&#12451;&#12540;&#12523;&#12489;&#12398;&#19979;&#12354;&#12383;&#12426;&#12391; brochure &#29992;&#12398;&#12501;&#12451;&#12540;&#12523;&#12489;&#12434;&#36861;&#21152;&#12375;&#12390;&#12362;&#12367;&#12290;&lt;/p&gt;

&lt;pre class="html"&gt;&lt;code class="language-html"&gt;...(snip)
  &amp;lt;div class='field'&amp;gt;
    &amp;lt;%= f.label :image -%&amp;gt;
    &amp;lt;%= render :partial =&amp;gt; "/shared/admin/image_picker", :locals =&amp;gt; {
          :f =&amp;gt; f,
          :field =&amp;gt; :image_id,
          :image =&amp;gt; @product.image,
          :toggle_image_display =&amp;gt; false
        } %&amp;gt;
  &amp;lt;/div&amp;gt;
  # add
  &amp;lt;div class='field'&amp;gt;
    &amp;lt;%= f.label :brochure -%&amp;gt;
    &amp;lt;%= render :partial =&amp;gt; "/shared/admin/resource_picker", :locals =&amp;gt; {
          :f =&amp;gt; f,
          :field =&amp;gt; :brochure_id,
          :resource =&amp;gt; @product.brochure,
        } %&amp;gt;
  &amp;lt;/div&amp;gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;p&gt;&#31649;&#29702;&#30011;&#38754;&#12391;&#30906;&#35469;&#12377;&#12427;&#12392;&#30906;&#12363;&#12395;&#12502;&#12525;&#12540;&#12471;&#12515;&#12450;&#29992;&#12398;&#12501;&#12451;&#12540;&#12523;&#12489;&#12364;&#36861;&#21152;&#12373;&#12428;&#12390;&#12362;&#12426;&#12385;&#12419;&#12435;&#12392;&#27231;&#33021;&#12377;&#12427;&#12290;&lt;/p&gt;

&lt;p&gt;&lt;img src="/assets/images/ruby-misc/add-migrateion-to-engine-2-w500.png" alt="add-migrateion-to-engine2" /&gt;&lt;/p&gt;

&lt;p&gt;&lt;img src="/assets/images/ruby-misc/add-migrateion-to-engine-3-w500.png" alt="add-migrateion-to-engine3" /&gt;&lt;/p&gt;

&lt;p&gt;&#21516;&#27096;&#12395;&#12518;&#12540;&#12470;&#12395;&#34920;&#31034;&#12377;&#12427;&#30011;&#38754;&#12395;&#12418;&#12502;&#12525;&#12540;&#12471;&#12515;&#12450;&#12434;&#12480;&#12454;&#12531;&#12525;&#12540;&#12489;&#12377;&#12427;&#12383;&#12417;&#12398;&#27231;&#33021;&#12434;&#36861;&#21152;&#12375;&#12390;&#12362;&#12367;&#24517;&#35201;&#12364;&#12354;&#12427;&#12364;&#12289;&#12371;&#12371;&#12391;&#12399;&#21106;&#24859;&#12377;&#12427;&#12290;&lt;/p&gt;
</content>
    <summary type="html">&lt;p&gt;&#20316;&#25104;&#12375;&#12383;&#12459;&#12473;&#12479;&#12512; Engine &#12391;&#12510;&#12452;&#12464;&#12524;&#12540;&#12471;&#12519;&#12531;&#12434;&#36861;&#21152;&#12377;&#12427;&#22580;&#21512;&#12289;&lt;a href="http://refinerycms.com/"&gt;Refinery CMS&lt;/a&gt; &#12398;&#12362;&#20316;&#27861;&#12392;&#12375;&#12390;&#12393;&#12358;&#12377;&#12427;&#12398;&#12364;&#12424;&#12356;&#12363;&#65311;
&#22914;&#20309;&#27096;&#12395;&#12418;&#12391;&#12365;&#12381;&#12358;&#12384;&#12364;&#12289;&#12459;&#12473;&#12479;&#12512; Engine &#12398;&#12513;&#12531;&#12486;&#12490;&#12531;&#12473;&#24615;&#12364;&#20445;&#12390;&#12427;&#12420;&#12426;&#26041;&#12364;&#12424;&#12356;&#12290;&#12381;&#12398;&#12513;&#12514;&#12290;&lt;/p&gt;

&lt;p&gt;&#12414;&#12378;&#26368;&#21021;&#12395; product &#12392;&#12356;&#12358;&#31777;&#21336;&#12394;&#12469;&#12531;&#12503;&#12523;&#12459;&#12473;&#12479;&#12512; Engine &#12434;&#20316;&#25104;&#12377;&#12427;&#12290;
&#12381;&#12398;&#24460;&#12395;&#12510;&#12452;&#12464;&#12524;&#12540;&#12471;&#12519;&#12531;&#12434;&#36861;&#21152;&#12377;&#12427;&#26041;&#27861;&#12434;&#35352;&#36617;&#12375;&#12390;&#12356;&#12367;&#12290;&#20316;&#26989;&#12398;&#27969;&#12428;&#12399;&#20197;&#19979;&#12398;&#36890;&#12426;&#12290;&lt;/p&gt;

&lt;ol&gt;
  &lt;li&gt;Rails &#27161;&#28310;&#12398; rails generate migration &#12391;&#12510;&#12452;&#12464;&#12524;&#12540;&#12471;&#12519;&#12531;&#12501;&#12449;&#12452;&#12523;&#12434;&#20316;&#25104;&#12377;&#12427;&lt;/li&gt;
  &lt;li&gt;&#20316;&#25104;&#12373;&#12428;&#12383;&#12510;&#12452;&#12464;&#12524;&#12540;&#12471;&#12519;&#12531;&#12501;&#12449;&#12452;&#12523;&#12434;&#12459;&#12473;&#12479;&#12512; Engine &#37197;&#19979;(&lt;code&gt;vendor/engines/my_engine/db/migrate&lt;/code&gt;)&#12395;&#37197;&#32622;&#12377;&#12427;&lt;/li&gt;
  &lt;li&gt;generator &#12434;&#20351;&#29992;&#12375;&#12390; Rails &#12503;&#12525;&#12472;&#12455;&#12463;&#12488;&#26412;&#20307;&#12395;&#37197;&#32622;&#12375;&#30452;&#12375;&#12390;&#12289;&lt;code&gt;rake db:migrate&lt;/code&gt;&lt;/li&gt;
&lt;/ol&gt;

&lt;h3 id="engine-"&gt;0. &#26032;&#35215;&#12398;&#12459;&#12473;&#12479;&#12512; Engine &#12434;&#20316;&#25104;&#12375;&#12390;&#12362;&#12367;&lt;/h3&gt;

&lt;p&gt;&#12371;&#12428;&#12363;&#12425;&#20316;&#26989;&#12377;&#12427;&#12383;&#12417;&#12398;&#26032;&#35215;&#12398;&#12459;&#12473;&#12479;&#12512; Engine &#12434;&#20316;&#25104;&#12375;&#12390;&#12362;&#12367;&#12290;product &#12392;&#12356;&#12358;&#31777;&#26131;&#12394; engine &#12395;&#12394;&#12427;&#12290;&lt;/p&gt;

&lt;pre class="shell"&gt;&lt;code class="language-shell"&gt;$ rails g refinery_engine product title:string description:text image:image
      create  vendor/engines/products/app/controllers/admin/products_controller.rb
      create  vendor/engines/products/app/controllers/products_controller.rb
      create  vendor/engines/products/app/models/product.rb
...(snip)...
      create  vendor/engines/products/refinerycms-products.gemspec
      create  vendor/engines/products/spec/models/product_spec.rb
------------------------
Now run:
bundle install
rails generate refinerycms_products
rake db:migrate
------------------------
&lt;/code&gt;&lt;/pre&gt;

&lt;p&gt;&#26368;&#24460;&#12398;&#12513;&#12483;&#12475;&#12540;&#12472;&#12398;&#25351;&#31034;&#36890;&#12426;&#24341;&#12365;&#32154;&#12365;&#12467;&#12510;&#12531;&#12489;&#12434;&#21481;&#12365;&#12289;&#12459;&#12473;&#12479;&#12512; Engine &#12434;&#21205;&#20316;&#21487;&#33021;&#12394;&#29366;&#24907;&#12392;&#12375;&#12390;&#12362;&#12367;&#12290;&lt;/p&gt;

&lt;pre class="shell"&gt;&lt;code class="language-shell"&gt;$ bundle install
...(snip)...
$ rails g refinerycms_products
      create  db/migrate/20110615142942_create_products.rb
      create  db/seeds/products.rb
------------------------
Now run:
rake db:migrate
------------------------
$ rake db:migrate
==  CreateProducts: migrating =================================================
-- create_table(:products)
   -&amp;gt; 0.0014s
-- add_index(:products, :id)
   -&amp;gt; 0.0005s
==  CreateProducts: migrated (0.4472s) ========================================
&lt;/code&gt;&lt;/pre&gt;

&lt;p&gt;&#20197;&#19978;&#12391; OK&#12290;&#12469;&#12540;&#12496;&#12434;&#36215;&#21205;&#12375;&#12390;&#31649;&#29702;&#30011;&#38754;&#12434;&#30906;&#35469;&#12375;&#12390;&#12415;&#12427;&#12392;&#30906;&#12363;&#12395; product &#12398;&#31649;&#29702;&#30011;&#38754;&#12364;&#36861;&#21152;&#12373;&#12428;&#12390;&#12356;&#12427;&#12290;&lt;/p&gt;

&lt;p&gt;&lt;img src="/assets/images/ruby-misc/add-migrateion-to-engine-1-w500.png" alt="add-migrateion-to-engine" /&gt;&lt;/p&gt;

&lt;h3 id="rails--rails-generate-migration-"&gt;1. Rails &#27161;&#28310;&#12398; rails generate migration &#12391;&#12510;&#12452;&#12464;&#12524;&#12540;&#12471;&#12519;&#12531;&#12501;&#12449;&#12452;&#12523;&#12434;&#20316;&#25104;&#12377;&#12427;&lt;/h3&gt;

&lt;p&gt;Product &#12398;&#12514;&#12487;&#12523;&#12399;&#12377;&#12391;&#12395;&#20316;&#25104;&#28168;&#12415;&#12391;&#12354;&#12427;&#12364;&#12289;&#36009;&#22770;&#20419;&#36914;&#29992;&#12398;&#12502;&#12525;&#12540;&#12471;&#12515;&#12450;&#12434;&#12381;&#12428;&#12382;&#12428;&#12398;&#35069;&#21697;&#12395;&#12388;&#12369;&#12383;&#12367;&#12394;&#12387;&#12383;&#12392;&#12377;&#12427;&#12290;&#35069;&#21697;&#12395;&#28155;&#20184;&#12501;&#12449;&#12452;&#12523;&#12434;&#12388;&#12369;&#12425;&#12428;&#12427;&#12424;&#12358;&#12395;&#12377;&#12427;&#12290;&lt;/p&gt;

&lt;p&gt;&#12414;&#12378;&#12399;&#12289;Rails &#27161;&#28310;&#12398; rails generate migration &#12434;&#20351;&#29992;&#12375;&#12390;&#26222;&#36890;&#12395;(Rails way &#12391;)&#12510;&#12452;&#12464;&#12524;&#12540;&#12471;&#12519;&#12531;&#12501;&#12449;&#12452;&#12523;&#12434;&#20316;&#25104;&#12377;&#12427;&#12290;&lt;/p&gt;

&lt;pre class="shell"&gt;&lt;code class="language-shell"&gt;$ rails g migration AddBrochureToProducts
      invoke  active_record
      create    db/migrate/20110616161904_add_brochure_to_products.rb
&lt;/code&gt;&lt;/pre&gt;

&lt;p&gt;&#12510;&#12452;&#12464;&#12524;&#12540;&#12471;&#12519;&#12531;&#12501;&#12449;&#12452;&#12523;&#12395;&#24517;&#35201;&#12394;&#35352;&#36617;&#12434;&#34892;&#12387;&#12390;&#12362;&#12367;&#12290;&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;&lt;code&gt;db/migrate/20110615145336_add_brochure_to_product.rb&lt;/code&gt;&lt;/strong&gt;:&lt;/p&gt;

&lt;pre class="shell"&gt;&lt;code class="language-shell"&gt;class AddBrochureToProducts &amp;lt; ActiveRecord::Migration
  def self.up
    add_column :products, :brochure_id, :integer
  end

  def self.down
    remove_column :products, :brochure
  end
end
&lt;/code&gt;&lt;/pre&gt;

&lt;p&gt;&#12510;&#12452;&#12464;&#12524;&#12540;&#12471;&#12519;&#12531;&#12501;&#12449;&#12452;&#12523;&#12408;&#12398;&#36861;&#21152;&#12399;&#20197;&#19978;&#12391;&#32066;&#20102;&#12392;&#12394;&#12427;&#12290;&lt;/p&gt;

&lt;p&gt;&#19978;&#35352;&#12398;&#12510;&#12452;&#12464;&#12524;&#12540;&#12471;&#12519;&#12531;&#12398;&#35352;&#36617;&#12395;&#38306;&#12375;&#12390;&#12289;products &#12486;&#12540;&#12502;&#12523;&#12395; brochure_id &#12392;&#12356;&#12358;&#22806;&#37096;&#12461;&#12540;&#12398;&#12501;&#12451;&#12540;&#12523;&#12489;&#12434;&#36861;&#21152;&#12375;&#12289;&#38306;&#36899;&#20184;&#12369;&#12414;&#12391;&#12373;&#12379;&#12390;&#12383;&#12398;&#12399;&#12431;&#12363;&#12427;&#12364;&#12289;brochure &#26412;&#20307;&#12399;&#12393;&#12371;&#65311;&#12392;&#12394;&#12427;&#12384;&#12429;&#12358;&#12290;&lt;/p&gt;

&lt;p&gt;&#12371;&#12371;&#12391;&#12399;&#12289;Refinery CMS &#12364;&#27161;&#28310;&#12391;&#29992;&#24847;&#12375;&#12390;&#12356;&#12427; Resources Engine &#12434;&#21033;&#29992;&#12375;&#12390;&#12356;&#12427;&#12290;&lt;/p&gt;

&lt;p&gt;resource(&#12501;&#12449;&#12452;&#12523;)&#12434;&#25201;&#12358;&#28858;&#12398;&#20181;&#32068;&#12415;&#12399;&#26082;&#12395; Refinery CMS &#12395;&#12399;&#29992;&#24847;&#12373;&#12428;&#12390;&#12362;&#12426;&#12289;Resource &#12514;&#12487;&#12523;&#12418;&#26082;&#12395;&#23384;&#22312;&#12377;&#12427;&#12290;&#19978;&#35352;&#12399;&#12381;&#12398;&#22806;&#37096;&#12461;&#12540;&#12434; products &#12486;&#12540;&#12502;&#12523;&#12395;&#20316;&#25104;&#12375;&#12424;&#12358;&#12392;&#12375;&#12390;&#12356;&#12427;&#12290;&lt;/p&gt;

&lt;p&gt;&#24403;&#28982;&#19978;&#35352;&#12398;&#12473;&#12461;&#12540;&#12510;&#12398;&#26356;&#26032;&#12384;&#12369;&#12391;&#12399;&#21205;&#20316;&#12375;&#12394;&#12356;&#12398;&#12391;&#12289;&#26082;&#12395;&#20316;&#25104;&#28168;&#12415;&#12398; Product &#12514;&#12487;&#12523;&#12395;&#12418; Resouce &#12408;&#12398;&#38306;&#36899;&#12434;&#36861;&#21152;&#12375;&#12390;&#12362;&#12367;&#12290;&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;&lt;code&gt;vendor/engines/products/app/models/product.rb&lt;/code&gt;&lt;/strong&gt;:&lt;/p&gt;

&lt;pre class="ruby"&gt;&lt;code class="language-ruby"&gt;class Product &amp;lt; ActiveRecord::Base

  acts_as_indexed :fields =&amp;gt; [:title, :description]

  validates :title, :presence =&amp;gt; true, :uniqueness =&amp;gt; true

  belongs_to :image

  belongs_to :brochure, :class_name =&amp;gt; 'Resource' # add
end
&lt;/code&gt;&lt;/pre&gt;

&lt;h3 id="engine-vendorenginesmyenginedbmigrate"&gt;2. &#20316;&#25104;&#12373;&#12428;&#12383;&#12510;&#12452;&#12464;&#12524;&#12540;&#12471;&#12519;&#12531;&#12501;&#12449;&#12452;&#12523;&#12434;&#12459;&#12473;&#12479;&#12512; Engine &#37197;&#19979;(vendor/engines/my_engine/db/migrate)&#12395;&#37197;&#32622;&#12377;&#12427;&lt;/h3&gt;

&lt;p&gt;&#20808;&#12411;&#12393;&#12398;&#20316;&#25104;&#12373;&#12428;&#12383;&#12510;&#12452;&#12464;&#12524;&#12540;&#12471;&#12519;&#12531;&#12501;&#12449;&#12452;&#12523;&#12399; Rails &#12503;&#12525;&#12472;&#12455;&#12463;&#12488;&#26412;&#20307;&#12398; db/migrate &#37197;&#19979;&#12395;&#20316;&#25104;&#12373;&#12428;&#12390;&#12356;&#12427;&#12290;
&#12371;&#12428;&#12434; Engine &#12398; db/migrate &#37197;&#19979;&#12395;&#31227;&#21205;&#12377;&#12427;&#12290;&lt;/p&gt;

&lt;pre class="shell"&gt;&lt;code class="language-shell"&gt;$ mv db/migrate/20110616161904_add_brochure_to_products.rb vendor/engines/products/db/migrate/
&lt;/code&gt;&lt;/pre&gt;

&lt;h3 id="generator--rails--rake-dbmigrate"&gt;3. generator &#12434;&#20351;&#29992;&#12375;&#12390; Rails &#12503;&#12525;&#12472;&#12455;&#12463;&#12488;&#26412;&#20307;&#12395;&#37197;&#32622;&#12375;&#30452;&#12375; rake db:migrate&lt;/h3&gt;

&lt;p&gt;Refinery CMS &#12364;&#29992;&#24847;&#12375;&#12390;&#12356;&#12427; generator &#12434;&#20351;&#29992;&#12375;&#12390;&#12289;Rails &#12503;&#12525;&#12472;&#12455;&#12463;&#12488;&#26412;&#20307;&#12395;&#37197;&#32622;&#12375;&#30452;&#12377;&#12290;&lt;/p&gt;

&lt;pre class="shell"&gt;&lt;code class="language-shell"&gt;$ rails g refinerycms_products
      create  db/migrate/20110616163831_add_brochure_to_products.rb
You already have a migration called create_products
      create  db/seeds/products.rb
------------------------
Now run:
rake db:migrate
------------------------
&lt;/code&gt;&lt;/pre&gt;

&lt;p&gt;products Engine &#37197;&#19979;&#12398; db/migrate &#12395;&#31227;&#21205;&#12375;&#12383;&#12510;&#12452;&#12464;&#12524;&#12540;&#12471;&#12519;&#12531;&#12501;&#12449;&#12452;&#12523;&#12364;&#12289;Rails &#12503;&#12525;&#12472;&#12455;&#12463;&#12488;&#26412;&#20307;&#12398; db/migrate &#37197;&#19979;&#12395;&#12467;&#12500;&#12540;&#12373;&#12428;&#12427;&#12290;
&#12371;&#12428;&#12391; migrate &#12377;&#12427;&#12290;&lt;/p&gt;

&lt;pre class="shell"&gt;&lt;code class="language-shell"&gt;$ rake db:migrate
==  AddBrochureToProducts: migrating ==========================================
-- add_column(:products, :brochure, :integer)
   -&amp;gt; 0.0014s
==  AddBrochureToProducts: migrated (0.0015s) =================================
&lt;/code&gt;&lt;/pre&gt;

&lt;p&gt;&#20206;&#12395;&#21516;&#12376;&#21517;&#21069;&#12398;&#12510;&#12452;&#12464;&#12524;&#12540;&#12471;&#12519;&#12531;&#12501;&#12449;&#12452;&#12523;&#12364;&#12354;&#12387;&#12383;&#22580;&#21512;&#12395;&#12399;&#12289;rails g refinerycms_products &#12434;&#23455;&#34892;&#12375;&#12390;&#12418; Rails &#12503;&#12525;&#12472;&#12455;&#12463;&#12488;&#26412;&#20307;&#12395;&#12399;&#12501;&#12449;&#12452;&#12523;&#12399;&#12467;&#12500;&#12540;&#12373;&#12428;&#12394;&#12356;&#12290;&lt;/p&gt;

&lt;pre class="shell"&gt;&lt;code class="language-shell"&gt;$ rails g refinerycms_products
You already have a migration called add_brochure_to_products
You already have a migration called create_products
   identical  db/seeds/products.rb
------------------------
Now run:
rake db:migrate
------------------------
&lt;/code&gt;&lt;/pre&gt;

&lt;p&gt;&#20197;&#19978;&#12392;&#12394;&#12427;&#12290;&lt;/p&gt;

&lt;p&gt;&#12473;&#12461;&#12540;&#12510;&#12395;&#22793;&#26356;&#12434;&#21152;&#12360;&#12427;&#22580;&#21512;&#12395;&#12399; 1 &#12316; 3 &#12398;&#21516;&#27096;&#12398;&#20316;&#26989;&#12434;&#32368;&#12426;&#36820;&#12377;&#12290;&lt;/p&gt;

&lt;p&gt;&#12414;&#12393;&#12429;&#12387;&#12371;&#12375;&#12356;&#12371;&#12392;&#12434;&#12420;&#12387;&#12390;&#12356;&#12427;&#12424;&#12358;&#12384;&#12364;&#12289;&#12371;&#12398;&#26041;&#27861;&#12395;&#12424;&#12426;&#12289;&#12459;&#12473;&#12479;&#12512; Engine &#12487;&#12451;&#12524;&#12463;&#12488;&#12522;&#20869;&#12395;&#20840;&#12390;&#23436;&#32080;&#12375;&#12383;&#27083;&#25104;&#12364;&#12392;&#12428;&#12427;&#12290;&lt;br /&gt;
&#29420;&#31435;&#24615;&#12364;&#20445;&#12383;&#12428;&#12427;&#12398;&#12391;&#12289;&#20182;&#12503;&#12525;&#12472;&#12455;&#12463;&#12488;&#12408;&#12398;&#31227;&#26893;&#24615;&#12418;&#39640;&#12367;&#12394;&#12427;&#12290;&lt;/p&gt;

&lt;h3 id="section"&gt;(&#34503;&#36275;) &#31649;&#29702;&#30011;&#38754;&#12395;&#12502;&#12525;&#12540;&#12471;&#12515;&#12450;&#12398;&#30331;&#37682;&#27231;&#33021;&#12434;&#36861;&#21152;&lt;/h3&gt;

&lt;p&gt;&#12300;&#12459;&#12473;&#12479;&#12512; Engine &#12391;&#12398;&#12510;&#12452;&#12464;&#12524;&#12540;&#12471;&#12519;&#12531;&#12398;&#36861;&#21152;&#12301;&#12398;&#20316;&#26989;&#12399;&#20197;&#19978;&#12391;&#32066;&#20102;&#12384;&#12364;&#12289;&#12514;&#12487;&#12523;&#12395;&#12399;&#25163;&#12434;&#21152;&#12360;&#12383;&#12418;&#12398;&#12398;&#12289;&#31649;&#29702;&#30011;&#38754;&#12395;&#12502;&#12525;&#12540;&#12471;&#12515;&#12450;&#12434;&#30331;&#37682;&#12377;&#12427;&#28858;&#12398;&#27231;&#33021;&#12364;&#23384;&#22312;&#12375;&#12394;&#12356;&#12398;&#12391;&#36861;&#21152;&#12377;&#12427;&#12290;&lt;/p&gt;

&lt;p&gt;&#26082;&#12395;&#31649;&#29702;&#30011;&#38754;&#29992;&#12398;&#20849;&#36890;&#37096;&#21697;&#12392;&#12375;&#12390; refinerycms-core &#12391; resource &#29992;&#12398;Picker(&lt;code&gt;/shared/admin/_resource_picker.html.erb&lt;/code&gt;)&#12364;&#29992;&#24847;&#12373;&#12428;&#12390;&#12356;&#12427;&#12398;&#12391;&#12289;&#12371;&#12428;&#12434;&#21033;&#29992;&#12377;&#12427;&#12290;&lt;/p&gt;

&lt;p&gt;&#31649;&#29702;&#30011;&#38754;&#12398;&#12501;&#12457;&#12540;&#12512;&#12398; view &#12395;&#20197;&#19979;&#12398;&#36861;&#21152;&#12434;&#34892;&#12387;&#12390;&#12362;&#12367;&#12290;&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;&lt;code&gt;vendor/engines/products/app/views/admin/products/_form.html.erb&lt;/code&gt;&lt;/strong&gt;:&lt;/p&gt;

&lt;p&gt;&#12452;&#12513;&#12540;&#12472;&#12398;&#12501;&#12451;&#12540;&#12523;&#12489;&#12398;&#19979;&#12354;&#12383;&#12426;&#12391; brochure &#29992;&#12398;&#12501;&#12451;&#12540;&#12523;&#12489;&#12434;&#36861;&#21152;&#12375;&#12390;&#12362;&#12367;&#12290;&lt;/p&gt;

&lt;pre class="html"&gt;&lt;code class="language-html"&gt;...(snip)
  &amp;lt;div class='field'&amp;gt;
    &amp;lt;%= f.label :image -%&amp;gt;
    &amp;lt;%= render :partial =&amp;gt; "/shared/admin/image_picker", :locals =&amp;gt; {
          :f =&amp;gt; f,
          :field =&amp;gt; :image_id,
          :image =&amp;gt; @product.image,
          :toggle_image_display =&amp;gt; false
        } %&amp;gt;
  &amp;lt;/div&amp;gt;
  # add
  &amp;lt;div class='field'&amp;gt;
    &amp;lt;%= f.label :brochure -%&amp;gt;
    &amp;lt;%= render :partial =&amp;gt; "/shared/admin/resource_picker", :locals =&amp;gt; {
          :f =&amp;gt; f,
          :field =&amp;gt; :brochure_id,
          :resource =&amp;gt; @product.brochure,
        } %&amp;gt;
  &amp;lt;/div&amp;gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;p&gt;&#31649;&#29702;&#30011;&#38754;&#12391;&#30906;&#35469;&#12377;&#12427;&#12392;&#30906;&#12363;&#12395;&#12502;&#12525;&#12540;&#12471;&#12515;&#12450;&#29992;&#12398;&#12501;&#12451;&#12540;&#12523;&#12489;&#12364;&#36861;&#21152;&#12373;&#12428;&#12390;&#12362;&#12426;&#12385;&#12419;&#12435;&#12392;&#27231;&#33021;&#12377;&#12427;&#12290;&lt;/p&gt;

&lt;p&gt;&lt;img src="/assets/images/ruby-misc/add-migrateion-to-engine-2-w500.png" alt="add-migrateion-to-engine2" /&gt;&lt;/p&gt;

&lt;p&gt;&lt;img src="/assets/images/ruby-misc/add-migrateion-to-engine-3-w500.png" alt="add-migrateion-to-engine3" /&gt;&lt;/p&gt;

&lt;p&gt;&#21516;&#27096;&#12395;&#12518;&#12540;&#12470;&#12395;&#34920;&#31034;&#12377;&#12427;&#30011;&#38754;&#12395;&#12418;&#12502;&#12525;&#12540;&#12471;&#12515;&#12450;&#12434;&#12480;&#12454;&#12531;&#12525;&#12540;&#12489;&#12377;&#12427;&#12383;&#12417;&#12398;&#27231;&#33021;&#12434;&#36861;&#21152;&#12375;&#12390;&#12362;&#12367;&#24517;&#35201;&#12364;&#12354;&#12427;&#12364;&#12289;&#12371;&#12371;&#12391;&#12399;&#21106;&#24859;&#12377;&#12427;&#12290;&lt;/p&gt;
</summary>
  </entry>
  <entry>
    <id>tag:blog.designrecipe.jp,2011-06-05:/2011/06/05/atlassian-confluence-install-memo/</id>
    <title type="html">Atlassian &#12398; Confluence 3.5 &#12452;&#12531;&#12473;&#12488;&#12540;&#12523;&#12513;&#12514;</title>
    <published>2011-06-05T14:05:00Z</published>
    <updated>2011-06-05T14:05:00Z</updated>
    <link rel="alternate" href="http://blog.designrecipe.jp/2011/06/05/atlassian-confluence-install-memo/"/>
    <content type="html">&lt;p&gt;Wiki &#12398;&#12484;&#12540;&#12523;&#12434;&#35519;&#12409;&#12390;&#12362;&#12426;&#12289;Atlassian &#12398; Confluence &#12434;&#35430;&#12375;&#12390;&#12415;&#12427;&#12371;&#12392;&#12395;&#12375;&#12383;&#12290;&#12381;&#12398;&#12452;&#12531;&#12473;&#12488;&#12540;&#12523;&#12513;&#12514;&#12290;&lt;/p&gt;

&lt;ul&gt;
  &lt;li&gt;&lt;a href="http://www.atlassian.com/ja_JP/software/confluence/"&gt;&#12456;&#12531;&#12479;&#12540;&#12503;&#12521;&#12452;&#12474; &#12467;&#12521;&#12508;&#12524;&#12540;&#12471;&#12519;&#12531;&#12362;&#12424;&#12403; Wiki &#12477;&#12501;&#12488;&#12454;&#12455;&#12450; - Confluence&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;&lt;img src="/assets/images/ubuntu/atlassian-confluence-w500.png" alt="atlassian-confluence" /&gt;&lt;/p&gt;

&lt;p&gt;&#12414;&#12378;&#12399;&#35413;&#20385;&#30446;&#30340;&#12391;&#35430;&#12375;&#12390;&#12415;&#12427;&#12290;&#20197;&#19979;&#12398;&#27083;&#25104;&#12391;&#12452;&#12531;&#12473;&#12488;&#12540;&#12523;&#12377;&#12427;&#12290;&lt;/p&gt;

&lt;ul&gt;
  &lt;li&gt;&#12505;&#12540;&#12473;&#12392;&#12394;&#12427; OS &#12399;&#20206;&#24819;&#29872;&#22659;&#19978;&#12395;&#12398;&#12379;&#12427;&#12290;TurnKey Linux &#12398;&#25552;&#20379;&#12377;&#12427; &lt;a href="http://www.turnkeylinux.org/tomcat"&gt;Virtual Applicace Standalone Tomcat Appliance&lt;/a&gt; &#12434;&#20351;&#12358;&#12290;
    &lt;ul&gt;
      &lt;li&gt;&#12371;&#12398;&#29872;&#22659;&#12399;&#12289;Java &#29872;&#22659;&#12289;Tomcat &#12469;&#12540;&#12496;&#12289;MySQL 5.1 &#12364;&#12377;&#12391;&#12395;&#21033;&#29992;&#21487;&#33021;&#12394;&#29872;&#22659;&#12392;&#12394;&#12427;&lt;/li&gt;
    &lt;/ul&gt;
  &lt;/li&gt;
  &lt;li&gt;Confluence &#12399; Standalone &#12391;&#12399;&#12394;&#12367; WAR &#12496;&#12540;&#12472;&#12519;&#12531;&#12434;&#26082;&#23384;&#12398; Tomcat &#29872;&#22659;&#12395;&#12452;&#12531;&#12473;&#12488;&#12540;&#12523;&#12377;&#12427;&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;&#12452;&#12531;&#12473;&#12488;&#12540;&#12523;&#12398;&#25163;&#38918;&#12399;&#12289;&#20197;&#19979;&#12398;&#12489;&#12461;&#12517;&#12513;&#12531;&#12488;&#12434;&#21442;&#32771;&#12395;&#34892;&#12358;&#12290;&lt;/p&gt;

&lt;ul&gt;
  &lt;li&gt;&lt;a href="http://confluence.atlassian.com/display/DOC/Installing+the+Confluence+EAR-WAR+Edition"&gt;Installing the Confluence EAR-WAR Edition - Confluence 3.5 - Atlassian Documentation - Confluence&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;

&lt;h3 id="section"&gt;&#20107;&#21069;&#12395;&#29992;&#24847;&#12377;&#12427;&#12418;&#12398;&#12392;&#20107;&#21069;&#28310;&#20633;&lt;/h3&gt;

&lt;h4 id="section-1"&gt;&#29992;&#24847;&#12377;&#12427;&#12418;&#12398;&lt;/h4&gt;

&lt;p&gt;&#12414;&#12378;&#12289;Confluence &#12398;&#12452;&#12531;&#12473;&#12488;&#12540;&#12523;&#12395;&#24517;&#35201;&#12394;&#12418;&#12398;&#12399;&#20197;&#19979;&#12398;2&#28857;&#12290;&lt;/p&gt;

&lt;ul&gt;
  &lt;li&gt;Confluence &#12398;&#12452;&#12531;&#12473;&#12488;&#12540;&#12523;&#29992;&#12501;&#12449;&#12452;&#12523;&lt;/li&gt;
  &lt;li&gt;&#12521;&#12452;&#12475;&#12531;&#12473;&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;&#12521;&#12452;&#12475;&#12531;&#12473;&#12501;&#12449;&#12452;&#12523;&#12399;&#12452;&#12531;&#12473;&#12488;&#12540;&#12523;&#36884;&#20013;&#12391;&#21462;&#24471;&#12377;&#12427;&#12398;&#12391;&#12289;&#12414;&#12378;&#12399;&#12452;&#12531;&#12473;&#12488;&#12540;&#12523;&#12395;&#24517;&#35201;&#12394;&#12501;&#12449;&#12452;&#12523;&#12434;&#12480;&#12454;&#12531;&#12525;&#12540;&#12489;&#12375;&#12390;&#12362;&#12367;&#12290;&lt;/p&gt;

&lt;ul&gt;
  &lt;li&gt;&lt;a href="http://www.atlassian.com/software/confluence/ConfluenceDownloadCenter.jspa"&gt;Download Wiki Software - Confluence Enterprise Wiki&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;&#19978;&#35352;&#12469;&#12452;&#12488;&#12398;&#21491;&#20596;&#12395;&#12354;&#12427; &#8220;Show all&#8221; &#12434;&#12463;&#12522;&#12483;&#12463;&#12375;&#12289;&#20840;&#12390;&#12398;&#12480;&#12454;&#12531;&#12525;&#12540;&#12489;&#21487;&#33021;&#12394;&#12501;&#12449;&#12452;&#12523;&#12434;&#34920;&#31034;&#12373;&#12379;&#12289;&lt;code&gt;Confluence 3.5.5 - EAR/WAR (TAR.GZ Archive)&lt;/code&gt; &#12434;&#12480;&#12454;&#12531;&#12525;&#12540;&#12489;&#12377;&#12427;&#12290;&lt;/p&gt;

&lt;p&gt;&lt;img src="/assets/images/ubuntu/confluence-download-w500.png" alt="confluence-download" /&gt;&lt;/p&gt;

&lt;h4 id="section-2"&gt;&#20107;&#21069;&#28310;&#20633;&lt;/h4&gt;

&lt;p&gt;&#20170;&#22238; &lt;a href="http://www.turnkeylinux.org/tomcat"&gt;Virtual Applicace Standalone Tomcat Appliance&lt;/a&gt; &#12398;&#12450;&#12503;&#12521;&#12452;&#12450;&#12531;&#12473;&#12434;&#12505;&#12540;&#12473;&#12392;&#12377;&#12427;&#12398;&#12391;&#12289;&#12469;&#12452;&#12488;&#12363;&#12425;&#12450;&#12503;&#12521;&#12452;&#12450;&#12531;&#12473;&#12521;&#12452;&#12502;&#12521;&#12522;&#12434;&#12480;&#12454;&#12531;&#12525;&#12540;&#12489;&#12375;&#12289;&#20206;&#24819;&#29872;&#22659;&#19978;&#12395;&#20316;&#25104;&#12375;&#12390;&#12362;&#12367;&#12290;&lt;/p&gt;

&lt;p&gt;&lt;img src="/assets/images/ubuntu/turnkeylinux-standalone-tomcat-w500.png" alt="turnkeylinux-standalone-tomcat" /&gt;&lt;/p&gt;

&lt;p&gt;&#12371;&#12371;&#12391;&#12399;&#20206;&#24819;&#29872;&#22659;&#19978;&#12395;&#12450;&#12503;&#12521;&#12452;&#12450;&#12531;&#12473;&#12434;&#12452;&#12531;&#12473;&#12488;&#12540;&#12523;&#12377;&#12427;&#25163;&#38918;&#12399;&#21106;&#24859;&#12377;&#12427;&#12290;&#20170;&#22238;&#20351;&#29992;&#12377;&#12427;&#12450;&#12503;&#12521;&#12452;&#12450;&#12531;&#12473;&#12521;&#12452;&#12502;&#12521;&#12522;&#12391;&#12399;&#12394;&#12356;&#12364;&#12289;&#36942;&#21435; Redmine &#12398;&#29872;&#22659;&#12434;&#27083;&#31689;&#12375;&#12383;&#38555;&#12398;&#12513;&#12514;&#12364;&#12354;&#12427;&#12398;&#12391;&#21442;&#29031;&#12398;&#12371;&#12392;&#12290;&lt;br /&gt;
(&#22823;&#26528;&#12398;&#25163;&#38918;&#12399;&#22793;&#12431;&#12425;&#12394;&#12356;)&lt;/p&gt;

&lt;ul&gt;
  &lt;li&gt;&lt;a href="/2011/01/22/turnkey-redmine-virtualbox-1/"&gt;&#25163;&#38291;&#35201;&#12425;&#12378;&#12391;&#12503;&#12525;&#12472;&#12455;&#12463;&#12488;&#31649;&#29702;&#12484;&#12540;&#12523; Redmine &#12434;&#23566;&#20837;&#12377;&#12427; - VirtualBox &#32232; (&#12381;&#12398;1)&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;&#12371;&#12371;&#12363;&#12425;&#20808;&#12399;&#26082;&#12395;&#19978;&#35352;&#12398;&#20206;&#24819;&#12450;&#12503;&#12521;&#12452;&#12450;&#12531;&#12473;&#12398;&#12452;&#12531;&#12473;&#12488;&#12540;&#12523;&#12399;&#23436;&#20102;&#12375;&#12390;&#12356;&#12427;&#12418;&#12398;&#12392;&#12375;&#12390;&#35352;&#36848;&#12377;&#12427;&#12290;&lt;/p&gt;

&lt;p&gt;&#20170;&#22238;&#12398;&#27083;&#31689;&#26178;&#12395;&#12399;&#12289;&#36861;&#21152;&#12391;&#20197;&#19979;&#12398;2&#28857;&#12434;&#23455;&#26045;&#12375;&#12390;&#12362;&#12367;&#12290;&lt;br /&gt;
&#20316;&#26989;&#20869;&#23481;&#12399;&#12381;&#12428;&#12382;&#12428;&#12398;&#12506;&#12540;&#12472;&#12434;&#21442;&#29031;&#12398;&#12371;&#12392;&#12290;&lt;/p&gt;

&lt;ul&gt;
  &lt;li&gt;&#12525;&#12465;&#12540;&#12523;&#12392;&#12479;&#12452;&#12512;&#12478;&#12540;&#12531;&#12398;&#22793;&#26356;
    &lt;ul&gt;
      &lt;li&gt;&lt;a href="/2011/06/04/ubuntu-initial-setup-locale-timezone/"&gt;Ubuntu&#12469;&#12540;&#12496;&#26085;&#26412;&#21521;&#12369;&#29872;&#22659;&#12398;&#21021;&#26399;&#35373;&#23450; - &#12525;&#12465;&#12540;&#12523;&#12392;&#12479;&#12452;&#12512;&#12478;&#12540;&#12531;&lt;/a&gt;&lt;/li&gt;
    &lt;/ul&gt;
  &lt;/li&gt;
  &lt;li&gt;Java &#29872;&#22659;&#12434; OpenJDK &#12363;&#12425; Sun Java &#12408;&#22793;&#26356; (Confluence &#12399; OpenJDK &#12434;&#27491;&#24335;&#12395;&#12469;&#12509;&#12540;&#12488;&#12375;&#12390;&#12356;&#12394;&#12356;&#27169;&#27096;)
    &lt;ul&gt;
      &lt;li&gt;&lt;a href="/2011/06/05/turnkey-linux-tomcat-from-openjdk-to-sunjdk/"&gt;Ubuntu(TurnKey Linux) &#12391; Java &#29872;&#22659;&#12434; OpenJDK &#12391;&#12399;&#12394;&#12367; Sun Java &#12434;&#12487;&#12501;&#12457;&#12523;&#12488;&#12395; + Tomcat &#12418;&lt;/a&gt;&lt;/li&gt;
    &lt;/ul&gt;
  &lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;&#12391;&#12289;&#12373;&#12425;&#12395; Java &#29872;&#22659;&#32097;&#12415;&#12391;&#23455;&#26045;&#12375;&#12390;&#12362;&#12367;&#24517;&#35201;&#12364;&#12354;&#12427;&#12290;&#20206;&#24819;OS&#12364;&#20351;&#29992;&#12391;&#12365;&#12427;&#12513;&#12514;&#12522;&#12392; Java &#12364;&#21033;&#29992;&#12377;&#12427;&#12513;&#12514;&#12522;&#12395;&#38306;&#12375;&#12390;&#12395;&#12394;&#12427;&#12290;&lt;/p&gt;

&lt;p&gt;&#12487;&#12501;&#12457;&#12523;&#12488;&#12398;&#35373;&#23450;&#12398;&#12414;&#12414;&#12391;&#12399;&#12513;&#12514;&#12522;&#12364;&#36275;&#12426;&#12378;&#12289;&#12452;&#12531;&#12473;&#12488;&#12540;&#12523;&#12364;&#12495;&#12531;&#12464;&#12387;&#12390;&#12375;&#12414;&#12358;&#12371;&#12392;&#12395;&#12394;&#12427;&#12290;&lt;/p&gt;

&lt;ul&gt;
  &lt;li&gt;&#20206;&#24819; OS &#12395;&#12399; 1G over &#12398;&#12513;&#12514;&#12522;&#12399;&#21106;&#12426;&#24403;&#12390;&#12390;&#12362;&#12367;&lt;/li&gt;
  &lt;li&gt;Java &#29872;&#22659;&#12391;&#12399;&#12289;&#12498;&#12540;&#12503;&#12398; Max &#12399; 1G&#12289;Permanent &#38936;&#22495;&#12418; 256M &#12367;&#12425;&#12356;&#12399;&#24517;&#35201;&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;&#12395;&#12399;&#12375;&#12390;&#12362;&#12356;&#12383;&#26041;&#12364;&#12424;&#12356;&#12290;&lt;/p&gt;

&lt;p&gt;Java &#29872;&#22659;&#12398;&#22793;&#26356;&#12395;&#38306;&#12375;&#12390;&#12399; &lt;code&gt;/etc/init.d/tomcat6&lt;/code&gt; &#12391;&#22793;&#26356;&#12434;&#34892;&#12387;&#12390;&#12362;&#12367;&#12290;&lt;code&gt;JAVA_OPTS&lt;/code&gt; &#12395;&#35373;&#23450;&#12434;&#36861;&#21152;&#12290;&#20197;&#19979;&#12398;&#12424;&#12358;&#12395;&#22793;&#26356;&#12434;&#21152;&#12360;&#12383;&#12290;&lt;/p&gt;

&lt;pre class="shell"&gt;&lt;code class="language-shell"&gt;# git diff b4119c5 9f7a1a5 tomcat6
diff --git a/init.d/tomcat6 b/init.d/tomcat6
index 7b31300..575967b 100755
--- a/init.d/tomcat6
+++ b/init.d/tomcat6
@@ -79,7 +79,7 @@ TOMCAT6_SECURITY=no
 # It also looks like the default heap size of 64M is not enough for most cases
 # so the maximum heap size is set to 128M
 if [ -z "$JAVA_OPTS" ]; then
-       JAVA_OPTS="-Djava.awt.headless=true -Xmx128M"
+       JAVA_OPTS="-Djava.awt.headless=true -Xms128M -Xmx1024M -XX:MaxPermSize=256M"
 fi
 
 # End of variables that can be overwritten in $DEFAULT
&lt;/code&gt;&lt;/pre&gt;

&lt;p&gt;&#12385;&#12394;&#12415;&#12395;&#12289;Standalone &#29256;&#12434;&#30906;&#35469;&#12375;&#12390;&#12415;&#12383;&#12392;&#12371;&#12429;&#12289;&lt;/p&gt;

&lt;pre class="shell"&gt;&lt;code class="language-shell"&gt;JAVA_OPTS="-Xms256m -Xmx512m -XX:MaxPermSize=256m $JAVA_OPTS -Djava.awt.headless=true "
export JAVA_OPTS
&lt;/code&gt;&lt;/pre&gt;

&lt;p&gt;&#12392;&#12394;&#12387;&#12390;&#12356;&#12383;&#12290;&lt;/p&gt;

&lt;h3 id="confluence-"&gt;Confluence &#12398;&#12452;&#12531;&#12473;&#12488;&#12540;&#12523;&lt;/h3&gt;

&lt;h4 id="confluence--confluence-"&gt;Confluence &#12398;&#35373;&#23450;&#12501;&#12449;&#12452;&#12523;&#12395; Confluence &#12507;&#12540;&#12512;&#12487;&#12451;&#12524;&#12463;&#12488;&#12522;&#12398;&#35373;&#23450;&lt;/h4&gt;

&lt;p&gt;Confluence &#12398;&#12452;&#12531;&#12473;&#12488;&#12540;&#12523;&#26178;&#12395;&#12399;&#12289;&#20197;&#19979;2&#12388;&#12398;&#12487;&#12451;&#12524;&#12463;&#12488;&#12522;&#12434;&#24847;&#35672;&#12375;&#12390;&#12362;&#12367;&#24517;&#35201;&#12364;&#12354;&#12427;&#12290;&lt;/p&gt;

&lt;ul&gt;
  &lt;li&gt;&lt;strong&gt;&#12452;&#12531;&#12473;&#12488;&#12540;&#12523;&#12487;&#12451;&#12524;&#12463;&#12488;&#12522;&lt;/strong&gt;&lt;/li&gt;
  &lt;li&gt;&lt;strong&gt;&#12507;&#12540;&#12512;&#12487;&#12451;&#12524;&#12463;&#12488;&#12522;&lt;/strong&gt;&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;&#20808;&#12395;&#12480;&#12454;&#12531;&#12525;&#12540;&#12489;&#12375;&#12390;&#12356;&#12383; &lt;code&gt;confluence-3.5.5.tar.gz&lt;/code&gt; &#12434; &lt;code&gt;/opt/atlassian&lt;/code&gt; &#37197;&#19979;&#12395;&#23637;&#38283;&#12375;&#12289;&lt;strong&gt;&#12452;&#12531;&#12473;&#12488;&#12540;&#12523;&#12487;&#12451;&#12524;&#12463;&#12488;&#12522;&lt;/strong&gt;&#12399;&#12289;&lt;code&gt;/opt/atlassian/confluence&lt;/code&gt; &#12392;&#12377;&#12427;&#12371;&#12392;&#12395;&#12375;&#12390;&#12289;&#12471;&#12531;&#12508;&#12522;&#12483;&#12463;&#12522;&#12531;&#12463;&#12434;&#12399;&#12387;&#12390;&#12362;&#12367;&#12290;&lt;/p&gt;

&lt;pre class="shell"&gt;&lt;code class="language-shell"&gt;# ln -s /opt/atlassian/confluence-3.5.5 /opt/atlassian/confluence
# cd /opt/atlassian/
# ls -l
total 4
lrwxrwxrwx  1 root root   35 2011-06-05 13:27 confluence -&amp;gt; /opt/atlassian/confluence-3.5.5
drwxr-xr-x 11 root root 4096 2011-06-05 13:19 confluence-3.5.5
&lt;/code&gt;&lt;/pre&gt;

&lt;p&gt;&#12507;&#12540;&#12512;&#12487;&#12451;&#12524;&#12463;&#12488;&#12522;&#12399;&#12289;&lt;code&gt;/opt/atlassian/confluence-data&lt;/code&gt; &#12392;&#12375;&#12390;&#12362;&#12367;&#12290;&lt;/p&gt;

&lt;p&gt;Tomcat &#12469;&#12540;&#12496;&#12399; tomcat6 &#12518;&#12540;&#12470;&#12391;&#21205;&#20316;&#12377;&#12427;&#12398;&#12391;&#12289;&#12507;&#12540;&#12512;&#12487;&#12451;&#12524;&#12463;&#12488;&#12522;&#12392;&#24565;&#12398;&#28858;&#12452;&#12531;&#12473;&#12488;&#12540;&#12523;&#12487;&#12451;&#12524;&#12463;&#12488;&#12522;&#12418;&#12497;&#12540;&#12511;&#12483;&#12471;&#12519;&#12531;&#12398;&#22793;&#26356;&#12434;&#34892;&#12387;&#12390;&#12362;&#12367;&#12290;&lt;/p&gt;

&lt;pre class="shell"&gt;&lt;code class="language-shell"&gt;# chown -R tomcat6:tomcat6 /opt/atlassian/confluence-data
# chown -R tomcat6:tomcat6 /opt/atlassian/confluence-3.5.5 
&lt;/code&gt;&lt;/pre&gt;

&lt;p&gt;&#12507;&#12540;&#12512;&#12487;&#12451;&#12524;&#12463;&#12488;&#12522;&#12398;&#20301;&#32622;&#12434; Confluence &#12398;&#35373;&#23450;&#12395;&#21453;&#26144;&#12375;&#12390;&#12362;&#12367;&#12290;&lt;/p&gt;

&lt;p&gt;&lt;code&gt;/opt/atlassian/confluence/confluence/WEB-INF/classes/confluence-init.properties&lt;/code&gt;&#12398; &lt;code&gt;confluence.home&lt;/code&gt; &#12398;&#20516;&#12434;&#19978;&#35352;&#12391;&#27770;&#12417;&#12383;&#12487;&#12451;&#12524;&#12463;&#12488;&#12522;&#12395;&#25351;&#23450;&#12375;&#12390;&#12362;&#12367;&#12290;&lt;/p&gt;

&lt;pre class="shell"&gt;&lt;code class="language-shell"&gt;confluence.home=/opt/atlassian/confluence-data
&lt;/code&gt;&lt;/pre&gt;

&lt;h4 id="db-"&gt;DB &#12398;&#35373;&#23450;&lt;/h4&gt;

&lt;p&gt;&#35413;&#20385;&#30446;&#30340;&#12391;&#12354;&#12428;&#12400;&#20869;&#34101;&#12398; DB &#12434;&#20351;&#12360;&#12400;&#12424;&#12356;&#12398;&#12384;&#12364;&#12289;DB &#29872;&#22659;&#21547;&#12417;&#12390;&#12398;&#35413;&#20385;&#12434;&#34892;&#12387;&#12390;&#12362;&#12365;&#12383;&#12356;&#12398;&#12391; MySQL &#12408;&#12398;&#25509;&#32154;&#35373;&#23450;&#12434;&#34892;&#12358;&#12290;&#20197;&#19979;&#12398;&#12506;&#12540;&#12472;&#12364;&#21442;&#32771;&#12395;&#12394;&#12427;&#12290;&lt;/p&gt;

&lt;ul&gt;
  &lt;li&gt;&lt;a href="http://confluence.atlassian.com/display/DOC/Database+Setup+For+MySQL"&gt;Database Setup For MySQL - Confluence 3.5 - Atlassian Documentation - Confluence&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;&#19978;&#35352;&#12395;&#35352;&#36617;&#12398;&#12354;&#12427; MySQL &#12398;&#35373;&#23450;&#12501;&#12449;&#12452;&#12523; &lt;code&gt;/etc/mysql/my.cnf&lt;/code&gt; &#12398;&#35373;&#23450;&#12434;&#36861;&#35352;+&#22793;&#26356;&#12375;&#12390;&#12362;&#12367;&#12290;&#20197;&#19979;&#12399;&#22793;&#26356;&#28857;&#12290;&lt;br /&gt;
&#20840;&#12390;&lt;code&gt;[mysqld]&lt;/code&gt; &#12475;&#12463;&#12471;&#12519;&#12531;&#20869;&#12395;&#12394;&#12427;&#12290;&lt;/p&gt;

&lt;pre class="shell"&gt;&lt;code class="language-shell"&gt;# git diff b4119c53 9f7a1a5 my.cnf
diff --git a/mysql/my.cnf b/mysql/my.cnf
index 92b55c2..9e0be08 100644
--- a/mysql/my.cnf
+++ b/mysql/my.cnf
@@ -46,6 +46,16 @@ basedir              = /usr
 datadir                = /var/lib/mysql
 tmpdir         = /tmp
 skip-external-locking
+
+# add
+default-collation=utf8_bin
+character-set-server=utf8
+collation-server=utf8_bin
+default-character-set=utf8
+
+default-storage-engine=INNODB
+
+transaction-isolation=READ-COMMITTED
 #
 # Instead of skip-networking the default is now to listen only on
 # localhost which is more compatible and is not less secure.
@@ -54,7 +64,7 @@ bind-address          = 127.0.0.1
 # * Fine Tuning
 #
 key_buffer             = 16M
-max_allowed_packet     = 16M
+max_allowed_packet     = 32M
 thread_stack           = 192K
 thread_cache_size       = 8
 # This replaces the startup script and checks MyISAM tables if needed
&lt;/code&gt;&lt;/pre&gt;

&lt;p&gt;&#35373;&#23450;&#22793;&#26356;&#24460;&#12289;MySQL &#12398;&#20877;&#36215;&#21205;&#12434;&#12363;&#12369;&#12390;&#12362;&#12367;&#12290;&lt;/p&gt;

&lt;pre class="shell"&gt;&lt;code class="language-shell"&gt;# service mysql restart
mysql start/running, process 8088
&lt;/code&gt;&lt;/pre&gt;

&lt;p&gt;Confluence &#12391;&#20351;&#29992;&#12377;&#12427;&#12487;&#12540;&#12479;&#12505;&#12540;&#12473;&#12398;&#20316;&#25104;&#12289;&#25509;&#32154;&#12518;&#12540;&#12470;&#12398;&#20316;&#25104;&#12434;&#34892;&#12387;&#12390;&#12362;&#12367;&#12290;&lt;/p&gt;

&lt;pre class="shell"&gt;&lt;code class="language-shell"&gt;# mysql -uroot -p
Enter password: 
Welcome to the MySQL monitor.  Commands end with ; or \g.
Your MySQL connection id is 35
Server version: 5.1.41-3ubuntu12.8 (Ubuntu)

Type 'help;' or '\h' for help. Type '\c' to clear the current input statement.

mysql&amp;gt; CREATE DATABASE confluence;
Query OK, 1 row affected (0.00 sec)

mysql&amp;gt; GRANT ALL PRIVILEGES ON confluence.* TO 'confluenceuser'@'localhost' IDENTIFIED BY 'confluencepass';
Query OK, 0 rows affected (0.03 sec)
&lt;/code&gt;&lt;/pre&gt;

&lt;p&gt;&#19978;&#35352;&#12398;&#12487;&#12540;&#12479;&#12505;&#12540;&#12473;&#12398;&#12518;&#12540;&#12470;&#21517;(confluenceuser)&#12497;&#12473;&#12527;&#12540;&#12489;(confluencepass)&#12399;&#19968;&#20363;&#12290;&#36969;&#20999;&#12394;&#12418;&#12398;&#12395;&#22793;&#26356;&#12375;&#12390;&#20837;&#21147;&#12434;&#34892;&#12358;&#12371;&#12392;&#12290;&lt;/p&gt;

&lt;p&gt;DB &#12399;&#20197;&#19978;&#12290;&lt;/p&gt;

&lt;h4 id="tomcat-"&gt;Tomcat &#12398;&#35373;&#23450;&lt;/h4&gt;

&lt;p&gt;Tomcat &#12398;&#35373;&#23450;&#12501;&#12449;&#12452;&#12523;&#12395;&#20808;&#12411;&#12393;&#37197;&#32622;&#12375;&#12383; Confluence &#12434; Web &#12450;&#12503;&#12522;&#12465;&#12540;&#12471;&#12519;&#12531;&#12392;&#12375;&#12390;&#35469;&#35672;&#12373;&#12379;&#12427;&#12383;&#12417;&#12398;&#35373;&#23450;&#12434;&#36861;&#21152;&#12375;&#12390;&#12362;&#12367;&#12290;&lt;/p&gt;

&lt;p&gt;Tomcat &#12398;&#35373;&#23450;&#12501;&#12449;&#12452;&#12523;&#12399;&#12289;&#36890;&#24120; Tomcat &#12398;&#12452;&#12531;&#12473;&#12488;&#12540;&#12523;&#12487;&#12451;&#12524;&#12463;&#12488;&#12522;&#12398; &lt;code&gt;conf/Catalina/localhost&lt;/code&gt; &#12395;&#37197;&#32622;&#12377;&#12427;&#12364;&#12289;&#20170;&#22238;&#20351;&#29992;&#12375;&#12390;&#12356;&#12427; TurnKey Linux &#12391;&#12398;&#35442;&#24403;&#12487;&#12451;&#12524;&#12463;&#12488;&#12522;&#12399; &lt;code&gt;/etc/tomcat6/Catalina/localhost&lt;/code&gt; &#12395;&#12394;&#12427;&#12290;&lt;/p&gt;

&lt;p&gt;&lt;code&gt;/etc/tomcat6/Catalina/localhost/confluence.xml&lt;/code&gt; &#12501;&#12449;&#12452;&#12523;&#12434;&#20316;&#25104;&#12375;&#12289;&#20197;&#19979;&#12398;&#35352;&#36848;&#12434;&#34892;&#12358;&#12290;&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;&lt;code&gt;confluence.xml&lt;/code&gt;:&lt;/strong&gt;&lt;/p&gt;

&lt;pre class="shell"&gt;&lt;code class="language-shell"&gt;&amp;lt;Context path="/confluence"
         docBase="/opt/atlassian/confluence/confluence"
         debug="0"
         reloadable="true" /&amp;gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;p&gt;&lt;code&gt;docBase&lt;/code&gt; &#12395;&#12399;&#20808;&#12395;&lt;strong&gt;&#12452;&#12531;&#12473;&#12488;&#12540;&#12523;&#12487;&#12451;&#12524;&#12463;&#12488;&#12522;&lt;/strong&gt;&#12392;&#12375;&#12390;&#27770;&#12417;&#12383;&#12497;&#12473;&#37197;&#19979;&#12398; confluence &#12487;&#12451;&#12524;&#12463;&#12488;&#12522;&#12434;&#35373;&#23450;&#12375;&#12390;&#12356;&#12427;&#12290;&lt;/p&gt;

&lt;p&gt;Tomcat &#12398;&#20877;&#36215;&#21205;&#12434;&#34892;&#12358;&#12290;&lt;/p&gt;

&lt;pre class="shell"&gt;&lt;code class="language-shell"&gt;# service tomcat6 restart
 * Stopping Tomcat servlet engine tomcat6
   ...done.
 * Starting Tomcat servlet engine tomcat6
   ...done.
&lt;/code&gt;&lt;/pre&gt;

&lt;p&gt;&#20197;&#19978;&#12391; Tomcat &#12398;&#35373;&#23450;&#12399;&#23436;&#20102;&#12290;&#19978;&#35352;&#12398;&#36215;&#21205;&#26178;&#12395;&#22937;&#12394;&#12456;&#12521;&#12540;&#12364;&#20986;&#12390;&#12356;&#12394;&#12369;&#12428;&#12400;&#12414;&#12378;&#12399; OK&#12290;&lt;/p&gt;

&lt;h4 id="web-"&gt;Web &#30011;&#38754;&#12363;&#12425;&#12398;&#35373;&#23450;&lt;/h4&gt;

&lt;p&gt;&#12371;&#12371;&#12363;&#12425;&#20808;&#12399;&#12502;&#12521;&#12454;&#12470;&#12391; &lt;code&gt;http://&amp;lt;server host&amp;gt;/confluence&lt;/code&gt; &#12395;&#12450;&#12463;&#12475;&#12473;&#12375;&#12289;&#27531;&#12426;&#12398;&#35373;&#23450;&#12434; Web &#12398;&#30011;&#38754;&#12363;&#12425;&#34892;&#12358;&#12290;&lt;/p&gt;

&lt;p&gt;&lt;img src="/assets/images/ubuntu/confluence-install-setup-1-w500.png" alt="confluence-install-setup-1" /&gt;&lt;/p&gt;

&lt;p&gt;&#12414;&#12378;&#12399;&#12521;&#12452;&#12475;&#12531;&#12473;&#12501;&#12449;&#12452;&#12523;&#12398;&#24773;&#22577;&#12364;&#24517;&#35201;&#12395;&#12394;&#12427;&#12290;&lt;/p&gt;

&lt;p&gt;&#19978;&#35352;&#12506;&#12540;&#12472;&#12398; &#8220;generate an evaluation license online&#8221; &#12434;&#12463;&#12522;&#12483;&#12463;&#12377;&#12427;&#12371;&#12392;&#12391;&#12289;My Atlassian &#12398;&#12525;&#12464;&#12452;&#12531;&#30011;&#38754;&#12395;&#36983;&#31227;&#12377;&#12427;&#12398;&#12391;&#12289;&#12525;&#12464;&#12452;&#12531;&#12434;&#34892;&#12358;&#12290;&lt;br /&gt;
(&#12450;&#12459;&#12454;&#12531;&#12488;&#12434;&#12414;&#12384;&#20316;&#25104;&#12375;&#12390;&#12356;&#12394;&#12356;&#22580;&#21512;&#12399;&#12450;&#12459;&#12454;&#12531;&#12488;&#12434;&#20808;&#12395;&#20316;&#25104;&#12377;&#12427;)&lt;/p&gt;

&lt;p&gt;&lt;img src="/assets/images/ubuntu/my-atlassian-login-w500.png" alt="&#12525;&#12464;&#12452;&#12531; - My Atlassian" /&gt;&lt;/p&gt;

&lt;p&gt;&#12525;&#12464;&#12452;&#12531;&#24460;&#12398;&#12506;&#12540;&#12472;&#12395;&#24517;&#35201;&#12394;&#38917;&#30446;&#12364;&#24341;&#12365;&#32153;&#12364;&#12428;&#12383;&#29366;&#24907;&#12391;&#34920;&#31034;&#12373;&#12428;&#12427;&#12398;&#12391;&#12289;&#8221;&#12521;&#12452;&#12475;&#12531;&#12473;&#12398;&#29983;&#25104;&#8221;&#12434;&#12463;&#12522;&#12483;&#12463;&#12377;&#12427;&#12290;&lt;/p&gt;

&lt;p&gt;&lt;img src="/assets/images/ubuntu/confluence-install-setup-2-w500.png" alt="confluence-install-setup-2" /&gt;&lt;/p&gt;

&lt;p&gt;&#12358;&#12414;&#12356;&#12371;&#12392;&#12506;&#12540;&#12472;&#12364; Redidirect &#12373;&#12428;&#12427;&#20181;&#32068;&#12415;&#12395;&#12394;&#12387;&#12390;&#12356;&#12390;&#12289;&#20808;&#12395;&#34920;&#31034;&#12373;&#12428;&#12390;&#12356;&#12383;&#12521;&#12452;&#12475;&#12531;&#12473;&#20837;&#21147;&#30011;&#38754;&#12395;&#12521;&#12452;&#12475;&#12531;&#12473;&#12461;&#12540;&#12364;&#20837;&#21147;&#12373;&#12428;&#12383;&#29366;&#24907;&#12391;&#25147;&#12387;&#12390;&#12367;&#12427;&#12290;&lt;/p&gt;

&lt;p&gt;&lt;img src="/assets/images/ubuntu/confluence-install-setup-3-w500.png" alt="confluence-install-setup-3" /&gt;&lt;/p&gt;

&lt;p&gt;&#22806;&#37096;&#12398;&#12487;&#12540;&#12479;&#12505;&#12540;&#12473;&#12434;&#20351;&#29992;&#12377;&#12427;&#12398;&#12391;&#12289;&#8221;Production Installation&#8221; &#12434;&#12463;&#12522;&#12483;&#12463;&#12375;&#12289;&#27425;&#12398;&#12506;&#12540;&#12472;&#12395;&#36914;&#12416;&#12290;&lt;/p&gt;

&lt;p&gt;&lt;img src="/assets/images/ubuntu/confluence-install-setup-4-w500.png" alt="confluence-install-setup-4" /&gt;&lt;/p&gt;

&lt;p&gt;&#20170;&#22238; MySQL &#12434;&#20351;&#12358;&#12398;&#12391;&#12289;&#8221;External Database&#8221; &#12391; &#8220;MySQL&#8221; &#12434;&#36984;&#25246;&#12375;&#12289;&#8221;External Database&#8221; &#12434;&#12463;&#12522;&#12483;&#12463;&#12375;&#27425;&#12398;&#12506;&#12540;&#12472;&#12395;&#36914;&#12416;&#12290;&lt;/p&gt;

&lt;p&gt;&lt;img src="/assets/images/ubuntu/confluence-install-setup-5-w500.png" alt="confluence-install-setup-5" /&gt;&lt;/p&gt;

&lt;p&gt;Web &#12450;&#12503;&#12522;&#12465;&#12540;&#12471;&#12519;&#12531;&#12469;&#12540;&#12496;&#12398;&#12487;&#12540;&#12479;&#12477;&#12540;&#12473;&#12399;&#20351;&#12431;&#12378;&#12395;&#30452;&#25509;&#12388;&#12394;&#12368;&#12398;&#12391;&#12289;&#8221;Direct JDBC&#8221; &#12434;&#12463;&#12522;&#12483;&#12463;&#12377;&#12427;&#12290;&lt;/p&gt;

&lt;p&gt;&lt;img src="/assets/images/ubuntu/confluence-install-setup-6-w500.png" alt="confluence-install-setup-6" /&gt;&lt;/p&gt;

&lt;p&gt;&#8220;Driver Class Name&#8221; &#12399;&#12381;&#12398;&#12414;&#12414;&#12392;&#12375;&#12289;Database URL &#12395;&#12399;&#12289;&#34920;&#31034;&#12373;&#12428;&#12390;&#12356;&#12427;&#25991;&#23383;&#21015;&#12398;&#26368;&#24460;&#12395; &lt;code&gt;&amp;amp;useUnicode=true&amp;amp;characterEncoding=utf8&lt;/code&gt; &#12434;&#36861;&#21152;&#12375;&#12390;&#12354;&#12370;&#12427;&#12290;&#20840;&#25991;&#23383;&#21015;&#12399;&#20197;&#19979;&#12398;&#25991;&#23383;&#21015;&#12395;&#12394;&#12427;&#12290;&lt;/p&gt;

&lt;pre class="shell"&gt;&lt;code class="language-shell"&gt;jdbc:mysql://localhost/confluence?autoReconnect=true&amp;amp;sessionVariables=storage_engine%3DInnoDB&amp;amp;useUnicode=true&amp;amp;characterEncoding=utf8
&lt;/code&gt;&lt;/pre&gt;

&lt;p&gt;&#12418;&#12375;&#12289;&#12487;&#12540;&#12479;&#12505;&#12540;&#12473;&#21517;&#12434; confluence &#12392;&#12399;&#30064;&#12394;&#12427;&#21517;&#21069;&#12395;&#12375;&#12390;&#12356;&#12383;&#22580;&#21512;&#12395;&#12399;&#12289;&#36969;&#23452;&#22793;&#26356;&#12375;&#12390;&#12362;&#12367;&#12290;&lt;/p&gt;

&lt;p&gt;&#12414;&#12383;&#12289;DB &#12398;&#35373;&#23450;&#26178;&#12395;&#20316;&#25104;&#12375;&#12383; confluence &#12487;&#12540;&#12479;&#12505;&#12540;&#12473;&#12395;&#25509;&#32154;&#12434;&#34892;&#12358;&#12518;&#12540;&#12470;&#21517;&#12392;&#12381;&#12398;&#12497;&#12473;&#12527;&#12540;&#12489;&#12434;&#20837;&#21147;&#12375;&#12390; &#8220;Next&#8221; &#12434;&#12463;&#12522;&#12483;&#12463;&#12377;&#12427;&#12290;&lt;/p&gt;

&lt;p&gt;&#12371;&#12398;&#24460;&#12487;&#12540;&#12479;&#12505;&#12540;&#12473;&#12408;&#12398;&#12473;&#12461;&#12540;&#12510;&#20316;&#25104;&#12394;&#12393;&#12356;&#12429;&#12356;&#12429;&#12394;&#20316;&#26989;&#12364;&#36208;&#12427;&#12398;&#12391;&#12375;&#12400;&#12375;&#26178;&#38291;&#12434;&#12362;&#12356;&#12383;&#24460;&#12395;&#27425;&#12398;&#30011;&#38754;&#12395;&#36983;&#31227;&#12377;&#12427;&#12290;&lt;/p&gt;

&lt;p&gt;&lt;img src="/assets/images/ubuntu/confluence-install-setup-7-w500.png" alt="confluence-install-setup-7" /&gt;&lt;/p&gt;

&lt;p&gt;Example &#12469;&#12452;&#12488;&#12364;&#12354;&#12387;&#12383;&#26041;&#12364;&#12392;&#12387;&#12388;&#12365;&#12420;&#12377;&#12367;&#12394;&#12427;&#12398;&#12391;&#12289;&#8221;Example Site&#8221; &#12434;&#12463;&#12522;&#12483;&#12463;&#12377;&#12427;&#12290;&lt;/p&gt;

&lt;p&gt;&#12371;&#12398;&#24460;&#12289;&#8221;Create administrator&#8221; &#30011;&#38754;&#12408;&#12392;&#36983;&#31227;&#12375;&#12289;Administrator &#12450;&#12459;&#12454;&#12531;&#12488;&#12434;&#20316;&#25104;&#12375;&#12383;&#24460;&#12395;&#12475;&#12483;&#12488;&#12450;&#12483;&#12503;&#12364;&#23436;&#20102;&#12392;&#12394;&#12427;&#12290;&lt;br /&gt;
(&#30011;&#38754;&#12398;&#12473;&#12463;&#12522;&#12540;&#12531;&#12471;&#12519;&#12483;&#12488;&#12434;&#25774;&#12426;&#24536;&#12428;&#12290;&#12290;)&lt;/p&gt;

&lt;p&gt;&#20197;&#19978;&#12391;&#12452;&#12531;&#12473;&#12488;&#12540;&#12523;&#20316;&#26989;&#12399;&#23436;&#20102;&#12392;&#12394;&#12427;&#12290;&lt;/p&gt;

&lt;p&gt;&lt;code&gt;http://&amp;lt;server host&amp;gt;/confluence&lt;/code&gt; &#12395;&#12450;&#12463;&#12475;&#12473;&#12377;&#12427;&#12392; Confluence &#12364;&#21033;&#29992;&#21487;&#33021;&#12392;&#12394;&#12387;&#12390;&#12356;&#12427;&#12290;&lt;/p&gt;

&lt;p&gt;&lt;img src="/assets/images/ubuntu/confluence-install-setup-last-w500.png" alt="confluence-install-setup-last" /&gt;&lt;/p&gt;

&lt;p&gt;&#12371;&#12398;&#29366;&#24907;&#12391;&#12399;&#12467;&#12531;&#12486;&#12484;&#12398;&#26085;&#26412;&#21270;&#12399;&#12373;&#12428;&#12390;&#12356;&#12394;&#12356;&#12290;&#19968;&#37096;&#12398;&#26085;&#26412;&#35486;&#20837;&#21147;&#12395;&#12362;&#12356;&#12390;&#12418;&#21839;&#38988;&#12364;&#12354;&#12427;&#12290;&#12371;&#12398;&#24460;&#26085;&#26412;&#35486;&#21270;&#12434;&#34892;&#12358;&#12290;&#27425;&#22238;&#12395;&#32154;&#12367;&#12290;&lt;/p&gt;

&lt;p&gt;&#24453;&#12385;&#12365;&#12428;&#12394;&#12356;&#22580;&#21512;&#12399;&#12289;&lt;/p&gt;

&lt;ul&gt;
  &lt;li&gt;&lt;a href="http://www.ricksoft.jp/document/pages/viewpage.action?pageId=77332576"&gt;Confluence&#12398;&#26085;&#26412;&#35486;&#21270; - &#12452;&#12531;&#12473;&#12488;&#12540;&#12523;&#25163;&#38918; - Confluence&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;&#12434;&#21442;&#29031;&#12398;&#12371;&#12392;&#12290;&lt;/p&gt;
</content>
    <summary type="html">&lt;p&gt;Wiki &#12398;&#12484;&#12540;&#12523;&#12434;&#35519;&#12409;&#12390;&#12362;&#12426;&#12289;Atlassian &#12398; Confluence &#12434;&#35430;&#12375;&#12390;&#12415;&#12427;&#12371;&#12392;&#12395;&#12375;&#12383;&#12290;&#12381;&#12398;&#12452;&#12531;&#12473;&#12488;&#12540;&#12523;&#12513;&#12514;&#12290;&lt;/p&gt;

&lt;ul&gt;
  &lt;li&gt;&lt;a href="http://www.atlassian.com/ja_JP/software/confluence/"&gt;&#12456;&#12531;&#12479;&#12540;&#12503;&#12521;&#12452;&#12474; &#12467;&#12521;&#12508;&#12524;&#12540;&#12471;&#12519;&#12531;&#12362;&#12424;&#12403; Wiki &#12477;&#12501;&#12488;&#12454;&#12455;&#12450; - Confluence&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;&lt;img src="/assets/images/ubuntu/atlassian-confluence-w500.png" alt="atlassian-confluence" /&gt;&lt;/p&gt;

&lt;p&gt;&#12414;&#12378;&#12399;&#35413;&#20385;&#30446;&#30340;&#12391;&#35430;&#12375;&#12390;&#12415;&#12427;&#12290;&#20197;&#19979;&#12398;&#27083;&#25104;&#12391;&#12452;&#12531;&#12473;&#12488;&#12540;&#12523;&#12377;&#12427;&#12290;&lt;/p&gt;

&lt;ul&gt;
  &lt;li&gt;&#12505;&#12540;&#12473;&#12392;&#12394;&#12427; OS &#12399;&#20206;&#24819;&#29872;&#22659;&#19978;&#12395;&#12398;&#12379;&#12427;&#12290;TurnKey Linux &#12398;&#25552;&#20379;&#12377;&#12427; &lt;a href="http://www.turnkeylinux.org/tomcat"&gt;Virtual Applicace Standalone Tomcat Appliance&lt;/a&gt; &#12434;&#20351;&#12358;&#12290;
    &lt;ul&gt;
      &lt;li&gt;&#12371;&#12398;&#29872;&#22659;&#12399;&#12289;Java &#29872;&#22659;&#12289;Tomcat &#12469;&#12540;&#12496;&#12289;MySQL 5.1 &#12364;&#12377;&#12391;&#12395;&#21033;&#29992;&#21487;&#33021;&#12394;&#29872;&#22659;&#12392;&#12394;&#12427;&lt;/li&gt;
    &lt;/ul&gt;
  &lt;/li&gt;
  &lt;li&gt;Confluence &#12399; Standalone &#12391;&#12399;&#12394;&#12367; WAR &#12496;&#12540;&#12472;&#12519;&#12531;&#12434;&#26082;&#23384;&#12398; Tomcat &#29872;&#22659;&#12395;&#12452;&#12531;&#12473;&#12488;&#12540;&#12523;&#12377;&#12427;&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;&#12452;&#12531;&#12473;&#12488;&#12540;&#12523;&#12398;&#25163;&#38918;&#12399;&#12289;&#20197;&#19979;&#12398;&#12489;&#12461;&#12517;&#12513;&#12531;&#12488;&#12434;&#21442;&#32771;&#12395;&#34892;&#12358;&#12290;&lt;/p&gt;

&lt;ul&gt;
  &lt;li&gt;&lt;a href="http://confluence.atlassian.com/display/DOC/Installing+the+Confluence+EAR-WAR+Edition"&gt;Installing the Confluence EAR-WAR Edition - Confluence 3.5 - Atlassian Documentation - Confluence&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;

&lt;h3 id="section"&gt;&#20107;&#21069;&#12395;&#29992;&#24847;&#12377;&#12427;&#12418;&#12398;&#12392;&#20107;&#21069;&#28310;&#20633;&lt;/h3&gt;

&lt;h4 id="section-1"&gt;&#29992;&#24847;&#12377;&#12427;&#12418;&#12398;&lt;/h4&gt;

&lt;p&gt;&#12414;&#12378;&#12289;Confluence &#12398;&#12452;&#12531;&#12473;&#12488;&#12540;&#12523;&#12395;&#24517;&#35201;&#12394;&#12418;&#12398;&#12399;&#20197;&#19979;&#12398;2&#28857;&#12290;&lt;/p&gt;

&lt;ul&gt;
  &lt;li&gt;Confluence &#12398;&#12452;&#12531;&#12473;&#12488;&#12540;&#12523;&#29992;&#12501;&#12449;&#12452;&#12523;&lt;/li&gt;
  &lt;li&gt;&#12521;&#12452;&#12475;&#12531;&#12473;&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;&#12521;&#12452;&#12475;&#12531;&#12473;&#12501;&#12449;&#12452;&#12523;&#12399;&#12452;&#12531;&#12473;&#12488;&#12540;&#12523;&#36884;&#20013;&#12391;&#21462;&#24471;&#12377;&#12427;&#12398;&#12391;&#12289;&#12414;&#12378;&#12399;&#12452;&#12531;&#12473;&#12488;&#12540;&#12523;&#12395;&#24517;&#35201;&#12394;&#12501;&#12449;&#12452;&#12523;&#12434;&#12480;&#12454;&#12531;&#12525;&#12540;&#12489;&#12375;&#12390;&#12362;&#12367;&#12290;&lt;/p&gt;

&lt;ul&gt;
  &lt;li&gt;&lt;a href="http://www.atlassian.com/software/confluence/ConfluenceDownloadCenter.jspa"&gt;Download Wiki Software - Confluence Enterprise Wiki&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;&#19978;&#35352;&#12469;&#12452;&#12488;&#12398;&#21491;&#20596;&#12395;&#12354;&#12427; &#8220;Show all&#8221; &#12434;&#12463;&#12522;&#12483;&#12463;&#12375;&#12289;&#20840;&#12390;&#12398;&#12480;&#12454;&#12531;&#12525;&#12540;&#12489;&#21487;&#33021;&#12394;&#12501;&#12449;&#12452;&#12523;&#12434;&#34920;&#31034;&#12373;&#12379;&#12289;&lt;code&gt;Confluence 3.5.5 - EAR/WAR (TAR.GZ Archive)&lt;/code&gt; &#12434;&#12480;&#12454;&#12531;&#12525;&#12540;&#12489;&#12377;&#12427;&#12290;&lt;/p&gt;

&lt;p&gt;&lt;img src="/assets/images/ubuntu/confluence-download-w500.png" alt="confluence-download" /&gt;&lt;/p&gt;

&lt;h4 id="section-2"&gt;&#20107;&#21069;&#28310;&#20633;&lt;/h4&gt;

&lt;p&gt;&#20170;&#22238; &lt;a href="http://www.turnkeylinux.org/tomcat"&gt;Virtual Applicace Standalone Tomcat Appliance&lt;/a&gt; &#12398;&#12450;&#12503;&#12521;&#12452;&#12450;&#12531;&#12473;&#12434;&#12505;&#12540;&#12473;&#12392;&#12377;&#12427;&#12398;&#12391;&#12289;&#12469;&#12452;&#12488;&#12363;&#12425;&#12450;&#12503;&#12521;&#12452;&#12450;&#12531;&#12473;&#12521;&#12452;&#12502;&#12521;&#12522;&#12434;&#12480;&#12454;&#12531;&#12525;&#12540;&#12489;&#12375;&#12289;&#20206;&#24819;&#29872;&#22659;&#19978;&#12395;&#20316;&#25104;&#12375;&#12390;&#12362;&#12367;&#12290;&lt;/p&gt;

&lt;p&gt;&lt;img src="/assets/images/ubuntu/turnkeylinux-standalone-tomcat-w500.png" alt="turnkeylinux-standalone-tomcat" /&gt;&lt;/p&gt;

&lt;p&gt;&#12371;&#12371;&#12391;&#12399;&#20206;&#24819;&#29872;&#22659;&#19978;&#12395;&#12450;&#12503;&#12521;&#12452;&#12450;&#12531;&#12473;&#12434;&#12452;&#12531;&#12473;&#12488;&#12540;&#12523;&#12377;&#12427;&#25163;&#38918;&#12399;&#21106;&#24859;&#12377;&#12427;&#12290;&#20170;&#22238;&#20351;&#29992;&#12377;&#12427;&#12450;&#12503;&#12521;&#12452;&#12450;&#12531;&#12473;&#12521;&#12452;&#12502;&#12521;&#12522;&#12391;&#12399;&#12394;&#12356;&#12364;&#12289;&#36942;&#21435; Redmine &#12398;&#29872;&#22659;&#12434;&#27083;&#31689;&#12375;&#12383;&#38555;&#12398;&#12513;&#12514;&#12364;&#12354;&#12427;&#12398;&#12391;&#21442;&#29031;&#12398;&#12371;&#12392;&#12290;&lt;br /&gt;
(&#22823;&#26528;&#12398;&#25163;&#38918;&#12399;&#22793;&#12431;&#12425;&#12394;&#12356;)&lt;/p&gt;

&lt;ul&gt;
  &lt;li&gt;&lt;a href="/2011/01/22/turnkey-redmine-virtualbox-1/"&gt;&#25163;&#38291;&#35201;&#12425;&#12378;&#12391;&#12503;&#12525;&#12472;&#12455;&#12463;&#12488;&#31649;&#29702;&#12484;&#12540;&#12523; Redmine &#12434;&#23566;&#20837;&#12377;&#12427; - VirtualBox &#32232; (&#12381;&#12398;1)&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;&#12371;&#12371;&#12363;&#12425;&#20808;&#12399;&#26082;&#12395;&#19978;&#35352;&#12398;&#20206;&#24819;&#12450;&#12503;&#12521;&#12452;&#12450;&#12531;&#12473;&#12398;&#12452;&#12531;&#12473;&#12488;&#12540;&#12523;&#12399;&#23436;&#20102;&#12375;&#12390;&#12356;&#12427;&#12418;&#12398;&#12392;&#12375;&#12390;&#35352;&#36848;&#12377;&#12427;&#12290;&lt;/p&gt;

&lt;p&gt;&#20170;&#22238;&#12398;&#27083;&#31689;&#26178;&#12395;&#12399;&#12289;&#36861;&#21152;&#12391;&#20197;&#19979;&#12398;2&#28857;&#12434;&#23455;&#26045;&#12375;&#12390;&#12362;&#12367;&#12290;&lt;br /&gt;
&#20316;&#26989;&#20869;&#23481;&#12399;&#12381;&#12428;&#12382;&#12428;&#12398;&#12506;&#12540;&#12472;&#12434;&#21442;&#29031;&#12398;&#12371;&#12392;&#12290;&lt;/p&gt;

&lt;ul&gt;
  &lt;li&gt;&#12525;&#12465;&#12540;&#12523;&#12392;&#12479;&#12452;&#12512;&#12478;&#12540;&#12531;&#12398;&#22793;&#26356;
    &lt;ul&gt;
      &lt;li&gt;&lt;a href="/2011/06/04/ubuntu-initial-setup-locale-timezone/"&gt;Ubuntu&#12469;&#12540;&#12496;&#26085;&#26412;&#21521;&#12369;&#29872;&#22659;&#12398;&#21021;&#26399;&#35373;&#23450; - &#12525;&#12465;&#12540;&#12523;&#12392;&#12479;&#12452;&#12512;&#12478;&#12540;&#12531;&lt;/a&gt;&lt;/li&gt;
    &lt;/ul&gt;
  &lt;/li&gt;
  &lt;li&gt;Java &#29872;&#22659;&#12434; OpenJDK &#12363;&#12425; Sun Java &#12408;&#22793;&#26356; (Confluence &#12399; OpenJDK &#12434;&#27491;&#24335;&#12395;&#12469;&#12509;&#12540;&#12488;&#12375;&#12390;&#12356;&#12394;&#12356;&#27169;&#27096;)
    &lt;ul&gt;
      &lt;li&gt;&lt;a href="/2011/06/05/turnkey-linux-tomcat-from-openjdk-to-sunjdk/"&gt;Ubuntu(TurnKey Linux) &#12391; Java &#29872;&#22659;&#12434; OpenJDK &#12391;&#12399;&#12394;&#12367; Sun Java &#12434;&#12487;&#12501;&#12457;&#12523;&#12488;&#12395; + Tomcat &#12418;&lt;/a&gt;&lt;/li&gt;
    &lt;/ul&gt;
  &lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;&#12391;&#12289;&#12373;&#12425;&#12395; Java &#29872;&#22659;&#32097;&#12415;&#12391;&#23455;&#26045;&#12375;&#12390;&#12362;&#12367;&#24517;&#35201;&#12364;&#12354;&#12427;&#12290;&#20206;&#24819;OS&#12364;&#20351;&#29992;&#12391;&#12365;&#12427;&#12513;&#12514;&#12522;&#12392; Java &#12364;&#21033;&#29992;&#12377;&#12427;&#12513;&#12514;&#12522;&#12395;&#38306;&#12375;&#12390;&#12395;&#12394;&#12427;&#12290;&lt;/p&gt;

&lt;p&gt;&#12487;&#12501;&#12457;&#12523;&#12488;&#12398;&#35373;&#23450;&#12398;&#12414;&#12414;&#12391;&#12399;&#12513;&#12514;&#12522;&#12364;&#36275;&#12426;&#12378;&#12289;&#12452;&#12531;&#12473;&#12488;&#12540;&#12523;&#12364;&#12495;&#12531;&#12464;&#12387;&#12390;&#12375;&#12414;&#12358;&#12371;&#12392;&#12395;&#12394;&#12427;&#12290;&lt;/p&gt;

&lt;ul&gt;
  &lt;li&gt;&#20206;&#24819; OS &#12395;&#12399; 1G over &#12398;&#12513;&#12514;&#12522;&#12399;&#21106;&#12426;&#24403;&#12390;&#12390;&#12362;&#12367;&lt;/li&gt;
  &lt;li&gt;Java &#29872;&#22659;&#12391;&#12399;&#12289;&#12498;&#12540;&#12503;&#12398; Max &#12399; 1G&#12289;Permanent &#38936;&#22495;&#12418; 256M &#12367;&#12425;&#12356;&#12399;&#24517;&#35201;&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;&#12395;&#12399;&#12375;&#12390;&#12362;&#12356;&#12383;&#26041;&#12364;&#12424;&#12356;&#12290;&lt;/p&gt;

&lt;p&gt;Java &#29872;&#22659;&#12398;&#22793;&#26356;&#12395;&#38306;&#12375;&#12390;&#12399; &lt;code&gt;/etc/init.d/tomcat6&lt;/code&gt; &#12391;&#22793;&#26356;&#12434;&#34892;&#12387;&#12390;&#12362;&#12367;&#12290;&lt;code&gt;JAVA_OPTS&lt;/code&gt; &#12395;&#35373;&#23450;&#12434;&#36861;&#21152;&#12290;&#20197;&#19979;&#12398;&#12424;&#12358;&#12395;&#22793;&#26356;&#12434;&#21152;&#12360;&#12383;&#12290;&lt;/p&gt;

&lt;pre class="shell"&gt;&lt;code class="language-shell"&gt;# git diff b4119c5 9f7a1a5 tomcat6
diff --git a/init.d/tomcat6 b/init.d/tomcat6
index 7b31300..575967b 100755
--- a/init.d/tomcat6
+++ b/init.d/tomcat6
@@ -79,7 +79,7 @@ TOMCAT6_SECURITY=no
 # It also looks like the default heap size of 64M is not enough for most cases
 # so the maximum heap size is set to 128M
 if [ -z "$JAVA_OPTS" ]; then
-       JAVA_OPTS="-Djava.awt.headless=true -Xmx128M"
+       JAVA_OPTS="-Djava.awt.headless=true -Xms128M -Xmx1024M -XX:MaxPermSize=256M"
 fi
 
 # End of variables that can be overwritten in $DEFAULT
&lt;/code&gt;&lt;/pre&gt;

&lt;p&gt;&#12385;&#12394;&#12415;&#12395;&#12289;Standalone &#29256;&#12434;&#30906;&#35469;&#12375;&#12390;&#12415;&#12383;&#12392;&#12371;&#12429;&#12289;&lt;/p&gt;

&lt;pre class="shell"&gt;&lt;code class="language-shell"&gt;JAVA_OPTS="-Xms256m -Xmx512m -XX:MaxPermSize=256m $JAVA_OPTS -Djava.awt.headless=true "
export JAVA_OPTS
&lt;/code&gt;&lt;/pre&gt;

&lt;p&gt;&#12392;&#12394;&#12387;&#12390;&#12356;&#12383;&#12290;&lt;/p&gt;

&lt;h3 id="confluence-"&gt;Confluence &#12398;&#12452;&#12531;&#12473;&#12488;&#12540;&#12523;&lt;/h3&gt;

&lt;h4 id="confluence--confluence-"&gt;Confluence &#12398;&#35373;&#23450;&#12501;&#12449;&#12452;&#12523;&#12395; Confluence &#12507;&#12540;&#12512;&#12487;&#12451;&#12524;&#12463;&#12488;&#12522;&#12398;&#35373;&#23450;&lt;/h4&gt;

&lt;p&gt;Confluence &#12398;&#12452;&#12531;&#12473;&#12488;&#12540;&#12523;&#26178;&#12395;&#12399;&#12289;&#20197;&#19979;2&#12388;&#12398;&#12487;&#12451;&#12524;&#12463;&#12488;&#12522;&#12434;&#24847;&#35672;&#12375;&#12390;&#12362;&#12367;&#24517;&#35201;&#12364;&#12354;&#12427;&#12290;&lt;/p&gt;

&lt;ul&gt;
  &lt;li&gt;&lt;strong&gt;&#12452;&#12531;&#12473;&#12488;&#12540;&#12523;&#12487;&#12451;&#12524;&#12463;&#12488;&#12522;&lt;/strong&gt;&lt;/li&gt;
  &lt;li&gt;&lt;strong&gt;&#12507;&#12540;&#12512;&#12487;&#12451;&#12524;&#12463;&#12488;&#12522;&lt;/strong&gt;&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;&#20808;&#12395;&#12480;&#12454;&#12531;&#12525;&#12540;&#12489;&#12375;&#12390;&#12356;&#12383; &lt;code&gt;confluence-3.5.5.tar.gz&lt;/code&gt; &#12434; &lt;code&gt;/opt/atlassian&lt;/code&gt; &#37197;&#19979;&#12395;&#23637;&#38283;&#12375;&#12289;&lt;strong&gt;&#12452;&#12531;&#12473;&#12488;&#12540;&#12523;&#12487;&#12451;&#12524;&#12463;&#12488;&#12522;&lt;/strong&gt;&#12399;&#12289;&lt;code&gt;/opt/atlassian/confluence&lt;/code&gt; &#12392;&#12377;&#12427;&#12371;&#12392;&#12395;&#12375;&#12390;&#12289;&#12471;&#12531;&#12508;&#12522;&#12483;&#12463;&#12522;&#12531;&#12463;&#12434;&#12399;&#12387;&#12390;&#12362;&#12367;&#12290;&lt;/p&gt;

&lt;pre class="shell"&gt;&lt;code class="language-shell"&gt;# ln -s /opt/atlassian/confluence-3.5.5 /opt/atlassian/confluence
# cd /opt/atlassian/
# ls -l
total 4
lrwxrwxrwx  1 root root   35 2011-06-05 13:27 confluence -&amp;gt; /opt/atlassian/confluence-3.5.5
drwxr-xr-x 11 root root 4096 2011-06-05 13:19 confluence-3.5.5
&lt;/code&gt;&lt;/pre&gt;

&lt;p&gt;&#12507;&#12540;&#12512;&#12487;&#12451;&#12524;&#12463;&#12488;&#12522;&#12399;&#12289;&lt;code&gt;/opt/atlassian/confluence-data&lt;/code&gt; &#12392;&#12375;&#12390;&#12362;&#12367;&#12290;&lt;/p&gt;

&lt;p&gt;Tomcat &#12469;&#12540;&#12496;&#12399; tomcat6 &#12518;&#12540;&#12470;&#12391;&#21205;&#20316;&#12377;&#12427;&#12398;&#12391;&#12289;&#12507;&#12540;&#12512;&#12487;&#12451;&#12524;&#12463;&#12488;&#12522;&#12392;&#24565;&#12398;&#28858;&#12452;&#12531;&#12473;&#12488;&#12540;&#12523;&#12487;&#12451;&#12524;&#12463;&#12488;&#12522;&#12418;&#12497;&#12540;&#12511;&#12483;&#12471;&#12519;&#12531;&#12398;&#22793;&#26356;&#12434;&#34892;&#12387;&#12390;&#12362;&#12367;&#12290;&lt;/p&gt;

&lt;pre class="shell"&gt;&lt;code class="language-shell"&gt;# chown -R tomcat6:tomcat6 /opt/atlassian/confluence-data
# chown -R tomcat6:tomcat6 /opt/atlassian/confluence-3.5.5 
&lt;/code&gt;&lt;/pre&gt;

&lt;p&gt;&#12507;&#12540;&#12512;&#12487;&#12451;&#12524;&#12463;&#12488;&#12522;&#12398;&#20301;&#32622;&#12434; Confluence &#12398;&#35373;&#23450;&#12395;&#21453;&#26144;&#12375;&#12390;&#12362;&#12367;&#12290;&lt;/p&gt;

&lt;p&gt;&lt;code&gt;/opt/atlassian/confluence/confluence/WEB-INF/classes/confluence-init.properties&lt;/code&gt;&#12398; &lt;code&gt;confluence.home&lt;/code&gt; &#12398;&#20516;&#12434;&#19978;&#35352;&#12391;&#27770;&#12417;&#12383;&#12487;&#12451;&#12524;&#12463;&#12488;&#12522;&#12395;&#25351;&#23450;&#12375;&#12390;&#12362;&#12367;&#12290;&lt;/p&gt;

&lt;pre class="shell"&gt;&lt;code class="language-shell"&gt;confluence.home=/opt/atlassian/confluence-data
&lt;/code&gt;&lt;/pre&gt;

&lt;h4 id="db-"&gt;DB &#12398;&#35373;&#23450;&lt;/h4&gt;

&lt;p&gt;&#35413;&#20385;&#30446;&#30340;&#12391;&#12354;&#12428;&#12400;&#20869;&#34101;&#12398; DB &#12434;&#20351;&#12360;&#12400;&#12424;&#12356;&#12398;&#12384;&#12364;&#12289;DB &#29872;&#22659;&#21547;&#12417;&#12390;&#12398;&#35413;&#20385;&#12434;&#34892;&#12387;&#12390;&#12362;&#12365;&#12383;&#12356;&#12398;&#12391; MySQL &#12408;&#12398;&#25509;&#32154;&#35373;&#23450;&#12434;&#34892;&#12358;&#12290;&#20197;&#19979;&#12398;&#12506;&#12540;&#12472;&#12364;&#21442;&#32771;&#12395;&#12394;&#12427;&#12290;&lt;/p&gt;

&lt;ul&gt;
  &lt;li&gt;&lt;a href="http://confluence.atlassian.com/display/DOC/Database+Setup+For+MySQL"&gt;Database Setup For MySQL - Confluence 3.5 - Atlassian Documentation - Confluence&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;&#19978;&#35352;&#12395;&#35352;&#36617;&#12398;&#12354;&#12427; MySQL &#12398;&#35373;&#23450;&#12501;&#12449;&#12452;&#12523; &lt;code&gt;/etc/mysql/my.cnf&lt;/code&gt; &#12398;&#35373;&#23450;&#12434;&#36861;&#35352;+&#22793;&#26356;&#12375;&#12390;&#12362;&#12367;&#12290;&#20197;&#19979;&#12399;&#22793;&#26356;&#28857;&#12290;&lt;br /&gt;
&#20840;&#12390;&lt;code&gt;[mysqld]&lt;/code&gt; &#12475;&#12463;&#12471;&#12519;&#12531;&#20869;&#12395;&#12394;&#12427;&#12290;&lt;/p&gt;

&lt;pre class="shell"&gt;&lt;code class="language-shell"&gt;# git diff b4119c53 9f7a1a5 my.cnf
diff --git a/mysql/my.cnf b/mysql/my.cnf
index 92b55c2..9e0be08 100644
--- a/mysql/my.cnf
+++ b/mysql/my.cnf
@@ -46,6 +46,16 @@ basedir              = /usr
 datadir                = /var/lib/mysql
 tmpdir         = /tmp
 skip-external-locking
+
+# add
+default-collation=utf8_bin
+character-set-server=utf8
+collation-server=utf8_bin
+default-character-set=utf8
+
+default-storage-engine=INNODB
+
+transaction-isolation=READ-COMMITTED
 #
 # Instead of skip-networking the default is now to listen only on
 # localhost which is more compatible and is not less secure.
@@ -54,7 +64,7 @@ bind-address          = 127.0.0.1
 # * Fine Tuning
 #
 key_buffer             = 16M
-max_allowed_packet     = 16M
+max_allowed_packet     = 32M
 thread_stack           = 192K
 thread_cache_size       = 8
 # This replaces the startup script and checks MyISAM tables if needed
&lt;/code&gt;&lt;/pre&gt;

&lt;p&gt;&#35373;&#23450;&#22793;&#26356;&#24460;&#12289;MySQL &#12398;&#20877;&#36215;&#21205;&#12434;&#12363;&#12369;&#12390;&#12362;&#12367;&#12290;&lt;/p&gt;

&lt;pre class="shell"&gt;&lt;code class="language-shell"&gt;# service mysql restart
mysql start/running, process 8088
&lt;/code&gt;&lt;/pre&gt;

&lt;p&gt;Confluence &#12391;&#20351;&#29992;&#12377;&#12427;&#12487;&#12540;&#12479;&#12505;&#12540;&#12473;&#12398;&#20316;&#25104;&#12289;&#25509;&#32154;&#12518;&#12540;&#12470;&#12398;&#20316;&#25104;&#12434;&#34892;&#12387;&#12390;&#12362;&#12367;&#12290;&lt;/p&gt;

&lt;pre class="shell"&gt;&lt;code class="language-shell"&gt;# mysql -uroot -p
Enter password: 
Welcome to the MySQL monitor.  Commands end with ; or \g.
Your MySQL connection id is 35
Server version: 5.1.41-3ubuntu12.8 (Ubuntu)

Type 'help;' or '\h' for help. Type '\c' to clear the current input statement.

mysql&amp;gt; CREATE DATABASE confluence;
Query OK, 1 row affected (0.00 sec)

mysql&amp;gt; GRANT ALL PRIVILEGES ON confluence.* TO 'confluenceuser'@'localhost' IDENTIFIED BY 'confluencepass';
Query OK, 0 rows affected (0.03 sec)
&lt;/code&gt;&lt;/pre&gt;

&lt;p&gt;&#19978;&#35352;&#12398;&#12487;&#12540;&#12479;&#12505;&#12540;&#12473;&#12398;&#12518;&#12540;&#12470;&#21517;(confluenceuser)&#12497;&#12473;&#12527;&#12540;&#12489;(confluencepass)&#12399;&#19968;&#20363;&#12290;&#36969;&#20999;&#12394;&#12418;&#12398;&#12395;&#22793;&#26356;&#12375;&#12390;&#20837;&#21147;&#12434;&#34892;&#12358;&#12371;&#12392;&#12290;&lt;/p&gt;

&lt;p&gt;DB &#12399;&#20197;&#19978;&#12290;&lt;/p&gt;

&lt;h4 id="tomcat-"&gt;Tomcat &#12398;&#35373;&#23450;&lt;/h4&gt;

&lt;p&gt;Tomcat &#12398;&#35373;&#23450;&#12501;&#12449;&#12452;&#12523;&#12395;&#20808;&#12411;&#12393;&#37197;&#32622;&#12375;&#12383; Confluence &#12434; Web &#12450;&#12503;&#12522;&#12465;&#12540;&#12471;&#12519;&#12531;&#12392;&#12375;&#12390;&#35469;&#35672;&#12373;&#12379;&#12427;&#12383;&#12417;&#12398;&#35373;&#23450;&#12434;&#36861;&#21152;&#12375;&#12390;&#12362;&#12367;&#12290;&lt;/p&gt;

&lt;p&gt;Tomcat &#12398;&#35373;&#23450;&#12501;&#12449;&#12452;&#12523;&#12399;&#12289;&#36890;&#24120; Tomcat &#12398;&#12452;&#12531;&#12473;&#12488;&#12540;&#12523;&#12487;&#12451;&#12524;&#12463;&#12488;&#12522;&#12398; &lt;code&gt;conf/Catalina/localhost&lt;/code&gt; &#12395;&#37197;&#32622;&#12377;&#12427;&#12364;&#12289;&#20170;&#22238;&#20351;&#29992;&#12375;&#12390;&#12356;&#12427; TurnKey Linux &#12391;&#12398;&#35442;&#24403;&#12487;&#12451;&#12524;&#12463;&#12488;&#12522;&#12399; &lt;code&gt;/etc/tomcat6/Catalina/localhost&lt;/code&gt; &#12395;&#12394;&#12427;&#12290;&lt;/p&gt;

&lt;p&gt;&lt;code&gt;/etc/tomcat6/Catalina/localhost/confluence.xml&lt;/code&gt; &#12501;&#12449;&#12452;&#12523;&#12434;&#20316;&#25104;&#12375;&#12289;&#20197;&#19979;&#12398;&#35352;&#36848;&#12434;&#34892;&#12358;&#12290;&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;&lt;code&gt;confluence.xml&lt;/code&gt;:&lt;/strong&gt;&lt;/p&gt;

&lt;pre class="shell"&gt;&lt;code class="language-shell"&gt;&amp;lt;Context path="/confluence"
         docBase="/opt/atlassian/confluence/confluence"
         debug="0"
         reloadable="true" /&amp;gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;p&gt;&lt;code&gt;docBase&lt;/code&gt; &#12395;&#12399;&#20808;&#12395;&lt;strong&gt;&#12452;&#12531;&#12473;&#12488;&#12540;&#12523;&#12487;&#12451;&#12524;&#12463;&#12488;&#12522;&lt;/strong&gt;&#12392;&#12375;&#12390;&#27770;&#12417;&#12383;&#12497;&#12473;&#37197;&#19979;&#12398; confluence &#12487;&#12451;&#12524;&#12463;&#12488;&#12522;&#12434;&#35373;&#23450;&#12375;&#12390;&#12356;&#12427;&#12290;&lt;/p&gt;

&lt;p&gt;Tomcat &#12398;&#20877;&#36215;&#21205;&#12434;&#34892;&#12358;&#12290;&lt;/p&gt;

&lt;pre class="shell"&gt;&lt;code class="language-shell"&gt;# service tomcat6 restart
 * Stopping Tomcat servlet engine tomcat6
   ...done.
 * Starting Tomcat servlet engine tomcat6
   ...done.
&lt;/code&gt;&lt;/pre&gt;

&lt;p&gt;&#20197;&#19978;&#12391; Tomcat &#12398;&#35373;&#23450;&#12399;&#23436;&#20102;&#12290;&#19978;&#35352;&#12398;&#36215;&#21205;&#26178;&#12395;&#22937;&#12394;&#12456;&#12521;&#12540;&#12364;&#20986;&#12390;&#12356;&#12394;&#12369;&#12428;&#12400;&#12414;&#12378;&#12399; OK&#12290;&lt;/p&gt;

&lt;h4 id="web-"&gt;Web &#30011;&#38754;&#12363;&#12425;&#12398;&#35373;&#23450;&lt;/h4&gt;

&lt;p&gt;&#12371;&#12371;&#12363;&#12425;&#20808;&#12399;&#12502;&#12521;&#12454;&#12470;&#12391; &lt;code&gt;http://&amp;lt;server host&amp;gt;/confluence&lt;/code&gt; &#12395;&#12450;&#12463;&#12475;&#12473;&#12375;&#12289;&#27531;&#12426;&#12398;&#35373;&#23450;&#12434; Web &#12398;&#30011;&#38754;&#12363;&#12425;&#34892;&#12358;&#12290;&lt;/p&gt;

&lt;p&gt;&lt;img src="/assets/images/ubuntu/confluence-install-setup-1-w500.png" alt="confluence-install-setup-1" /&gt;&lt;/p&gt;

&lt;p&gt;&#12414;&#12378;&#12399;&#12521;&#12452;&#12475;&#12531;&#12473;&#12501;&#12449;&#12452;&#12523;&#12398;&#24773;&#22577;&#12364;&#24517;&#35201;&#12395;&#12394;&#12427;&#12290;&lt;/p&gt;

&lt;p&gt;&#19978;&#35352;&#12506;&#12540;&#12472;&#12398; &#8220;generate an evaluation license online&#8221; &#12434;&#12463;&#12522;&#12483;&#12463;&#12377;&#12427;&#12371;&#12392;&#12391;&#12289;My Atlassian &#12398;&#12525;&#12464;&#12452;&#12531;&#30011;&#38754;&#12395;&#36983;&#31227;&#12377;&#12427;&#12398;&#12391;&#12289;&#12525;&#12464;&#12452;&#12531;&#12434;&#34892;&#12358;&#12290;&lt;br /&gt;
(&#12450;&#12459;&#12454;&#12531;&#12488;&#12434;&#12414;&#12384;&#20316;&#25104;&#12375;&#12390;&#12356;&#12394;&#12356;&#22580;&#21512;&#12399;&#12450;&#12459;&#12454;&#12531;&#12488;&#12434;&#20808;&#12395;&#20316;&#25104;&#12377;&#12427;)&lt;/p&gt;

&lt;p&gt;&lt;img src="/assets/images/ubuntu/my-atlassian-login-w500.png" alt="&#12525;&#12464;&#12452;&#12531; - My Atlassian" /&gt;&lt;/p&gt;

&lt;p&gt;&#12525;&#12464;&#12452;&#12531;&#24460;&#12398;&#12506;&#12540;&#12472;&#12395;&#24517;&#35201;&#12394;&#38917;&#30446;&#12364;&#24341;&#12365;&#32153;&#12364;&#12428;&#12383;&#29366;&#24907;&#12391;&#34920;&#31034;&#12373;&#12428;&#12427;&#12398;&#12391;&#12289;&#8221;&#12521;&#12452;&#12475;&#12531;&#12473;&#12398;&#29983;&#25104;&#8221;&#12434;&#12463;&#12522;&#12483;&#12463;&#12377;&#12427;&#12290;&lt;/p&gt;

&lt;p&gt;&lt;img src="/assets/images/ubuntu/confluence-install-setup-2-w500.png" alt="confluence-install-setup-2" /&gt;&lt;/p&gt;

&lt;p&gt;&#12358;&#12414;&#12356;&#12371;&#12392;&#12506;&#12540;&#12472;&#12364; Redidirect &#12373;&#12428;&#12427;&#20181;&#32068;&#12415;&#12395;&#12394;&#12387;&#12390;&#12356;&#12390;&#12289;&#20808;&#12395;&#34920;&#31034;&#12373;&#12428;&#12390;&#12356;&#12383;&#12521;&#12452;&#12475;&#12531;&#12473;&#20837;&#21147;&#30011;&#38754;&#12395;&#12521;&#12452;&#12475;&#12531;&#12473;&#12461;&#12540;&#12364;&#20837;&#21147;&#12373;&#12428;&#12383;&#29366;&#24907;&#12391;&#25147;&#12387;&#12390;&#12367;&#12427;&#12290;&lt;/p&gt;

&lt;p&gt;&lt;img src="/assets/images/ubuntu/confluence-install-setup-3-w500.png" alt="confluence-install-setup-3" /&gt;&lt;/p&gt;

&lt;p&gt;&#22806;&#37096;&#12398;&#12487;&#12540;&#12479;&#12505;&#12540;&#12473;&#12434;&#20351;&#29992;&#12377;&#12427;&#12398;&#12391;&#12289;&#8221;Production Installation&#8221; &#12434;&#12463;&#12522;&#12483;&#12463;&#12375;&#12289;&#27425;&#12398;&#12506;&#12540;&#12472;&#12395;&#36914;&#12416;&#12290;&lt;/p&gt;

&lt;p&gt;&lt;img src="/assets/images/ubuntu/confluence-install-setup-4-w500.png" alt="confluence-install-setup-4" /&gt;&lt;/p&gt;

&lt;p&gt;&#20170;&#22238; MySQL &#12434;&#20351;&#12358;&#12398;&#12391;&#12289;&#8221;External Database&#8221; &#12391; &#8220;MySQL&#8221; &#12434;&#36984;&#25246;&#12375;&#12289;&#8221;External Database&#8221; &#12434;&#12463;&#12522;&#12483;&#12463;&#12375;&#27425;&#12398;&#12506;&#12540;&#12472;&#12395;&#36914;&#12416;&#12290;&lt;/p&gt;

&lt;p&gt;&lt;img src="/assets/images/ubuntu/confluence-install-setup-5-w500.png" alt="confluence-install-setup-5" /&gt;&lt;/p&gt;

&lt;p&gt;Web &#12450;&#12503;&#12522;&#12465;&#12540;&#12471;&#12519;&#12531;&#12469;&#12540;&#12496;&#12398;&#12487;&#12540;&#12479;&#12477;&#12540;&#12473;&#12399;&#20351;&#12431;&#12378;&#12395;&#30452;&#25509;&#12388;&#12394;&#12368;&#12398;&#12391;&#12289;&#8221;Direct JDBC&#8221; &#12434;&#12463;&#12522;&#12483;&#12463;&#12377;&#12427;&#12290;&lt;/p&gt;

&lt;p&gt;&lt;img src="/assets/images/ubuntu/confluence-install-setup-6-w500.png" alt="confluence-install-setup-6" /&gt;&lt;/p&gt;

&lt;p&gt;&#8220;Driver Class Name&#8221; &#12399;&#12381;&#12398;&#12414;&#12414;&#12392;&#12375;&#12289;Database URL &#12395;&#12399;&#12289;&#34920;&#31034;&#12373;&#12428;&#12390;&#12356;&#12427;&#25991;&#23383;&#21015;&#12398;&#26368;&#24460;&#12395; &lt;code&gt;&amp;amp;useUnicode=true&amp;amp;characterEncoding=utf8&lt;/code&gt; &#12434;&#36861;&#21152;&#12375;&#12390;&#12354;&#12370;&#12427;&#12290;&#20840;&#25991;&#23383;&#21015;&#12399;&#20197;&#19979;&#12398;&#25991;&#23383;&#21015;&#12395;&#12394;&#12427;&#12290;&lt;/p&gt;

&lt;pre class="shell"&gt;&lt;code class="language-shell"&gt;jdbc:mysql://localhost/confluence?autoReconnect=true&amp;amp;sessionVariables=storage_engine%3DInnoDB&amp;amp;useUnicode=true&amp;amp;characterEncoding=utf8
&lt;/code&gt;&lt;/pre&gt;

&lt;p&gt;&#12418;&#12375;&#12289;&#12487;&#12540;&#12479;&#12505;&#12540;&#12473;&#21517;&#12434; confluence &#12392;&#12399;&#30064;&#12394;&#12427;&#21517;&#21069;&#12395;&#12375;&#12390;&#12356;&#12383;&#22580;&#21512;&#12395;&#12399;&#12289;&#36969;&#23452;&#22793;&#26356;&#12375;&#12390;&#12362;&#12367;&#12290;&lt;/p&gt;

&lt;p&gt;&#12414;&#12383;&#12289;DB &#12398;&#35373;&#23450;&#26178;&#12395;&#20316;&#25104;&#12375;&#12383; confluence &#12487;&#12540;&#12479;&#12505;&#12540;&#12473;&#12395;&#25509;&#32154;&#12434;&#34892;&#12358;&#12518;&#12540;&#12470;&#21517;&#12392;&#12381;&#12398;&#12497;&#12473;&#12527;&#12540;&#12489;&#12434;&#20837;&#21147;&#12375;&#12390; &#8220;Next&#8221; &#12434;&#12463;&#12522;&#12483;&#12463;&#12377;&#12427;&#12290;&lt;/p&gt;

&lt;p&gt;&#12371;&#12398;&#24460;&#12487;&#12540;&#12479;&#12505;&#12540;&#12473;&#12408;&#12398;&#12473;&#12461;&#12540;&#12510;&#20316;&#25104;&#12394;&#12393;&#12356;&#12429;&#12356;&#12429;&#12394;&#20316;&#26989;&#12364;&#36208;&#12427;&#12398;&#12391;&#12375;&#12400;&#12375;&#26178;&#38291;&#12434;&#12362;&#12356;&#12383;&#24460;&#12395;&#27425;&#12398;&#30011;&#38754;&#12395;&#36983;&#31227;&#12377;&#12427;&#12290;&lt;/p&gt;

&lt;p&gt;&lt;img src="/assets/images/ubuntu/confluence-install-setup-7-w500.png" alt="confluence-install-setup-7" /&gt;&lt;/p&gt;

&lt;p&gt;Example &#12469;&#12452;&#12488;&#12364;&#12354;&#12387;&#12383;&#26041;&#12364;&#12392;&#12387;&#12388;&#12365;&#12420;&#12377;&#12367;&#12394;&#12427;&#12398;&#12391;&#12289;&#8221;Example Site&#8221; &#12434;&#12463;&#12522;&#12483;&#12463;&#12377;&#12427;&#12290;&lt;/p&gt;

&lt;p&gt;&#12371;&#12398;&#24460;&#12289;&#8221;Create administrator&#8221; &#30011;&#38754;&#12408;&#12392;&#36983;&#31227;&#12375;&#12289;Administrator &#12450;&#12459;&#12454;&#12531;&#12488;&#12434;&#20316;&#25104;&#12375;&#12383;&#24460;&#12395;&#12475;&#12483;&#12488;&#12450;&#12483;&#12503;&#12364;&#23436;&#20102;&#12392;&#12394;&#12427;&#12290;&lt;br /&gt;
(&#30011;&#38754;&#12398;&#12473;&#12463;&#12522;&#12540;&#12531;&#12471;&#12519;&#12483;&#12488;&#12434;&#25774;&#12426;&#24536;&#12428;&#12290;&#12290;)&lt;/p&gt;

&lt;p&gt;&#20197;&#19978;&#12391;&#12452;&#12531;&#12473;&#12488;&#12540;&#12523;&#20316;&#26989;&#12399;&#23436;&#20102;&#12392;&#12394;&#12427;&#12290;&lt;/p&gt;

&lt;p&gt;&lt;code&gt;http://&amp;lt;server host&amp;gt;/confluence&lt;/code&gt; &#12395;&#12450;&#12463;&#12475;&#12473;&#12377;&#12427;&#12392; Confluence &#12364;&#21033;&#29992;&#21487;&#33021;&#12392;&#12394;&#12387;&#12390;&#12356;&#12427;&#12290;&lt;/p&gt;

&lt;p&gt;&lt;img src="/assets/images/ubuntu/confluence-install-setup-last-w500.png" alt="confluence-install-setup-last" /&gt;&lt;/p&gt;

&lt;p&gt;&#12371;&#12398;&#29366;&#24907;&#12391;&#12399;&#12467;&#12531;&#12486;&#12484;&#12398;&#26085;&#26412;&#21270;&#12399;&#12373;&#12428;&#12390;&#12356;&#12394;&#12356;&#12290;&#19968;&#37096;&#12398;&#26085;&#26412;&#35486;&#20837;&#21147;&#12395;&#12362;&#12356;&#12390;&#12418;&#21839;&#38988;&#12364;&#12354;&#12427;&#12290;&#12371;&#12398;&#24460;&#26085;&#26412;&#35486;&#21270;&#12434;&#34892;&#12358;&#12290;&#27425;&#22238;&#12395;&#32154;&#12367;&#12290;&lt;/p&gt;

&lt;p&gt;&#24453;&#12385;&#12365;&#12428;&#12394;&#12356;&#22580;&#21512;&#12399;&#12289;&lt;/p&gt;

&lt;ul&gt;
  &lt;li&gt;&lt;a href="http://www.ricksoft.jp/document/pages/viewpage.action?pageId=77332576"&gt;Confluence&#12398;&#26085;&#26412;&#35486;&#21270; - &#12452;&#12531;&#12473;&#12488;&#12540;&#12523;&#25163;&#38918; - Confluence&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;&#12434;&#21442;&#29031;&#12398;&#12371;&#12392;&#12290;&lt;/p&gt;
</summary>
  </entry>
  <entry>
    <id>tag:blog.designrecipe.jp,2011-06-05:/2011/06/05/turnkey-linux-tomcat-from-openjdk-to-sunjdk/</id>
    <title type="html">Ubuntu(TurnKey Linux) &#12391; Java &#29872;&#22659;&#12434; OpenJDK &#12391;&#12399;&#12394;&#12367; Sun Java &#12434;&#12487;&#12501;&#12457;&#12523;&#12488;&#12395; + Tomcat &#12418;</title>
    <published>2011-06-05T09:50:00Z</published>
    <updated>2011-06-05T09:50:00Z</updated>
    <link rel="alternate" href="http://blog.designrecipe.jp/2011/06/05/turnkey-linux-tomcat-from-openjdk-to-sunjdk/"/>
    <content type="html">&lt;p&gt;&#20309;&#12363;&#12392;&#20415;&#21033;&#12394;&#20206;&#24819;&#12450;&#12503;&#12521;&#12452;&#12450;&#12531;&#12473;&#12521;&#12452;&#12502;&#12521;&#12522;&#12290;&lt;/p&gt;

&lt;p&gt;&lt;a href="http://www.turnkeylinux.org/"&gt;TurnKey Linux&lt;/a&gt; &#12398;&#12418;&#12398;&#12434;&#12424;&#12367;&#20351;&#12431;&#12379;&#12390;&#12418;&#12425;&#12387;&#12390;&#12356;&#12427;&#12364;&#12289;Tomcat &#12398;&#12458;&#12540;&#12523;&#12452;&#12531;&#12527;&#12531;&#29872;&#22659;&#12434;&#25552;&#20379;&#12375;&#12390;&#12356;&#12427; Tomcat Applicance &#12391;&#12399;&#12289;JDK &#12399; OpenJDK &#12434;&#20351;&#12387;&#12390;&#12356;&#12427;&#12290;&#12371;&#12428;&#12434; Sun Java &#29872;&#22659;&#12395;&#22793;&#26356;&#12375;&#12289;&#20341;&#12379;&#12390; Tomcat &#12418; Sun Java &#12391;&#36215;&#21205;&#12377;&#12427;&#12424;&#12358;&#12395;&#22793;&#26356;&#12377;&#12427;&#12290;&lt;/p&gt;

&lt;ul&gt;
  &lt;li&gt;&lt;a href="http://www.turnkeylinux.org/tomcat"&gt;Standalone Tomcat Appliance - Java Servlet and JSP Platform TurnKey Linux Virtual Appliance Library&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;&lt;img src="http://cdn.turnkeylinux.org/files/images/icons/tomcat.jpg?1256737502" alt="Standalone Tomcat Appliance" /&gt;&lt;/p&gt;

&lt;p&gt;&#12371;&#12398;&#12450;&#12503;&#12521;&#12452;&#12450;&#12531;&#12473;&#12521;&#12452;&#12502;&#12521;&#12522;&#12395;&#12399;&#12487;&#12501;&#12457;&#12523;&#12488;&#12391; &lt;code&gt;Tomcat 6.0.24&lt;/code&gt; &#12392; &lt;code&gt;MySQL 5.1&lt;/code&gt; &#12364;&#21547;&#12414;&#12428;&#12390;&#12362;&#12426;&#12289;&#26368;&#20302;&#38480;&#12398;&#24517;&#35201;&#12394;&#35373;&#23450;&#12418;&#26082;&#12395;&#32066;&#12360;&#12390;&#12356;&#12427;&#12290;&lt;/p&gt;

&lt;p&gt;&#20351;&#29992;&#12375;&#12390;&#12356;&#12427; TurnKey Linux &#12398;&#12496;&#12540;&#12472;&#12519;&#12531;&#12399;&#20197;&#19979;&#12398;&#36890;&#12426;&#12290;&lt;/p&gt;

&lt;pre class="shell"&gt;&lt;code class="language-shell"&gt;# cat /etc/turnkey_version
turnkey-tomcat-11.1-lucid-x86
# cat /etc/lsb-release 
DISTRIB_ID=Ubuntu
DISTRIB_RELEASE=10.04
DISTRIB_CODENAME=lucid
DISTRIB_DESCRIPTION="Ubuntu 10.04.1 LTS"
&lt;/code&gt;&lt;/pre&gt;

&lt;h3 id="openjdk--sun-java-"&gt;OpenJDK &#12363;&#12425; Sun Java &#12408;&#22793;&#26356;&lt;/h3&gt;

&lt;p&gt;&#12487;&#12501;&#12457;&#12523;&#12488;&#12391;&#12399;&#20197;&#19979;&#12398; Java &#29872;&#22659;&#12392;&#12394;&#12387;&#12390;&#12356;&#12427;&#12290;&lt;/p&gt;

&lt;pre class="shell"&gt;&lt;code class="language-shell"&gt;# java -version
java version "1.6.0_20"
OpenJDK Runtime Environment (IcedTea6 1.9.2) (6b20-1.9.2-0ubuntu1~10.04.1)
OpenJDK Client VM (build 19.0-b09, mixed mode, sharing)
&lt;/code&gt;&lt;/pre&gt;

&lt;p&gt;Sun Java &#12395;&#20999;&#12426;&#26367;&#12360;&#12427;&#12290;&lt;/p&gt;

&lt;p&gt;&#12414;&#12378;&#12399; Sun Java &#12398;&#12452;&#12531;&#12473;&#12488;&#12540;&#12523;&#12363;&#12425;&#12290;&lt;/p&gt;

&lt;p&gt;&#24517;&#35201;&#12394;&#12524;&#12509;&#12472;&#12488;&#12522;&#12477;&#12540;&#12473;&#12434;&#36861;&#21152;&#12375;&#12289;&#12450;&#12483;&#12503;&#12487;&#12540;&#12488;&#12375;&#12390;&#12362;&#12367;&#12290;&lt;/p&gt;

&lt;pre class="shell"&gt;&lt;code class="language-shell"&gt;# echo "deb http://archive.canonical.com/ lucid partner" &amp;gt;&amp;gt; /etc/apt/sources.list.d/sources.list
# apt-get update
&lt;/code&gt;&lt;/pre&gt;

&lt;p&gt;Sun Java &#12398;&#12452;&#12531;&#12473;&#12488;&#12540;&#12523;&#12290;&lt;/p&gt;

&lt;pre class="shell"&gt;&lt;code class="language-shell"&gt;# apt-get install sun-java6-jdk
&lt;/code&gt;&lt;/pre&gt;

&lt;p&gt;&#12487;&#12501;&#12457;&#12523;&#12488;&#12391;&#20351;&#29992;&#12373;&#12428;&#12427; Java &#12434; Sun Java &#12395;&#22793;&#26356;&#12375;&#12390;&#12362;&#12367;&#12290;&lt;/p&gt;

&lt;pre class="shell"&gt;&lt;code class="language-shell"&gt;# update-alternatives --config java
There are 2 choices for the alternative java (providing /usr/bin/java).

  Selection    Path                                      Priority   Status
------------------------------------------------------------
  0            /usr/lib/jvm/java-6-openjdk/jre/bin/java   1061      auto mode
* 1            /usr/lib/jvm/java-6-openjdk/jre/bin/java   1061      manual mode
  2            /usr/lib/jvm/java-6-sun/jre/bin/java       63        manual mode

Press enter to keep the current choice[*], or type selection number: 2
update-alternatives: using /usr/lib/jvm/java-6-sun/jre/bin/java to provide /usr/bin/java (java) in manual mode.
&lt;/code&gt;&lt;/pre&gt;

&lt;p&gt;&#8220;Press enter to keep the current choice[*], or type selection number:&#8221; &#12398;&#21839;&#12356;&#21512;&#12431;&#12379;&#12395; Sun Java &#12398; 2 &#12434;&#20837;&#21147;&#12375;&#12390;&#12356;&#12427;&#12290;&lt;/p&gt;

&lt;p&gt;&#30906;&#35469;&#12375;&#12390;&#12415;&#12427;&#12290;&lt;/p&gt;

&lt;pre class="shell"&gt;&lt;code class="language-shell"&gt;# java -version
java version "1.6.0_24"
Java(TM) SE Runtime Environment (build 1.6.0_24-b07)
Java HotSpot(TM) Client VM (build 19.1-b02, mixed mode, sharing)
&lt;/code&gt;&lt;/pre&gt;

&lt;p&gt;&#12392;&#12426;&#12354;&#12360;&#12378; OK &#12384;&#12364;&#12289;&lt;code&gt;JAVA_HOME&lt;/code&gt; &#12398;&#35373;&#23450;&#12418;&#22793;&#26356;&#12375;&#12390;&#12362;&#12367;&#12290;&lt;/p&gt;

&lt;pre class="shell"&gt;&lt;code class="language-shell"&gt;# echo $JAVA_HOME
/usr/lib/jvm/java-6-openjdk
&lt;/code&gt;&lt;/pre&gt;

&lt;p&gt;&#12414;&#12384; OpenJDK &#12398;&#26041;&#12434;&#21442;&#29031;&#12375;&#12390;&#12356;&#12427;&#12290;&#12371;&#12398;&#29872;&#22659;&#22793;&#25968;&#12434;&#35373;&#23450;&#12375;&#12390;&#12356;&#12427;&#12398;&#12399;&#12289;&lt;code&gt;/etc/environment&lt;/code&gt; &#12395;&#12394;&#12427;&#12290;&lt;code&gt;JAVA_HOME&lt;/code&gt; &#12398;&#20516;&#12434; &lt;code&gt;/usr/lib/jvm/java-6-sun&lt;/code&gt; &#12395;&#22793;&#26356;&#12375;&#12390;&#12362;&#12367;&#12290;&#22793;&#26356;&#31623;&#25152;&#12399;&#20197;&#19979;&#12398;&#36890;&#12426;&#12290;&lt;/p&gt;

&lt;pre class="shell"&gt;&lt;code class="language-shell"&gt;# git diff environment
diff --git a/environment b/environment
index 225ca6c..8c7937c 100644
--- a/environment
+++ b/environment
@@ -4,4 +4,4 @@ LC_ALL=C
 CATALINA_HOME="/usr/share/tomcat6"
 CATALINA_BASE="/var/lib/tomcat6"
 CATALINA_OPTS="-server -Xms384M -Xmx512M -XX:MaxPermSize=256M"
-JAVA_HOME="/usr/lib/jvm/java-6-openjdk"
+JAVA_HOME="/usr/lib/jvm/java-6-sun"
&lt;/code&gt;&lt;/pre&gt;

&lt;p&gt;&#12385;&#12394;&#12415;&#12395;&#12289;&#19978;&#35352;&#12391;&#12418;&#12431;&#12363;&#12427;&#12424;&#12358;&#12395;&#12289;TurnKey Linux &#12391;&#12399; &lt;code&gt;/etc&lt;/code&gt; &#37197;&#19979;&#12434; git &#12391;&#31649;&#29702;&#12375;&#12390;&#12356;&#12427;&#12290;&#22793;&#26356;&#23653;&#27508;&#12434;&#12461;&#12481;&#12531;&#12392;&#31649;&#29702;&#12391;&#12365;&#12427;&#12398;&#12391;&#23433;&#24515;&#12375;&#12390;&#35373;&#23450;&#22793;&#26356;&#12364;&#34892;&#12360;&#12427;&#12290;&lt;/p&gt;

&lt;p&gt;&#12414;&#12383;&#12289;&#12371;&#12398; &lt;code&gt;/etc/environment&lt;/code&gt; &#12395;&#12390;&#12525;&#12465;&#12540;&#12523;&#12398;&#35373;&#23450;&#12418;&#20837;&#12387;&#12390;&#12356;&#12427;&#12290;&#12525;&#12465;&#12540;&#12523;&#12398;&#35373;&#23450;&#12395;&#38306;&#12375;&#12390;&#12289;OS &#36215;&#21205;&#26178;&#12395; &lt;code&gt;/etc/default/locale&lt;/code&gt; &#12398;&#35373;&#23450;&#12391;&#19978;&#26360;&#12365;&#12373;&#12428;&#12427;&#12398;&#12391;&#12371;&#12398;&#12414;&#12414;&#12391;&#12418;&#12356;&#12356;&#12398;&#12384;&#12364;&#12289;&#12393;&#12371;&#12391;&#24746;&#12373;&#12377;&#12427;&#12363;&#12431;&#12363;&#12425;&#12394;&#12356;&#12398;&#12391;&#12289;&lt;code&gt;LANG&lt;/code&gt; &#12392; &lt;code&gt;LC_ALL&lt;/code&gt; &#12398;&#35373;&#23450;&#12418;&#22793;&#26356;&#12375;&#12390;&#12362;&#12367;&#12290;&lt;/p&gt;

&lt;p&gt;&#12525;&#12465;&#12540;&#12523;&#12398;&#22793;&#26356;&#12395;&#38306;&#12375;&#12390;&#12399;&#12289;&lt;/p&gt;

&lt;ul&gt;
  &lt;li&gt;&lt;a href="/2011/06/04/ubuntu-initial-setup-locale-timezone/"&gt;Ubuntu&#12469;&#12540;&#12496;&#26085;&#26412;&#21521;&#12369;&#29872;&#22659;&#12398;&#21021;&#26399;&#35373;&#23450; - &#12525;&#12465;&#12540;&#12523;&#12392;&#12479;&#12452;&#12512;&#12478;&#12540;&#12531;&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;&#12395;&#12418;&#35352;&#36617;&#12375;&#12390;&#12356;&#12427;&#12290;&lt;/p&gt;

&lt;p&gt;&#26368;&#32066;&#30340;&#12395; &lt;code&gt;/etc/environment&lt;/code&gt; &#12399;&#20197;&#19979;&#12398;&#20869;&#23481;&#12395;&#12394;&#12387;&#12390;&#12356;&#12427;&#12290;&lt;/p&gt;

&lt;pre class="shell"&gt;&lt;code class="language-shell"&gt;# cat /etc/environment
PATH="/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin:/usr/games"
LANG=ja_JP.UTF-8
LC_ALL=ja_JP.UTF-8
CATALINA_HOME="/usr/share/tomcat6"
CATALINA_BASE="/var/lib/tomcat6"
CATALINA_OPTS="-server -Xms384M -Xmx512M -XX:MaxPermSize=256M"
JAVA_HOME="/usr/lib/jvm/java-6-sun"
&lt;/code&gt;&lt;/pre&gt;

&lt;p&gt;&#22793;&#26356;&#12398;&#21453;&#26144;&#12399;&#12289;&#19968;&#26086;&#12471;&#12473;&#12486;&#12512;&#12434;&#20877;&#36215;&#21205;&#12375;&#12390;&#12362;&#12356;&#12383;&#26041;&#12364;&#23433;&#24515;&#12290;&lt;/p&gt;

&lt;p&gt;&#20197;&#19978;&#12391; OK&#12290;&lt;/p&gt;

&lt;h3 id="tomcat-"&gt;Tomcat &#20596;&#12398;&#35373;&#23450;&lt;/h3&gt;

&lt;p&gt;&#12371;&#12428;&#12414;&#12391;&#12398;&#20316;&#26989;&#12434;&#34892;&#12387;&#12390;&#12362;&#12369;&#12400;&#12289;&#29305;&#12395;&#24517;&#35201;&#12399;&#12394;&#12356;&#12290;&lt;/p&gt;

&lt;p&gt;&#24565;&#12398;&#28858;&#12395;&#30906;&#35469;&#12375;&#12390;&#12415;&#12427;&#12290;&lt;/p&gt;

&lt;pre class="shell"&gt;&lt;code class="language-shell"&gt;# /usr/share/tomcat6/bin/version.sh
Using CATALINA_BASE:   /var/lib/tomcat6
Using CATALINA_HOME:   /usr/share/tomcat6
Using CATALINA_TMPDIR: /var/lib/tomcat6/temp
Using JRE_HOME:        /usr/lib/jvm/java-6-sun
Using CLASSPATH:       /usr/share/tomcat6/bin/bootstrap.jar
Server version: Apache Tomcat/6.0.24
Server built:   December 10 2010 1755
Server number:  ...0
OS Name:        Linux
OS Version:     2.6.32-26-generic
Architecture:   i386
JVM Version:    1.6.0_24-b07
JVM Vendor:     Sun Microsystems Inc.
&lt;/code&gt;&lt;/pre&gt;

&lt;p&gt;&#20840;&#12390; Sun Java &#12395;&#20999;&#12426;&#26367;&#12431;&#12387;&#12390;&#12356;&#12427;&#12290;&lt;/p&gt;
</content>
    <summary type="html">&lt;p&gt;&#20309;&#12363;&#12392;&#20415;&#21033;&#12394;&#20206;&#24819;&#12450;&#12503;&#12521;&#12452;&#12450;&#12531;&#12473;&#12521;&#12452;&#12502;&#12521;&#12522;&#12290;&lt;/p&gt;

&lt;p&gt;&lt;a href="http://www.turnkeylinux.org/"&gt;TurnKey Linux&lt;/a&gt; &#12398;&#12418;&#12398;&#12434;&#12424;&#12367;&#20351;&#12431;&#12379;&#12390;&#12418;&#12425;&#12387;&#12390;&#12356;&#12427;&#12364;&#12289;Tomcat &#12398;&#12458;&#12540;&#12523;&#12452;&#12531;&#12527;&#12531;&#29872;&#22659;&#12434;&#25552;&#20379;&#12375;&#12390;&#12356;&#12427; Tomcat Applicance &#12391;&#12399;&#12289;JDK &#12399; OpenJDK &#12434;&#20351;&#12387;&#12390;&#12356;&#12427;&#12290;&#12371;&#12428;&#12434; Sun Java &#29872;&#22659;&#12395;&#22793;&#26356;&#12375;&#12289;&#20341;&#12379;&#12390; Tomcat &#12418; Sun Java &#12391;&#36215;&#21205;&#12377;&#12427;&#12424;&#12358;&#12395;&#22793;&#26356;&#12377;&#12427;&#12290;&lt;/p&gt;

&lt;ul&gt;
  &lt;li&gt;&lt;a href="http://www.turnkeylinux.org/tomcat"&gt;Standalone Tomcat Appliance - Java Servlet and JSP Platform TurnKey Linux Virtual Appliance Library&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;&lt;img src="http://cdn.turnkeylinux.org/files/images/icons/tomcat.jpg?1256737502" alt="Standalone Tomcat Appliance" /&gt;&lt;/p&gt;

&lt;p&gt;&#12371;&#12398;&#12450;&#12503;&#12521;&#12452;&#12450;&#12531;&#12473;&#12521;&#12452;&#12502;&#12521;&#12522;&#12395;&#12399;&#12487;&#12501;&#12457;&#12523;&#12488;&#12391; &lt;code&gt;Tomcat 6.0.24&lt;/code&gt; &#12392; &lt;code&gt;MySQL 5.1&lt;/code&gt; &#12364;&#21547;&#12414;&#12428;&#12390;&#12362;&#12426;&#12289;&#26368;&#20302;&#38480;&#12398;&#24517;&#35201;&#12394;&#35373;&#23450;&#12418;&#26082;&#12395;&#32066;&#12360;&#12390;&#12356;&#12427;&#12290;&lt;/p&gt;

&lt;p&gt;&#20351;&#29992;&#12375;&#12390;&#12356;&#12427; TurnKey Linux &#12398;&#12496;&#12540;&#12472;&#12519;&#12531;&#12399;&#20197;&#19979;&#12398;&#36890;&#12426;&#12290;&lt;/p&gt;

&lt;pre class="shell"&gt;&lt;code class="language-shell"&gt;# cat /etc/turnkey_version
turnkey-tomcat-11.1-lucid-x86
# cat /etc/lsb-release 
DISTRIB_ID=Ubuntu
DISTRIB_RELEASE=10.04
DISTRIB_CODENAME=lucid
DISTRIB_DESCRIPTION="Ubuntu 10.04.1 LTS"
&lt;/code&gt;&lt;/pre&gt;

&lt;h3 id="openjdk--sun-java-"&gt;OpenJDK &#12363;&#12425; Sun Java &#12408;&#22793;&#26356;&lt;/h3&gt;

&lt;p&gt;&#12487;&#12501;&#12457;&#12523;&#12488;&#12391;&#12399;&#20197;&#19979;&#12398; Java &#29872;&#22659;&#12392;&#12394;&#12387;&#12390;&#12356;&#12427;&#12290;&lt;/p&gt;

&lt;pre class="shell"&gt;&lt;code class="language-shell"&gt;# java -version
java version "1.6.0_20"
OpenJDK Runtime Environment (IcedTea6 1.9.2) (6b20-1.9.2-0ubuntu1~10.04.1)
OpenJDK Client VM (build 19.0-b09, mixed mode, sharing)
&lt;/code&gt;&lt;/pre&gt;

&lt;p&gt;Sun Java &#12395;&#20999;&#12426;&#26367;&#12360;&#12427;&#12290;&lt;/p&gt;

&lt;p&gt;&#12414;&#12378;&#12399; Sun Java &#12398;&#12452;&#12531;&#12473;&#12488;&#12540;&#12523;&#12363;&#12425;&#12290;&lt;/p&gt;

&lt;p&gt;&#24517;&#35201;&#12394;&#12524;&#12509;&#12472;&#12488;&#12522;&#12477;&#12540;&#12473;&#12434;&#36861;&#21152;&#12375;&#12289;&#12450;&#12483;&#12503;&#12487;&#12540;&#12488;&#12375;&#12390;&#12362;&#12367;&#12290;&lt;/p&gt;

&lt;pre class="shell"&gt;&lt;code class="language-shell"&gt;# echo "deb http://archive.canonical.com/ lucid partner" &amp;gt;&amp;gt; /etc/apt/sources.list.d/sources.list
# apt-get update
&lt;/code&gt;&lt;/pre&gt;

&lt;p&gt;Sun Java &#12398;&#12452;&#12531;&#12473;&#12488;&#12540;&#12523;&#12290;&lt;/p&gt;

&lt;pre class="shell"&gt;&lt;code class="language-shell"&gt;# apt-get install sun-java6-jdk
&lt;/code&gt;&lt;/pre&gt;

&lt;p&gt;&#12487;&#12501;&#12457;&#12523;&#12488;&#12391;&#20351;&#29992;&#12373;&#12428;&#12427; Java &#12434; Sun Java &#12395;&#22793;&#26356;&#12375;&#12390;&#12362;&#12367;&#12290;&lt;/p&gt;

&lt;pre class="shell"&gt;&lt;code class="language-shell"&gt;# update-alternatives --config java
There are 2 choices for the alternative java (providing /usr/bin/java).

  Selection    Path                                      Priority   Status
------------------------------------------------------------
  0            /usr/lib/jvm/java-6-openjdk/jre/bin/java   1061      auto mode
* 1            /usr/lib/jvm/java-6-openjdk/jre/bin/java   1061      manual mode
  2            /usr/lib/jvm/java-6-sun/jre/bin/java       63        manual mode

Press enter to keep the current choice[*], or type selection number: 2
update-alternatives: using /usr/lib/jvm/java-6-sun/jre/bin/java to provide /usr/bin/java (java) in manual mode.
&lt;/code&gt;&lt;/pre&gt;

&lt;p&gt;&#8220;Press enter to keep the current choice[*], or type selection number:&#8221; &#12398;&#21839;&#12356;&#21512;&#12431;&#12379;&#12395; Sun Java &#12398; 2 &#12434;&#20837;&#21147;&#12375;&#12390;&#12356;&#12427;&#12290;&lt;/p&gt;

&lt;p&gt;&#30906;&#35469;&#12375;&#12390;&#12415;&#12427;&#12290;&lt;/p&gt;

&lt;pre class="shell"&gt;&lt;code class="language-shell"&gt;# java -version
java version "1.6.0_24"
Java(TM) SE Runtime Environment (build 1.6.0_24-b07)
Java HotSpot(TM) Client VM (build 19.1-b02, mixed mode, sharing)
&lt;/code&gt;&lt;/pre&gt;

&lt;p&gt;&#12392;&#12426;&#12354;&#12360;&#12378; OK &#12384;&#12364;&#12289;&lt;code&gt;JAVA_HOME&lt;/code&gt; &#12398;&#35373;&#23450;&#12418;&#22793;&#26356;&#12375;&#12390;&#12362;&#12367;&#12290;&lt;/p&gt;

&lt;pre class="shell"&gt;&lt;code class="language-shell"&gt;# echo $JAVA_HOME
/usr/lib/jvm/java-6-openjdk
&lt;/code&gt;&lt;/pre&gt;

&lt;p&gt;&#12414;&#12384; OpenJDK &#12398;&#26041;&#12434;&#21442;&#29031;&#12375;&#12390;&#12356;&#12427;&#12290;&#12371;&#12398;&#29872;&#22659;&#22793;&#25968;&#12434;&#35373;&#23450;&#12375;&#12390;&#12356;&#12427;&#12398;&#12399;&#12289;&lt;code&gt;/etc/environment&lt;/code&gt; &#12395;&#12394;&#12427;&#12290;&lt;code&gt;JAVA_HOME&lt;/code&gt; &#12398;&#20516;&#12434; &lt;code&gt;/usr/lib/jvm/java-6-sun&lt;/code&gt; &#12395;&#22793;&#26356;&#12375;&#12390;&#12362;&#12367;&#12290;&#22793;&#26356;&#31623;&#25152;&#12399;&#20197;&#19979;&#12398;&#36890;&#12426;&#12290;&lt;/p&gt;

&lt;pre class="shell"&gt;&lt;code class="language-shell"&gt;# git diff environment
diff --git a/environment b/environment
index 225ca6c..8c7937c 100644
--- a/environment
+++ b/environment
@@ -4,4 +4,4 @@ LC_ALL=C
 CATALINA_HOME="/usr/share/tomcat6"
 CATALINA_BASE="/var/lib/tomcat6"
 CATALINA_OPTS="-server -Xms384M -Xmx512M -XX:MaxPermSize=256M"
-JAVA_HOME="/usr/lib/jvm/java-6-openjdk"
+JAVA_HOME="/usr/lib/jvm/java-6-sun"
&lt;/code&gt;&lt;/pre&gt;

&lt;p&gt;&#12385;&#12394;&#12415;&#12395;&#12289;&#19978;&#35352;&#12391;&#12418;&#12431;&#12363;&#12427;&#12424;&#12358;&#12395;&#12289;TurnKey Linux &#12391;&#12399; &lt;code&gt;/etc&lt;/code&gt; &#37197;&#19979;&#12434; git &#12391;&#31649;&#29702;&#12375;&#12390;&#12356;&#12427;&#12290;&#22793;&#26356;&#23653;&#27508;&#12434;&#12461;&#12481;&#12531;&#12392;&#31649;&#29702;&#12391;&#12365;&#12427;&#12398;&#12391;&#23433;&#24515;&#12375;&#12390;&#35373;&#23450;&#22793;&#26356;&#12364;&#34892;&#12360;&#12427;&#12290;&lt;/p&gt;

&lt;p&gt;&#12414;&#12383;&#12289;&#12371;&#12398; &lt;code&gt;/etc/environment&lt;/code&gt; &#12395;&#12390;&#12525;&#12465;&#12540;&#12523;&#12398;&#35373;&#23450;&#12418;&#20837;&#12387;&#12390;&#12356;&#12427;&#12290;&#12525;&#12465;&#12540;&#12523;&#12398;&#35373;&#23450;&#12395;&#38306;&#12375;&#12390;&#12289;OS &#36215;&#21205;&#26178;&#12395; &lt;code&gt;/etc/default/locale&lt;/code&gt; &#12398;&#35373;&#23450;&#12391;&#19978;&#26360;&#12365;&#12373;&#12428;&#12427;&#12398;&#12391;&#12371;&#12398;&#12414;&#12414;&#12391;&#12418;&#12356;&#12356;&#12398;&#12384;&#12364;&#12289;&#12393;&#12371;&#12391;&#24746;&#12373;&#12377;&#12427;&#12363;&#12431;&#12363;&#12425;&#12394;&#12356;&#12398;&#12391;&#12289;&lt;code&gt;LANG&lt;/code&gt; &#12392; &lt;code&gt;LC_ALL&lt;/code&gt; &#12398;&#35373;&#23450;&#12418;&#22793;&#26356;&#12375;&#12390;&#12362;&#12367;&#12290;&lt;/p&gt;

&lt;p&gt;&#12525;&#12465;&#12540;&#12523;&#12398;&#22793;&#26356;&#12395;&#38306;&#12375;&#12390;&#12399;&#12289;&lt;/p&gt;

&lt;ul&gt;
  &lt;li&gt;&lt;a href="/2011/06/04/ubuntu-initial-setup-locale-timezone/"&gt;Ubuntu&#12469;&#12540;&#12496;&#26085;&#26412;&#21521;&#12369;&#29872;&#22659;&#12398;&#21021;&#26399;&#35373;&#23450; - &#12525;&#12465;&#12540;&#12523;&#12392;&#12479;&#12452;&#12512;&#12478;&#12540;&#12531;&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;&#12395;&#12418;&#35352;&#36617;&#12375;&#12390;&#12356;&#12427;&#12290;&lt;/p&gt;

&lt;p&gt;&#26368;&#32066;&#30340;&#12395; &lt;code&gt;/etc/environment&lt;/code&gt; &#12399;&#20197;&#19979;&#12398;&#20869;&#23481;&#12395;&#12394;&#12387;&#12390;&#12356;&#12427;&#12290;&lt;/p&gt;

&lt;pre class="shell"&gt;&lt;code class="language-shell"&gt;# cat /etc/environment
PATH="/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin:/usr/games"
LANG=ja_JP.UTF-8
LC_ALL=ja_JP.UTF-8
CATALINA_HOME="/usr/share/tomcat6"
CATALINA_BASE="/var/lib/tomcat6"
CATALINA_OPTS="-server -Xms384M -Xmx512M -XX:MaxPermSize=256M"
JAVA_HOME="/usr/lib/jvm/java-6-sun"
&lt;/code&gt;&lt;/pre&gt;

&lt;p&gt;&#22793;&#26356;&#12398;&#21453;&#26144;&#12399;&#12289;&#19968;&#26086;&#12471;&#12473;&#12486;&#12512;&#12434;&#20877;&#36215;&#21205;&#12375;&#12390;&#12362;&#12356;&#12383;&#26041;&#12364;&#23433;&#24515;&#12290;&lt;/p&gt;

&lt;p&gt;&#20197;&#19978;&#12391; OK&#12290;&lt;/p&gt;

&lt;h3 id="tomcat-"&gt;Tomcat &#20596;&#12398;&#35373;&#23450;&lt;/h3&gt;

&lt;p&gt;&#12371;&#12428;&#12414;&#12391;&#12398;&#20316;&#26989;&#12434;&#34892;&#12387;&#12390;&#12362;&#12369;&#12400;&#12289;&#29305;&#12395;&#24517;&#35201;&#12399;&#12394;&#12356;&#12290;&lt;/p&gt;

&lt;p&gt;&#24565;&#12398;&#28858;&#12395;&#30906;&#35469;&#12375;&#12390;&#12415;&#12427;&#12290;&lt;/p&gt;

&lt;pre class="shell"&gt;&lt;code class="language-shell"&gt;# /usr/share/tomcat6/bin/version.sh
Using CATALINA_BASE:   /var/lib/tomcat6
Using CATALINA_HOME:   /usr/share/tomcat6
Using CATALINA_TMPDIR: /var/lib/tomcat6/temp
Using JRE_HOME:        /usr/lib/jvm/java-6-sun
Using CLASSPATH:       /usr/share/tomcat6/bin/bootstrap.jar
Server version: Apache Tomcat/6.0.24
Server built:   December 10 2010 1755
Server number:  ...0
OS Name:        Linux
OS Version:     2.6.32-26-generic
Architecture:   i386
JVM Version:    1.6.0_24-b07
JVM Vendor:     Sun Microsystems Inc.
&lt;/code&gt;&lt;/pre&gt;

&lt;p&gt;&#20840;&#12390; Sun Java &#12395;&#20999;&#12426;&#26367;&#12431;&#12387;&#12390;&#12356;&#12427;&#12290;&lt;/p&gt;
</summary>
  </entry>
  <entry>
    <id>tag:blog.designrecipe.jp,2011-06-04:/2011/06/04/ubuntu-initial-setup-locale-timezone/</id>
    <title type="html">Ubuntu&#12469;&#12540;&#12496;&#26085;&#26412;&#21521;&#12369;&#29872;&#22659;&#12398;&#21021;&#26399;&#35373;&#23450; - &#12525;&#12465;&#12540;&#12523;&#12392;&#12479;&#12452;&#12512;&#12478;&#12540;&#12531;</title>
    <published>2011-06-04T14:40:00Z</published>
    <updated>2011-06-04T14:40:00Z</updated>
    <link rel="alternate" href="http://blog.designrecipe.jp/2011/06/04/ubuntu-initial-setup-locale-timezone/"/>
    <content type="html">&lt;p&gt;Ubuntu &#12384;&#12369;&#12395;&#38480;&#12387;&#12383;&#35441;&#12391;&#12399;&#12394;&#12356;&#12364;&#12289;&#28023;&#22806;&#12398; IaaS &#12469;&#12540;&#12499;&#12473;(EC2&#12394;&#12393;)&#12420;&#20206;&#24819;&#23554;&#29992;&#12469;&#12540;&#12496;(VPS)&#12434;&#20351;&#12358;&#38555;&#12395;&#12289;&#12525;&#12465;&#12540;&#12523;&#12420;&#12479;&#12452;&#12512;&#12478;&#12540;&#12531;&#12434;&#26085;&#26412;&#21521;&#12369;&#12398;&#29872;&#22659;&#12395;&#22793;&#26356;&#12375;&#12390;&#12362;&#12367;&#24517;&#35201;&#12364;&#12354;&#12427;&#22580;&#21512;&#12364;&#12354;&#12427;&#12290;&lt;/p&gt;

&lt;p&gt;&#12371;&#12371;&#12391;&#12399;&#12381;&#12398;&#31777;&#21336;&#12394;&#25163;&#38918;&#12434;&#12513;&#12514;&#12375;&#12390;&#12362;&#12367;&#12290;&lt;/p&gt;

&lt;p&gt;&#29872;&#22659;&#12399;&#12289;Ubuntu 10.04 LTS Server (&#21427;&#23494;&#12395;&#12399;&#12289;&lt;a href="http://www.turnkeylinux.org/"&gt;TurnKey Linux&lt;/a&gt;)&#12290;&lt;/p&gt;

&lt;h3 id="section"&gt;&#12525;&#12465;&#12540;&#12523;&#12398;&#22793;&#26356;&lt;/h3&gt;

&lt;p&gt;&#12414;&#12378;&#12399;&#12525;&#12465;&#12540;&#12523;&#12290;&#20197;&#19979;&#12398;&#29366;&#27841;&#12392;&#12394;&#12387;&#12390;&#12356;&#12427;&#12290;&lt;/p&gt;

&lt;pre class="shell"&gt;&lt;code class="language-shell"&gt;# locale
LANG=en_GB
LC_CTYPE="C"
LC_NUMERIC="C"
LC_TIME="C"
LC_COLLATE="C"
LC_MONETARY="C"
LC_MESSAGES="C"
LC_PAPER="C"
LC_NAME="C"
LC_ADDRESS="C"
LC_TELEPHONE="C"
LC_MEASUREMENT="C"
LC_IDENTIFICATION="C"
LC_ALL=C
# cat /etc/default/locale
LANG=en_GB
&lt;/code&gt;&lt;/pre&gt;

&lt;p&gt;&#26085;&#26412;&#35486;&#12398; Language support package &#12434;&#12452;&#12531;&#12473;&#12488;&#12540;&#12523;&#12375;&#12289;&#12525;&#12465;&#12540;&#12523;&#12434;&#12450;&#12483;&#12503;&#12487;&#12540;&#12488;&#12377;&#12427;&#12290;&lt;/p&gt;

&lt;pre class="shell"&gt;&lt;code class="language-shell"&gt;# apt-get install language-support-ja
...(&#12452;&#12531;&#12473;&#12488;&#12540;&#12523;&#12525;&#12464;&#12399;&#30465;&#30053;)...
# dpkg-reconfigure locales
Generating locales...
  en_GB.ISO-8859-1... done
  ja_JP.UTF-8... up-to-date
Generation complete.
# update-locale LANG=ja_JP.UTF-8
&lt;/code&gt;&lt;/pre&gt;

&lt;p&gt;&#19978;&#35352;&#12398;&#20316;&#26989;&#12391;&#22522;&#26412; OK&#12290;&lt;/p&gt;

&lt;pre class="shell"&gt;&lt;code class="language-shell"&gt;# cat /etc/default/locale
LANG=ja_JP.UTF-8
&lt;/code&gt;&lt;/pre&gt;

&lt;p&gt;&lt;code&gt;/etc/default/locale&lt;/code&gt; &#12418;&#22793;&#26356;&#12373;&#12428;&#12390;&#12356;&#12427;&#12290;&#12383;&#12384;&#12289;&#12371;&#12428;&#12384;&#12369;&#12391;&#12399;&#12289;&lt;code&gt;LC_xxx&lt;/code&gt; &#31995;&#12398;&#29872;&#22659;&#22793;&#25968;&#12414;&#12391;&#12399;&#22793;&#12431;&#12425;&#12394;&#12356;&#12290;&lt;/p&gt;

&lt;p&gt;&lt;code&gt;/etc/default/locale&lt;/code&gt; &#12395; &lt;code&gt;LC_ALL=ja_JP.UTF-8&lt;/code&gt; &#12418;&#36861;&#21152;&#12375;&#12390;&#12362;&#12367;&#12290;&lt;/p&gt;

&lt;pre class="shell"&gt;&lt;code class="language-shell"&gt;# echo "LC_ALL=ja_JP.UTF-8" &amp;gt;&amp;gt; /etc/default/locale
# cat /etc/default/locale
LANG=ja_JP.UTF-8
LC_ALL=ja_JP.UTF-8
&lt;/code&gt;&lt;/pre&gt;

&lt;p&gt;&#12371;&#12371;&#12391;&#19968;&#26086; reboot &#12434;&#12363;&#12369;&#12390;&#12362;&#12367;&#12290;&lt;/p&gt;

&lt;pre class="shell"&gt;&lt;code class="language-shell"&gt;# shutdown -r now
&lt;/code&gt;&lt;/pre&gt;

&lt;p&gt;&#30906;&#35469;&#12377;&#12427;&#12290;&lt;/p&gt;

&lt;pre class="shell"&gt;&lt;code class="language-shell"&gt;# locale
LANG=ja_JP.UTF-8
LC_CTYPE="ja_JP.UTF-8"
LC_NUMERIC="ja_JP.UTF-8"
LC_TIME="ja_JP.UTF-8"
LC_COLLATE="ja_JP.UTF-8"
LC_MONETARY="ja_JP.UTF-8"
LC_MESSAGES="ja_JP.UTF-8"
LC_PAPER="ja_JP.UTF-8"
LC_NAME="ja_JP.UTF-8"
LC_ADDRESS="ja_JP.UTF-8"
LC_TELEPHONE="ja_JP.UTF-8"
LC_MEASUREMENT="ja_JP.UTF-8"
LC_IDENTIFICATION="ja_JP.UTF-8"
LC_ALL=ja_JP.UTF-8
&lt;/code&gt;&lt;/pre&gt;

&lt;p&gt;OK &#12384;&#12290;&lt;/p&gt;

&lt;h3 id="section-1"&gt;&#12479;&#12452;&#12512;&#12478;&#12540;&#12531;&#12398;&#22793;&#26356;&lt;/h3&gt;

&lt;p&gt;&#27425;&#12395;&#12479;&#12452;&#12512;&#12478;&#12540;&#12531;&#12290;&#20197;&#19979;&#12398;&#29366;&#27841;&#12392;&#12394;&#12387;&#12390;&#12356;&#12427;&#12290;&lt;/p&gt;

&lt;pre class="shell"&gt;&lt;code class="language-shell"&gt;# date
2011&#24180;  6&#26376;  4&#26085; &#22303;&#26332;&#26085; 14:20:49 UTC
&lt;/code&gt;&lt;/pre&gt;

&lt;p&gt;GUI &#12391;&#22793;&#12360;&#12427;&#26041;&#27861;&#12418;&#12354;&#12427;&#12364;&#12289;&#20197;&#19979;&#12391;&#12420;&#12387;&#12390;&#12375;&#12414;&#12358;&#12290;&lt;/p&gt;

&lt;pre class="shell"&gt;&lt;code class="language-shell"&gt;# mv /etc/localtime{,.org}
# ln -s /usr/share/zoneinfo/Asia/Tokyo /etc/localtime
&lt;/code&gt;&lt;/pre&gt;

&lt;p&gt;&#30906;&#35469;&#12377;&#12427;&#12290;&lt;/p&gt;

&lt;pre class="shell"&gt;&lt;code class="language-shell"&gt;# date
2011&#24180;  6&#26376;  4&#26085; &#22303;&#26332;&#26085; 23:22:10 JST
&lt;/code&gt;&lt;/pre&gt;

&lt;p&gt;OK &#12384;&#12290;&lt;/p&gt;
</content>
    <summary type="html">&lt;p&gt;Ubuntu &#12384;&#12369;&#12395;&#38480;&#12387;&#12383;&#35441;&#12391;&#12399;&#12394;&#12356;&#12364;&#12289;&#28023;&#22806;&#12398; IaaS &#12469;&#12540;&#12499;&#12473;(EC2&#12394;&#12393;)&#12420;&#20206;&#24819;&#23554;&#29992;&#12469;&#12540;&#12496;(VPS)&#12434;&#20351;&#12358;&#38555;&#12395;&#12289;&#12525;&#12465;&#12540;&#12523;&#12420;&#12479;&#12452;&#12512;&#12478;&#12540;&#12531;&#12434;&#26085;&#26412;&#21521;&#12369;&#12398;&#29872;&#22659;&#12395;&#22793;&#26356;&#12375;&#12390;&#12362;&#12367;&#24517;&#35201;&#12364;&#12354;&#12427;&#22580;&#21512;&#12364;&#12354;&#12427;&#12290;&lt;/p&gt;

&lt;p&gt;&#12371;&#12371;&#12391;&#12399;&#12381;&#12398;&#31777;&#21336;&#12394;&#25163;&#38918;&#12434;&#12513;&#12514;&#12375;&#12390;&#12362;&#12367;&#12290;&lt;/p&gt;

&lt;p&gt;&#29872;&#22659;&#12399;&#12289;Ubuntu 10.04 LTS Server (&#21427;&#23494;&#12395;&#12399;&#12289;&lt;a href="http://www.turnkeylinux.org/"&gt;TurnKey Linux&lt;/a&gt;)&#12290;&lt;/p&gt;

&lt;h3 id="section"&gt;&#12525;&#12465;&#12540;&#12523;&#12398;&#22793;&#26356;&lt;/h3&gt;

&lt;p&gt;&#12414;&#12378;&#12399;&#12525;&#12465;&#12540;&#12523;&#12290;&#20197;&#19979;&#12398;&#29366;&#27841;&#12392;&#12394;&#12387;&#12390;&#12356;&#12427;&#12290;&lt;/p&gt;

&lt;pre class="shell"&gt;&lt;code class="language-shell"&gt;# locale
LANG=en_GB
LC_CTYPE="C"
LC_NUMERIC="C"
LC_TIME="C"
LC_COLLATE="C"
LC_MONETARY="C"
LC_MESSAGES="C"
LC_PAPER="C"
LC_NAME="C"
LC_ADDRESS="C"
LC_TELEPHONE="C"
LC_MEASUREMENT="C"
LC_IDENTIFICATION="C"
LC_ALL=C
# cat /etc/default/locale
LANG=en_GB
&lt;/code&gt;&lt;/pre&gt;

&lt;p&gt;&#26085;&#26412;&#35486;&#12398; Language support package &#12434;&#12452;&#12531;&#12473;&#12488;&#12540;&#12523;&#12375;&#12289;&#12525;&#12465;&#12540;&#12523;&#12434;&#12450;&#12483;&#12503;&#12487;&#12540;&#12488;&#12377;&#12427;&#12290;&lt;/p&gt;

&lt;pre class="shell"&gt;&lt;code class="language-shell"&gt;# apt-get install language-support-ja
...(&#12452;&#12531;&#12473;&#12488;&#12540;&#12523;&#12525;&#12464;&#12399;&#30465;&#30053;)...
# dpkg-reconfigure locales
Generating locales...
  en_GB.ISO-8859-1... done
  ja_JP.UTF-8... up-to-date
Generation complete.
# update-locale LANG=ja_JP.UTF-8
&lt;/code&gt;&lt;/pre&gt;

&lt;p&gt;&#19978;&#35352;&#12398;&#20316;&#26989;&#12391;&#22522;&#26412; OK&#12290;&lt;/p&gt;

&lt;pre class="shell"&gt;&lt;code class="language-shell"&gt;# cat /etc/default/locale
LANG=ja_JP.UTF-8
&lt;/code&gt;&lt;/pre&gt;

&lt;p&gt;&lt;code&gt;/etc/default/locale&lt;/code&gt; &#12418;&#22793;&#26356;&#12373;&#12428;&#12390;&#12356;&#12427;&#12290;&#12383;&#12384;&#12289;&#12371;&#12428;&#12384;&#12369;&#12391;&#12399;&#12289;&lt;code&gt;LC_xxx&lt;/code&gt; &#31995;&#12398;&#29872;&#22659;&#22793;&#25968;&#12414;&#12391;&#12399;&#22793;&#12431;&#12425;&#12394;&#12356;&#12290;&lt;/p&gt;

&lt;p&gt;&lt;code&gt;/etc/default/locale&lt;/code&gt; &#12395; &lt;code&gt;LC_ALL=ja_JP.UTF-8&lt;/code&gt; &#12418;&#36861;&#21152;&#12375;&#12390;&#12362;&#12367;&#12290;&lt;/p&gt;

&lt;pre class="shell"&gt;&lt;code class="language-shell"&gt;# echo "LC_ALL=ja_JP.UTF-8" &amp;gt;&amp;gt; /etc/default/locale
# cat /etc/default/locale
LANG=ja_JP.UTF-8
LC_ALL=ja_JP.UTF-8
&lt;/code&gt;&lt;/pre&gt;

&lt;p&gt;&#12371;&#12371;&#12391;&#19968;&#26086; reboot &#12434;&#12363;&#12369;&#12390;&#12362;&#12367;&#12290;&lt;/p&gt;

&lt;pre class="shell"&gt;&lt;code class="language-shell"&gt;# shutdown -r now
&lt;/code&gt;&lt;/pre&gt;

&lt;p&gt;&#30906;&#35469;&#12377;&#12427;&#12290;&lt;/p&gt;

&lt;pre class="shell"&gt;&lt;code class="language-shell"&gt;# locale
LANG=ja_JP.UTF-8
LC_CTYPE="ja_JP.UTF-8"
LC_NUMERIC="ja_JP.UTF-8"
LC_TIME="ja_JP.UTF-8"
LC_COLLATE="ja_JP.UTF-8"
LC_MONETARY="ja_JP.UTF-8"
LC_MESSAGES="ja_JP.UTF-8"
LC_PAPER="ja_JP.UTF-8"
LC_NAME="ja_JP.UTF-8"
LC_ADDRESS="ja_JP.UTF-8"
LC_TELEPHONE="ja_JP.UTF-8"
LC_MEASUREMENT="ja_JP.UTF-8"
LC_IDENTIFICATION="ja_JP.UTF-8"
LC_ALL=ja_JP.UTF-8
&lt;/code&gt;&lt;/pre&gt;

&lt;p&gt;OK &#12384;&#12290;&lt;/p&gt;

&lt;h3 id="section-1"&gt;&#12479;&#12452;&#12512;&#12478;&#12540;&#12531;&#12398;&#22793;&#26356;&lt;/h3&gt;

&lt;p&gt;&#27425;&#12395;&#12479;&#12452;&#12512;&#12478;&#12540;&#12531;&#12290;&#20197;&#19979;&#12398;&#29366;&#27841;&#12392;&#12394;&#12387;&#12390;&#12356;&#12427;&#12290;&lt;/p&gt;

&lt;pre class="shell"&gt;&lt;code class="language-shell"&gt;# date
2011&#24180;  6&#26376;  4&#26085; &#22303;&#26332;&#26085; 14:20:49 UTC
&lt;/code&gt;&lt;/pre&gt;

&lt;p&gt;GUI &#12391;&#22793;&#12360;&#12427;&#26041;&#27861;&#12418;&#12354;&#12427;&#12364;&#12289;&#20197;&#19979;&#12391;&#12420;&#12387;&#12390;&#12375;&#12414;&#12358;&#12290;&lt;/p&gt;

&lt;pre class="shell"&gt;&lt;code class="language-shell"&gt;# mv /etc/localtime{,.org}
# ln -s /usr/share/zoneinfo/Asia/Tokyo /etc/localtime
&lt;/code&gt;&lt;/pre&gt;

&lt;p&gt;&#30906;&#35469;&#12377;&#12427;&#12290;&lt;/p&gt;

&lt;pre class="shell"&gt;&lt;code class="language-shell"&gt;# date
2011&#24180;  6&#26376;  4&#26085; &#22303;&#26332;&#26085; 23:22:10 JST
&lt;/code&gt;&lt;/pre&gt;

&lt;p&gt;OK &#12384;&#12290;&lt;/p&gt;
</summary>
  </entry>
  <entry>
    <id>tag:blog.designrecipe.jp,2011-05-15:/2011/05/15/refinerycms-testing-memo/</id>
    <title type="html">Refinery CMS (Rails) &#12391;&#12398;&#12486;&#12473;&#12488;&#29872;&#22659;</title>
    <published>2011-05-15T10:01:00Z</published>
    <updated>2011-05-15T10:01:00Z</updated>
    <link rel="alternate" href="http://blog.designrecipe.jp/2011/05/15/refinerycms-testing-memo/"/>
    <content type="html">&lt;p&gt;&lt;a href="http://refinerycms.com/"&gt;Refinery CMS&lt;/a&gt; &#12392;&#12356;&#12358;&#12398;&#12399;&#12289;Rails &#12434;&#12505;&#12540;&#12473;&#12395;&#12375;&#12383; CMS&#12290;&lt;br /&gt;
&#20844;&#24335;&#12469;&#12452;&#12488;&#12395;&#12418;&#12486;&#12473;&#12488;&#12395;&#38306;&#12377;&#12427;&#12460;&#12452;&#12489;&#12399;&#12354;&#12427;&#12398;&#12384;&#12364;&#12289;&#12486;&#12473;&#12488;&#12434;&#38283;&#22987;&#12377;&#12427;&#21069;&#12398;&#28310;&#20633;&#12398;&#35352;&#36617;&#12364;&#12394;&#12356;&#12398;&#12391;&#12513;&#12514;&#12375;&#12390;&#12362;&#12367;&#12290;&lt;/p&gt;

&lt;ul&gt;
  &lt;li&gt;&lt;a href="http://refinerycms.com/guides/how-to-test-refinery"&gt;How to test Refinery - Guides - Refinery CMS&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;&#12381;&#12418;&#12381;&#12418;&#12289;Refinery CMS &#12399; CMS &#12394;&#12398;&#12391;&#12289;Refinery CMS &#33258;&#20307;&#12398;&#12486;&#12473;&#12488;&#12434;&#23455;&#26045;&#12377;&#12427;&#24517;&#35201;&#12364;&#12354;&#12427;&#12398;&#65311;&#12392;&#12356;&#12358;&#35441;&#12418;&#12354;&#12427;&#12363;&#12418;&#12375;&#12428;&#12394;&#12356;&#12364;&#12289;
Refinery CMS &#12399;&#26082;&#23384;&#12398;&#21205;&#20316;&#12434; override &#12391;&#12365;&#12383;&#12426;&#12289;&#36890;&#24120;&#12398; Rails &#12450;&#12503;&#12522;&#12398;&#24863;&#35226;&#12391;&#25313;&#24373;&#12391;&#12365;&#12383;&#12426;&#12289;&#12399;&#12383;&#12414;&#12383; engine &#12398;&#20181;&#32068;&#12415;&#12434;&#20351;&#12387;&#12390;&#24517;&#35201;&#12394;&#27231;&#33021;&#12434;&#25313;&#24373;&#12375;&#12390;&#12356;&#12369;&#12427;&#12290;&lt;/p&gt;

&lt;p&gt;&#12356;&#12429;&#12356;&#12429;&#25163;&#12434;&#12356;&#12428;&#12390;&#12356;&#12367;&#12392;&#26032;&#12383;&#12395;&#36861;&#21152;&#12375;&#12383;&#37096;&#20998;&#12384;&#12369;&#12391;&#12394;&#12367;&#12289;&#26082;&#23384;&#12398;&#29872;&#22659;&#12434;&#22730;&#12375;&#12390;&#12356;&#12394;&#12356;&#12424;&#12397;&#65311;&#12392;&#30906;&#35469;&#12375;&#12383;&#12367;&#12394;&#12427;&#12418;&#12398;&#12290;&#26082;&#23384;&#29872;&#22659;&#12398;&#12486;&#12473;&#12488;&#12434;&#12391;&#12365;&#12427;&#29366;&#24907;&#12395;&#12399;&#12375;&#12390;&#12362;&#12365;&#12383;&#12356;&#12290;&lt;/p&gt;

&lt;p&gt;&#12486;&#12473;&#12488;&#29872;&#22659;&#12398;&#27083;&#31689;&#12395;&#12399;&#12289;Refinery CMS &#29420;&#33258;&#12398;&#37096;&#20998;&#12392; Rails &#12503;&#12525;&#12472;&#12455;&#12463;&#12488;&#20849;&#36890;&#12398;&#37096;&#20998;&#12392;&#12364;&#12354;&#12426;&#12289;&#20808;&#12395; Refinery CMS &#29420;&#33258;&#12398;&#12475;&#12483;&#12488;&#12450;&#12483;&#12503;&#12434;&#34892;&#12356;&#12289;&#26356;&#12395;&#29872;&#22659;&#12398;&#12459;&#12452;&#12476;&#12531;&#12398;&#12383;&#12417;&#12398;&#12475;&#12483;&#12488;&#12450;&#12483;&#12503;&#12434;&#24190;&#12388;&#12363;&#34892;&#12358;&#12290;&lt;/p&gt;

&lt;p&gt;&#12394;&#12362;&#12289;&#12371;&#12371;&#12391;&#35352;&#36617;&#12375;&#12390;&#12356;&#12427;&#20869;&#23481;&#12399; Refinery CMS &#12399; 0.9.9.21 &#12434;&#12289;Rails &#12399; v3.0.7 &#12434;&#20351;&#29992;&#12375;&#12390;&#12356;&#12427;&#12290;&lt;/p&gt;

&lt;h3 id="refinery-cms-"&gt;Refinery CMS &#12486;&#12473;&#12488;&#29872;&#22659;&#12398;&#28310;&#20633;&lt;/h3&gt;

&lt;p&gt;&#12414;&#12378;&#12399;&#12289;Refinery CMS &#29420;&#33258;&#12398;&#37096;&#20998;&#12290;&lt;/p&gt;

&lt;p&gt;Refinery CMS &#33258;&#20307;&#12399; gem &#12391;&#12452;&#12531;&#12473;&#12488;&#12540;&#12523;&#12373;&#12428;&#12289;&#23455;&#34892;&#26178;&#12395;&#12399; gem &#12398;&#12521;&#12452;&#12502;&#12521;&#12522;&#12364;&#20351;&#29992;&#12373;&#12428;&#12427;&#12290;&#20316;&#25104;&#12373;&#12428;&#12383;&#12503;&#12525;&#12472;&#12455;&#12463;&#12488;&#20869;&#12395;&#12381;&#12398;&#23384;&#22312;&#12434;&#35211;&#12427;&#12371;&#12392;&#12399;&#12394;&#12356;&#12364;&#12289;&#24517;&#35201;&#12395;&#24540;&#12376;&#12390;&#33258;&#36523;&#12398;&#12503;&#12525;&#12472;&#12455;&#12463;&#12488;&#12395;&#24517;&#35201;&#12394;&#12418;&#12398;&#12434;&#12392;&#12387;&#12390;&#12367;&#12427;&#12371;&#12392;&#12395;&#12394;&#12427;&#12290;&lt;/p&gt;

&lt;p&gt;&#12486;&#12473;&#12488;&#12398;&#22580;&#21512;&#12418;&#21516;&#27096;&#12391;&#12289;&#24517;&#35201;&#12394; gem &#12434;&#12452;&#12531;&#12473;&#12488;&#12540;&#12523;&#12375;&#12390;&#12362;&#12365;&#12289;&#33258;&#36523;&#12398;&#12503;&#12525;&#12472;&#12455;&#12463;&#12488;&#12391;&#12486;&#12473;&#12488;&#12434;&#23455;&#34892;&#12377;&#12427;&#12383;&#12417;&#12395;&#24517;&#35201;&#12394;&#12501;&#12449;&#12452;&#12523;&#12434;&#12475;&#12483;&#12488;&#12450;&#12483;&#12503;&#12377;&#12427;&#24517;&#35201;&#12364;&#12354;&#12427;&#12290;&lt;/p&gt;

&lt;p&gt;&#12414;&#12378;&#12399;&#12289;&lt;code&gt;Gemfile&lt;/code&gt; &#12391;&#24517;&#35201;&#12394; gem &#12434;&#35501;&#12415;&#36796;&#12416;&#12424;&#12358;&#12395;&#12377;&#12427;&#12290;
Refinery CMS &#12398;&#12503;&#12525;&#12472;&#12455;&#12463;&#12488;&#12434;&#20316;&#25104;&#12375;&#12383;&#38555;&#12395; &lt;code&gt;Gemfile&lt;/code&gt; &#12395;&#12399;&#12487;&#12501;&#12457;&#12523;&#12488;&#12391;&#26082;&#12395;&#20197;&#19979;&#12398;&#20869;&#23481;&#12364;&#35352;&#36848;&#12373;&#12428;&#12390;&#12356;&#12427;&#12290;&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;&lt;code&gt;Gemfile&lt;/code&gt;:&lt;/strong&gt;&lt;/p&gt;

&lt;pre class="ruby"&gt;&lt;code class="language-ruby"&gt;group :development, :test do
  # To use refinerycms-testing, uncomment it (if it's commented out) and run 'bundle install'
  # Then, run 'rails generate refinerycms_testing' which will copy its support files.
  # gem 'refinerycms-testing',    '~&amp;gt; 0.9.9.21'
end
&lt;/code&gt;&lt;/pre&gt;

&lt;p&gt;&lt;code&gt;refinerycms_testing&lt;/code&gt; gem &#12364;&#12467;&#12513;&#12531;&#12488;&#12450;&#12454;&#12488;&#12373;&#12428;&#12390;&#12356;&#12427;&#12398;&#12391;&#12289;&#26377;&#21177;&#12395;&#12375;&#12390;&#12362;&#12367;&#12290;&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;&lt;code&gt;Gemfile&lt;/code&gt;:&lt;/strong&gt;&lt;/p&gt;

&lt;pre class="ruby"&gt;&lt;code class="language-ruby"&gt;group :development, :test do
  gem 'refinerycms-testing',    '~&amp;gt; 0.9.9.21'
end
&lt;/code&gt;&lt;/pre&gt;

&lt;p&gt;bundler &#12434;&#23455;&#34892;&#12375;&#12390;&#12362;&#12367;&#12290;&lt;/p&gt;

&lt;pre class="shell"&gt;&lt;code class="language-shell"&gt;$ bundle install
&lt;/code&gt;&lt;/pre&gt;

&lt;p&gt;&lt;code&gt;Gemfile&lt;/code&gt; &#12395;&#12418;&#26360;&#12363;&#12428;&#12390;&#12356;&#12383;&#12424;&#12358;&#12395;&#12289;Refinery CMS &#12391;&#12486;&#12473;&#12488;&#12434;&#23455;&#26045;&#12377;&#12427;&#12383;&#12417;&#12395;&#24517;&#35201;&#12394;&#12501;&#12449;&#12452;&#12523;&#12434; &lt;code&gt;refinerycms-testing&lt;/code&gt; &#12364;&#29992;&#24847;&#12375;&#12390;&#12356;&#12427; generator &#12434;&#20351;&#12387;&#12390;&#20316;&#25104;&#12375;&#12390;&#12362;&#12367;&#12290;&lt;/p&gt;

&lt;pre class="shell"&gt;&lt;code class="language-shell"&gt;$ rails g refinerycms_testing
      create  config/cucumber.yml
      create  spec/spec_helper.rb
      create  spec/rcov.opts
      create  .rspec
      create  features/support/paths.rb
&lt;/code&gt;&lt;/pre&gt;

&lt;p&gt;rspec &#12434;&#23455;&#34892;&#12377;&#12427;&#12290;&lt;/p&gt;

&lt;pre class="shell"&gt;&lt;code class="language-shell"&gt;$ rake spec
(in /home/taka/Work/refinerycms-test-sample)
...(&#30053;)...
No DRb server is running. Running in local process instead ...
...........................................................................................................

Finished in 6.82 seconds
107 examples, 0 failures
&lt;/code&gt;&lt;/pre&gt;

&lt;p&gt;107 example &#12364;&#23455;&#34892;&#12373;&#12428;&#12289;0 failure &#12392;&#12356;&#12358;&#32080;&#26524;&#12290;&#12486;&#12473;&#12488;&#12418;&#23455;&#34892;&#12391;&#12365;&#12289;&#32080;&#26524;&#12418;&#12458;&#12540;&#12523;&#12464;&#12522;&#12540;&#12531;&#12394;&#12398;&#12391; Refinery CMS &#26412;&#20307;&#12398;&#12486;&#12473;&#12488;&#12399;&#12371;&#12428;&#12391; OK&#12290;&lt;/p&gt;

&lt;h3 id="sporkwatchr"&gt;&#26356;&#12395;&#12459;&#12452;&#12476;&#12531;&#12377;&#12427; - spork&#12289;watchr&lt;/h3&gt;

&lt;p&gt;&#12371;&#12371;&#12363;&#12425;&#12399;&#12289;Refinery CMS &#29420;&#33258;&#12392;&#12356;&#12358;&#12431;&#12369;&#12391;&#12418;&#12394;&#12367;&#12289;&#36890;&#24120;&#12398; Rails &#12450;&#12503;&#12522;&#12395;&#12418;&#24403;&#12390;&#12399;&#12414;&#12427;&#37096;&#20998;&#12290;&lt;/p&gt;

&lt;h4 id="spork-"&gt;spork &#12434;&#21033;&#29992;&#12375;&#12390;&#12486;&#12473;&#12488;&#29872;&#22659;&#12398;&#19979;&#28310;&#20633;&#26178;&#38291;&#12434;&#30701;&#32302;&lt;/h4&gt;

&lt;p&gt;&#20808;&#12411;&#12393;&#12398;&#12486;&#12473;&#12488;&#32080;&#26524;&#12434;&#35211;&#12427;&#12392;&#12289;&#8221;Finished in 6.82 seconds&#8221; &#12392;&#20986;&#12390;&#12362;&#12426;&#12289;107&#20214;&#12398; example &#12398;&#20840;&#12390;&#12398;&#12486;&#12473;&#12488;&#12398;&#23455;&#34892;&#12395;&#32004;7&#31186;&#12363;&#12363;&#12387;&#12383;&#12371;&#12392;&#12395;&#12394;&#12387;&#12390;&#12356;&#12427;&#12364;&#12289;&#23455;&#38555;&#12399;&#12418;&#12387;&#12392;&#26178;&#38291;&#12364;&#12363;&#12363;&#12387;&#12390;&#12356;&#12427;&#12290;&lt;/p&gt;

&lt;p&gt;&#30906;&#35469;&#12375;&#12390;&#12415;&#12427;&#12290;&lt;/p&gt;

&lt;pre class="shell"&gt;&lt;code class="language-shell"&gt;$ time rake spec
(in /home/taka/Work/refinerycms-test-sample)
...(&#30053;)...
No DRb server is running. Running in local process instead ...
...........................................................................................................

Finished in 6.88 seconds
107 examples, 0 failures

real    0m32.983s
user    0m25.254s
sys     0m1.788s
&lt;/code&gt;&lt;/pre&gt;

&lt;p&gt;30&#31186;&#12385;&#12423;&#12387;&#12392;&#12290;&#30701;&#12367;&#12391;&#12365;&#12427;&#12418;&#12398;&#12399;&#30701;&#12367;&#12375;&#12390;&#12362;&#12367;&#12290;&lt;/p&gt;

&lt;p&gt;&#23455;&#34892;&#26178;&#12398;&#12513;&#12483;&#12475;&#12540;&#12472;&#12391; DRb server &#12434;&#25506;&#12375;&#12390;&#12356;&#12427;&#12364;&#12289;spork server &#12434;&#19978;&#12370;&#12390;&#12362;&#12369;&#12400;&#12289;rspec &#12398;&#19979;&#28310;&#20633;&#12395;&#12363;&#12363;&#12427;&#26178;&#38291;&#12434;&#30701;&#32302;&#12391;&#12365;&#12427;&#12290;&lt;/p&gt;

&lt;ul&gt;
  &lt;li&gt;&lt;a href="https://github.com/timcharper/spork"&gt;timcharper/spork - GitHub&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;&lt;code&gt;refinerycms-testing&lt;/code&gt; &#12398; generator &#12434;&#20351;&#12387;&#12390;&#20316;&#25104;&#12375;&#12383; &lt;code&gt;spec_helper.rb&lt;/code&gt; &#12395;&#12399; spork &#12398;&#21033;&#29992;&#12434;&#24819;&#23450;&#12375;&#12383;&#20197;&#19979;&#12398;&#35352;&#36617;&#12364;&#26082;&#12395;&#23384;&#22312;&#12377;&#12427;&#12290;&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;&lt;code&gt;spec/spec_helper.rb&lt;/code&gt;:&lt;/strong&gt;&lt;/p&gt;

&lt;pre class="ruby"&gt;&lt;code class="language-ruby"&gt;# If spork is available in the Gemfile it'll be used but we don't force it.
unless (begin; require 'spork'; rescue LoadError; nil end).nil?

  Spork.prefork do
    # Loading more in this block will cause your tests to run faster. However,
    # if you change any configuration or code from libraries loaded here, you'll
    # need to restart spork for it take effect.
    setup_environment
  end
  ...
&lt;/code&gt;&lt;/pre&gt;

&lt;p&gt;spork &#12434;&#21033;&#29992;&#12377;&#12427;&#12395;&#12399; &lt;code&gt;Gemfile&lt;/code&gt; &#12395; spork &#12398;&#35501;&#12415;&#36796;&#12415;&#12434;&#36861;&#21152;&#12375;&#12390;&#12354;&#12370;&#12427;&#12290;&lt;/p&gt;

&lt;pre class="ruby"&gt;&lt;code class="language-ruby"&gt;group :development, :test do
  gem 'spork'
end
&lt;/code&gt;&lt;/pre&gt;

&lt;p&gt;&#20877;&#24230; &lt;code&gt;bundle install&lt;/code&gt; &#12391; bundler &#12434;&#23455;&#34892;&#12375;&#12390;&#12362;&#12365;&#12289;spork &#12434;&#36215;&#21205;&#12375;&#12390;&#12362;&#12367;&#12290;&lt;/p&gt;

&lt;pre class="shell"&gt;&lt;code class="language-shell"&gt;$ spork
Using RSpec
Loading Spork.prefork block...
Spork is ready and listening on 8989!
&lt;/code&gt;&lt;/pre&gt;

&lt;p&gt;&#20877;&#24230;&#12486;&#12473;&#12488;&#12434;&#23455;&#34892;&#12377;&#12427;&#12290;&lt;/p&gt;

&lt;pre class="shell"&gt;&lt;code class="language-shell"&gt;$ time rake spec
(in /home/taka/Work/refinerycms-test-sample)
...(&#30053;)...
...........................................................................................................

Finished in 6.86 seconds
107 examples, 0 failures

real    0m22.155s
user    0m9.497s
sys     0m0.764s
&lt;/code&gt;&lt;/pre&gt;

&lt;p&gt;&#12486;&#12473;&#12488;&#33258;&#20307;&#12395;&#12363;&#12363;&#12387;&#12390;&#12356;&#12427;&#26178;&#38291;&#12399;&#20808;&#12411;&#12393;&#12392;&#22793;&#12431;&#12426;&#12394;&#12356;&#12364;&#12289;&#12486;&#12473;&#12488;&#12434;&#36215;&#21205;&#12375;&#12390;&#12363;&#12425;&#32066;&#20102;&#12377;&#12427;&#12414;&#12391;&#12398;&#23455;&#38555;&#12395;&#25499;&#12363;&#12387;&#12390;&#12356;&#12427;&#26178;&#38291;&#12364;10&#31186;&#12411;&#12393;&#30701;&#32302;&#12373;&#12428;&#12383;&#12290;&lt;/p&gt;

&lt;p&gt;&#12381;&#12428;&#12391;&#12418;22&#31186;&#12363;&#12363;&#12387;&#12390;&#12399;&#12356;&#12427;&#12364;&#12289;&#20840;&#12390;&#12398;&#12486;&#12473;&#12488;&#12434;&#32153;&#32154;&#30340;&#12395;&#37117;&#24230;&#23455;&#26045;&#12375;&#12394;&#12364;&#12425;&#12467;&#12540;&#12487;&#12451;&#12531;&#12464;&#12392;&#12356;&#12358;&#12398;&#12399;&#12354;&#12414;&#12426;&#12420;&#12425;&#12394;&#12356;&#12384;&#12429;&#12358;&#12290;
&#30528;&#25163;&#12375;&#12390;&#12356;&#12427;&#27231;&#33021;&#37096;&#20998;&#12395;&#38306;&#36899;&#12377;&#12427;&#12486;&#12473;&#12488;&#12434;&#32153;&#32154;&#30340;&#12395;&#34892;&#12358;&#26041;&#12364;&#12473;&#12488;&#12524;&#12473;&#12418;&#23569;&#12394;&#12367;&#21177;&#29575;&#30340;&#12384;&#12290;
&#12381;&#12428;&#12434;&#34892;&#12358;&#12383;&#12417;&#12395;&#12418;&#12358;&#19968;&#25163;&#21152;&#12360;&#12427;&#12290;&lt;/p&gt;

&lt;h4 id="watchr-"&gt;watchr &#12434;&#20351;&#12387;&#12383;&#32153;&#32154;&#30340;&#12394;&#12486;&#12473;&#12488;&lt;/h4&gt;

&lt;p&gt;&#20840;&#12390;&#12398;&#12486;&#12473;&#12488;&#12434;&#37117;&#24230;&#23455;&#26045;&#12377;&#12427;&#12398;&#12391;&#12399;&#12394;&#12367;&#12289;&#32232;&#38598;&#12434;&#34892;&#12387;&#12383;&#12477;&#12540;&#12473;&#12395;&#23550;&#12375;&#12390;&#38306;&#36899;&#12377;&#12427;&#12486;&#12473;&#12488;&#12434;&#37117;&#24230;&#12289;&#12375;&#12363;&#12418;&#33258;&#21205;&#30340;&#12395;&#23455;&#26045;&#12391;&#12365;&#12427;&#12392;&#12358;&#12428;&#12375;&#12356;&#12290;&lt;/p&gt;

&lt;p&gt;&#12501;&#12449;&#12452;&#12523;&#12434;&#30435;&#35222;&#12375;&#12390;&#12356;&#12390;&#12289;&#20309;&#12363;&#22793;&#26356;&#12364;&#12354;&#12387;&#12383;&#26178;&#12395;&#12420;&#12426;&#12383;&#12356;&#12371;&#12392;&#12434;&#23455;&#26045;&#12373;&#12379;&#12427;&#12371;&#12392;&#12364;&#12391;&#12365;&#12427; watchr &#12392;&#12356;&#12358;&#20415;&#21033;&#12394; gem &#12364;&#12354;&#12427;&#12290;&lt;/p&gt;

&lt;ul&gt;
  &lt;li&gt;&lt;a href="https://github.com/mynyml/watchr"&gt;mynyml/watchr - GitHub&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;&#20351;&#12356;&#26041;&#12399;&#12289;&#19978;&#35352;&#12398; sample &#12420;&#12289;&lt;a href="http://d.hatena.ne.jp/secondlife/20110121/1295609110"&gt;watchr - &#12501;&#12449;&#12452;&#12523;&#12395;&#22793;&#26356;&#12364;&#12354;&#12387;&#12383;&#12425;&#20309;&#12363;&#12377;&#12427; / &#12418;&#12375;&#12367;&#12399;&#12458;&#12469;&#12540;&#12531;&#12395;&#12388;&#12356;&#12390; - &#24029;o&#12539;-&#12539;&#65289;&#65308;2nd life&lt;/a&gt; &#12394;&#12393;&#12364;&#21442;&#32771;&#12395;&#12394;&#12427;&#12290;&#12371;&#12371;&#12391;&#12399;&#35443;&#32048;&#12399;&#21106;&#24859;&#12377;&#12427;&#12290;&lt;/p&gt;

&lt;p&gt;&#26360;&#12365;&#26041;&#12399;&#12356;&#12429;&#12356;&#12429;&#12354;&#12427;&#12384;&#12429;&#12358;&#12364;&#12289;&#12503;&#12525;&#12472;&#12455;&#12463;&#12488;&#12523;&#12540;&#12488;&#30452;&#19979;&#12395; &lt;code&gt;rails.watchr&lt;/code&gt; &#12392;&#12356;&#12358;&#12501;&#12449;&#12452;&#12523;&#12434;&#29992;&#24847;&#12375;&#12289;&#20170;&#22238;&#12399;&#20197;&#19979;&#12398;&#12424;&#12358;&#12394;&#35352;&#36848;&#12434;&#34892;&#12387;&#12383;&#12290;&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;&lt;code&gt;rails.watchr&lt;/code&gt;:&lt;/strong&gt;&lt;/p&gt;

&lt;pre class="ruby"&gt;&lt;code class="language-ruby"&gt;watch('^spec/(.*)_spec\.rb') { |m| run_test_matching(m[1]) } # (1)
watch('^app/(.*)\.rb') { |m| run_test_matching(m[1]) }       # (2)
watch('^spec/spec_helper\.rb') { run_all_tests }             # (3)
Dir['vendor/engines/*'].each do |d|                          # (4)
  watch("^#{d}/spec/(.*)_spec\.rb") { |m| run_test_matching(m[1]) }
  watch("^#{d}/app/(.*)\.rb") { |m| run_test_matching(m[1]) }
end

def all_specs
  Dir['spec/**/*_spec.rb'] + Dir['vendor/engines/**/spec/**/*_spec.rb']
end

def run_all_tests
  @all_tests_passing = run(all_specs.join(' '))
  puts 'All tests pass' if @all_tests_passing
end

def run_test_matching(thing_to_match)
  matches = all_specs.grep(/#{thing_to_match}/i)
  if matches.any?
    @all_tests_passing &amp;amp;= run(matches.join(' '))
    run_all_tests unless @all_tests_passing
  end
end

def run(files_to_run)
  system("clear; rspec --drb #{files_to_run}")               # (5)
end
&lt;/code&gt;&lt;/pre&gt;

&lt;p&gt;&#33509;&#24178;&#35036;&#36275;&#12377;&#12427;&#12290;&lt;/p&gt;

&lt;p&gt;(1) &#12391;&#12399;&#12289;spec &#12487;&#12451;&#12524;&#12463;&#12488;&#12522;&#37197;&#19979;&#12398;&#12486;&#12473;&#12488;&#12434;&#35352;&#36848;&#12377;&#12427; spec &#12501;&#12449;&#12452;&#12523;&#12395;&#22793;&#26356;&#12364;&#12354;&#12387;&#12383;&#22580;&#21512;&#12395;&#12399;&#12289;&#12381;&#12398; spec &#12434;&#23455;&#34892;&#12377;&#12427;&#12290;&lt;/p&gt;

&lt;p&gt;(2) &#12391;&#12399;&#12289;app &#12487;&#12451;&#12524;&#12463;&#12488;&#12522;&#37197;&#19979;&#12398;&#20840;&#12390;&#12398;&#12501;&#12449;&#12452;&#12523;&#12434;&#30435;&#35222;&#12375;&#12289;&#22793;&#26356;&#12364;&#12354;&#12387;&#12383;&#22580;&#21512;&#12395;&#12399;&#12289;&#12381;&#12398;&#12501;&#12449;&#12452;&#12523;&#12395;&#23550;&#24540;&#12377;&#12427; spec &#12434;&#23455;&#34892;&#12377;&#12427;&#12290;&lt;/p&gt;

&lt;p&gt;(3) &#12391;&#12399;&#12289;spec &#12501;&#12449;&#12452;&#12523;&#20840;&#12390;&#12363;&#12425;&#21442;&#29031;&#12373;&#12428;&#12390;&#12356;&#12427; helper &#12391;&#12354;&#12427; &lt;code&gt;spec_helper.rb&lt;/code&gt; &#12364;&#22793;&#26356;&#12373;&#12428;&#12383;&#22580;&#21512;&#12395;&#12399;&#20840;&#12390;&#12398; spec &#12434;&#23455;&#34892;&#12375;&#30452;&#12377;&#12290;&lt;/p&gt;

&lt;p&gt;(4) &#12391;&#12399;&#12289;&#36861;&#21152;&#12375;&#12383;&#20840;&#12390;&#12398; engine &#12398; spec&#12289;&#21450;&#12403;&#12289;app &#37197;&#19979;&#12398;&#12487;&#12451;&#12524;&#12463;&#12488;&#12522;&#12434;&#30435;&#35222;&#12375;&#12390;&#12362;&#12365;&#12289;&#22793;&#26356;&#12364;&#12354;&#12387;&#12383;&#22580;&#21512;&#12395;&#12399;&#35442;&#24403;&#12377;&#12427; spec &#12434;&#23455;&#34892;&#12377;&#12427;&#12290;&#21508; engine &#12395;&#23550;&#12375;&#12390; (1) &#12392; (2) &#12391;&#12420;&#12387;&#12390;&#12356;&#12427;&#12398;&#12392;&#21516;&#12376;&#12371;&#12392;&#12434;&#23455;&#34892;&#12375;&#12390;&#12356;&#12427;&#12371;&#12392;&#12395;&#12394;&#12427;&#12290;&lt;br /&gt;
&#12385;&#12394;&#12415;&#12395;&#12289;watch &#12513;&#12477;&#12483;&#12489;&#12408;&#12398;&#24341;&#25968;&#12398;&#12497;&#12479;&#12540;&#12531;&#12391;&#12358;&#12414;&#12367;&#12497;&#12479;&#12540;&#12531;&#12434;&#32068;&#12417;&#12428;&#12400; &lt;code&gt;Dir&lt;/code&gt; &#12434;&#20351;&#12387;&#12390; engine &#12398;&#12487;&#12451;&#12524;&#12463;&#12488;&#12522;&#12434;&#25506;&#32034;&#12373;&#12379;&#12390;&#12420;&#12427;&#12371;&#12392;&#12418;&#12394;&#12356;&#12398;&#12384;&#12364;&#12289;&#20170;&#22238;&#12358;&#12414;&#12367;&#12510;&#12483;&#12481;&#12373;&#12379;&#12425;&#12428;&#12394;&#12363;&#12387;&#12383;&#12398;&#12391;&#12371;&#12398;&#12424;&#12358;&#12394;&#26360;&#12365;&#26041;&#12395;&#12394;&#12387;&#12390;&#12356;&#12427;&#12290;&#33391;&#12356;&#26360;&#12365;&#26041;&#12434;&#35211;&#12388;&#12369;&#12383;&#12425;&#22793;&#26356;&#12375;&#12390;&#12362;&#12371;&#12358;&#12290;&lt;/p&gt;

&lt;p&gt;(5) &#12399; rspec &#12398;&#23455;&#34892;&#37096;&#20998;&#12384;&#12364;&#12289;&lt;code&gt;--drb&lt;/code&gt; &#12458;&#12503;&#12471;&#12519;&#12531;&#12434;&#20351;&#12358;&#12371;&#12392;&#12391;&#35023;&#12391;&#36215;&#21205;&#12375;&#12390;&#12356;&#12427; spork &#12434;&#21033;&#29992;&#12377;&#12427;&#12398;&#12391;&#12289;&#24453;&#12385;&#26178;&#38291;&#12394;&#12367;&#21363;&#24231;&#12395;&#12486;&#12473;&#12488;&#12364;&#23455;&#34892;&#12373;&#12428;&#12427;&#12290;&lt;/p&gt;

&lt;p&gt;&#29992;&#24847;&#12375;&#12383; &lt;code&gt;rails.watchr&lt;/code&gt; &#12434; &lt;code&gt;watchr&lt;/code&gt; &#12467;&#12510;&#12531;&#12489;&#12434;&#20351;&#12387;&#12390;&#36215;&#21205;&#12375;&#12390;&#12362;&#12367;&#12290;&lt;/p&gt;

&lt;pre class="shell"&gt;&lt;code class="language-shell"&gt;$ watchr rails.watchr
&lt;/code&gt;&lt;/pre&gt;

&lt;p&gt;&#12371;&#12428;&#12391;&#12289;spec&#12289;&#12418;&#12375;&#12367;&#12399;&#12289;app &#37197;&#19979;&#12395;&#22793;&#26356;&#12434;&#21152;&#12360;&#12427;&#24230;&#12395;&#38306;&#36899;&#12377;&#12427;&#12486;&#12473;&#12488;&#12364;&#20877;&#23455;&#34892;&#12373;&#12428;&#12427;&#12398;&#12391;&#12289;&#12424;&#12363;&#12425;&#12396;&#12371;&#12392;&#12434;&#12420;&#12387;&#12390;&#12375;&#12414;&#12387;&#12383;&#22580;&#21512;&#12395;&#12399;&#12377;&#12368;&#12395;&#27671;&#12389;&#12367;&#12371;&#12392;&#12364;&#12391;&#12365;&#12427;&#12290;&lt;/p&gt;

&lt;p&gt;&#24460;&#21322;&#12398; watchr &#12398;&#37096;&#20998;&#12399;&#12289;&lt;/p&gt;

&lt;ul&gt;
  &lt;li&gt;&lt;a href="http://pragprog.com/titles/rcctr/continuous-testing"&gt;The Pragmatic Bookshelf - Continuous Testing&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;&#12434;&#21442;&#32771;&#12395;&#12375;&#12383;&#12290;&lt;/p&gt;
</content>
    <summary type="html">&lt;p&gt;&lt;a href="http://refinerycms.com/"&gt;Refinery CMS&lt;/a&gt; &#12392;&#12356;&#12358;&#12398;&#12399;&#12289;Rails &#12434;&#12505;&#12540;&#12473;&#12395;&#12375;&#12383; CMS&#12290;&lt;br /&gt;
&#20844;&#24335;&#12469;&#12452;&#12488;&#12395;&#12418;&#12486;&#12473;&#12488;&#12395;&#38306;&#12377;&#12427;&#12460;&#12452;&#12489;&#12399;&#12354;&#12427;&#12398;&#12384;&#12364;&#12289;&#12486;&#12473;&#12488;&#12434;&#38283;&#22987;&#12377;&#12427;&#21069;&#12398;&#28310;&#20633;&#12398;&#35352;&#36617;&#12364;&#12394;&#12356;&#12398;&#12391;&#12513;&#12514;&#12375;&#12390;&#12362;&#12367;&#12290;&lt;/p&gt;

&lt;ul&gt;
  &lt;li&gt;&lt;a href="http://refinerycms.com/guides/how-to-test-refinery"&gt;How to test Refinery - Guides - Refinery CMS&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;&#12381;&#12418;&#12381;&#12418;&#12289;Refinery CMS &#12399; CMS &#12394;&#12398;&#12391;&#12289;Refinery CMS &#33258;&#20307;&#12398;&#12486;&#12473;&#12488;&#12434;&#23455;&#26045;&#12377;&#12427;&#24517;&#35201;&#12364;&#12354;&#12427;&#12398;&#65311;&#12392;&#12356;&#12358;&#35441;&#12418;&#12354;&#12427;&#12363;&#12418;&#12375;&#12428;&#12394;&#12356;&#12364;&#12289;
Refinery CMS &#12399;&#26082;&#23384;&#12398;&#21205;&#20316;&#12434; override &#12391;&#12365;&#12383;&#12426;&#12289;&#36890;&#24120;&#12398; Rails &#12450;&#12503;&#12522;&#12398;&#24863;&#35226;&#12391;&#25313;&#24373;&#12391;&#12365;&#12383;&#12426;&#12289;&#12399;&#12383;&#12414;&#12383; engine &#12398;&#20181;&#32068;&#12415;&#12434;&#20351;&#12387;&#12390;&#24517;&#35201;&#12394;&#27231;&#33021;&#12434;&#25313;&#24373;&#12375;&#12390;&#12356;&#12369;&#12427;&#12290;&lt;/p&gt;

&lt;p&gt;&#12356;&#12429;&#12356;&#12429;&#25163;&#12434;&#12356;&#12428;&#12390;&#12356;&#12367;&#12392;&#26032;&#12383;&#12395;&#36861;&#21152;&#12375;&#12383;&#37096;&#20998;&#12384;&#12369;&#12391;&#12394;&#12367;&#12289;&#26082;&#23384;&#12398;&#29872;&#22659;&#12434;&#22730;&#12375;&#12390;&#12356;&#12394;&#12356;&#12424;&#12397;&#65311;&#12392;&#30906;&#35469;&#12375;&#12383;&#12367;&#12394;&#12427;&#12418;&#12398;&#12290;&#26082;&#23384;&#29872;&#22659;&#12398;&#12486;&#12473;&#12488;&#12434;&#12391;&#12365;&#12427;&#29366;&#24907;&#12395;&#12399;&#12375;&#12390;&#12362;&#12365;&#12383;&#12356;&#12290;&lt;/p&gt;

&lt;p&gt;&#12486;&#12473;&#12488;&#29872;&#22659;&#12398;&#27083;&#31689;&#12395;&#12399;&#12289;Refinery CMS &#29420;&#33258;&#12398;&#37096;&#20998;&#12392; Rails &#12503;&#12525;&#12472;&#12455;&#12463;&#12488;&#20849;&#36890;&#12398;&#37096;&#20998;&#12392;&#12364;&#12354;&#12426;&#12289;&#20808;&#12395; Refinery CMS &#29420;&#33258;&#12398;&#12475;&#12483;&#12488;&#12450;&#12483;&#12503;&#12434;&#34892;&#12356;&#12289;&#26356;&#12395;&#29872;&#22659;&#12398;&#12459;&#12452;&#12476;&#12531;&#12398;&#12383;&#12417;&#12398;&#12475;&#12483;&#12488;&#12450;&#12483;&#12503;&#12434;&#24190;&#12388;&#12363;&#34892;&#12358;&#12290;&lt;/p&gt;

&lt;p&gt;&#12394;&#12362;&#12289;&#12371;&#12371;&#12391;&#35352;&#36617;&#12375;&#12390;&#12356;&#12427;&#20869;&#23481;&#12399; Refinery CMS &#12399; 0.9.9.21 &#12434;&#12289;Rails &#12399; v3.0.7 &#12434;&#20351;&#29992;&#12375;&#12390;&#12356;&#12427;&#12290;&lt;/p&gt;

&lt;h3 id="refinery-cms-"&gt;Refinery CMS &#12486;&#12473;&#12488;&#29872;&#22659;&#12398;&#28310;&#20633;&lt;/h3&gt;

&lt;p&gt;&#12414;&#12378;&#12399;&#12289;Refinery CMS &#29420;&#33258;&#12398;&#37096;&#20998;&#12290;&lt;/p&gt;

&lt;p&gt;Refinery CMS &#33258;&#20307;&#12399; gem &#12391;&#12452;&#12531;&#12473;&#12488;&#12540;&#12523;&#12373;&#12428;&#12289;&#23455;&#34892;&#26178;&#12395;&#12399; gem &#12398;&#12521;&#12452;&#12502;&#12521;&#12522;&#12364;&#20351;&#29992;&#12373;&#12428;&#12427;&#12290;&#20316;&#25104;&#12373;&#12428;&#12383;&#12503;&#12525;&#12472;&#12455;&#12463;&#12488;&#20869;&#12395;&#12381;&#12398;&#23384;&#22312;&#12434;&#35211;&#12427;&#12371;&#12392;&#12399;&#12394;&#12356;&#12364;&#12289;&#24517;&#35201;&#12395;&#24540;&#12376;&#12390;&#33258;&#36523;&#12398;&#12503;&#12525;&#12472;&#12455;&#12463;&#12488;&#12395;&#24517;&#35201;&#12394;&#12418;&#12398;&#12434;&#12392;&#12387;&#12390;&#12367;&#12427;&#12371;&#12392;&#12395;&#12394;&#12427;&#12290;&lt;/p&gt;

&lt;p&gt;&#12486;&#12473;&#12488;&#12398;&#22580;&#21512;&#12418;&#21516;&#27096;&#12391;&#12289;&#24517;&#35201;&#12394; gem &#12434;&#12452;&#12531;&#12473;&#12488;&#12540;&#12523;&#12375;&#12390;&#12362;&#12365;&#12289;&#33258;&#36523;&#12398;&#12503;&#12525;&#12472;&#12455;&#12463;&#12488;&#12391;&#12486;&#12473;&#12488;&#12434;&#23455;&#34892;&#12377;&#12427;&#12383;&#12417;&#12395;&#24517;&#35201;&#12394;&#12501;&#12449;&#12452;&#12523;&#12434;&#12475;&#12483;&#12488;&#12450;&#12483;&#12503;&#12377;&#12427;&#24517;&#35201;&#12364;&#12354;&#12427;&#12290;&lt;/p&gt;

&lt;p&gt;&#12414;&#12378;&#12399;&#12289;&lt;code&gt;Gemfile&lt;/code&gt; &#12391;&#24517;&#35201;&#12394; gem &#12434;&#35501;&#12415;&#36796;&#12416;&#12424;&#12358;&#12395;&#12377;&#12427;&#12290;
Refinery CMS &#12398;&#12503;&#12525;&#12472;&#12455;&#12463;&#12488;&#12434;&#20316;&#25104;&#12375;&#12383;&#38555;&#12395; &lt;code&gt;Gemfile&lt;/code&gt; &#12395;&#12399;&#12487;&#12501;&#12457;&#12523;&#12488;&#12391;&#26082;&#12395;&#20197;&#19979;&#12398;&#20869;&#23481;&#12364;&#35352;&#36848;&#12373;&#12428;&#12390;&#12356;&#12427;&#12290;&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;&lt;code&gt;Gemfile&lt;/code&gt;:&lt;/strong&gt;&lt;/p&gt;

&lt;pre class="ruby"&gt;&lt;code class="language-ruby"&gt;group :development, :test do
  # To use refinerycms-testing, uncomment it (if it's commented out) and run 'bundle install'
  # Then, run 'rails generate refinerycms_testing' which will copy its support files.
  # gem 'refinerycms-testing',    '~&amp;gt; 0.9.9.21'
end
&lt;/code&gt;&lt;/pre&gt;

&lt;p&gt;&lt;code&gt;refinerycms_testing&lt;/code&gt; gem &#12364;&#12467;&#12513;&#12531;&#12488;&#12450;&#12454;&#12488;&#12373;&#12428;&#12390;&#12356;&#12427;&#12398;&#12391;&#12289;&#26377;&#21177;&#12395;&#12375;&#12390;&#12362;&#12367;&#12290;&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;&lt;code&gt;Gemfile&lt;/code&gt;:&lt;/strong&gt;&lt;/p&gt;

&lt;pre class="ruby"&gt;&lt;code class="language-ruby"&gt;group :development, :test do
  gem 'refinerycms-testing',    '~&amp;gt; 0.9.9.21'
end
&lt;/code&gt;&lt;/pre&gt;

&lt;p&gt;bundler &#12434;&#23455;&#34892;&#12375;&#12390;&#12362;&#12367;&#12290;&lt;/p&gt;

&lt;pre class="shell"&gt;&lt;code class="language-shell"&gt;$ bundle install
&lt;/code&gt;&lt;/pre&gt;

&lt;p&gt;&lt;code&gt;Gemfile&lt;/code&gt; &#12395;&#12418;&#26360;&#12363;&#12428;&#12390;&#12356;&#12383;&#12424;&#12358;&#12395;&#12289;Refinery CMS &#12391;&#12486;&#12473;&#12488;&#12434;&#23455;&#26045;&#12377;&#12427;&#12383;&#12417;&#12395;&#24517;&#35201;&#12394;&#12501;&#12449;&#12452;&#12523;&#12434; &lt;code&gt;refinerycms-testing&lt;/code&gt; &#12364;&#29992;&#24847;&#12375;&#12390;&#12356;&#12427; generator &#12434;&#20351;&#12387;&#12390;&#20316;&#25104;&#12375;&#12390;&#12362;&#12367;&#12290;&lt;/p&gt;

&lt;pre class="shell"&gt;&lt;code class="language-shell"&gt;$ rails g refinerycms_testing
      create  config/cucumber.yml
      create  spec/spec_helper.rb
      create  spec/rcov.opts
      create  .rspec
      create  features/support/paths.rb
&lt;/code&gt;&lt;/pre&gt;

&lt;p&gt;rspec &#12434;&#23455;&#34892;&#12377;&#12427;&#12290;&lt;/p&gt;

&lt;pre class="shell"&gt;&lt;code class="language-shell"&gt;$ rake spec
(in /home/taka/Work/refinerycms-test-sample)
...(&#30053;)...
No DRb server is running. Running in local process instead ...
...........................................................................................................

Finished in 6.82 seconds
107 examples, 0 failures
&lt;/code&gt;&lt;/pre&gt;

&lt;p&gt;107 example &#12364;&#23455;&#34892;&#12373;&#12428;&#12289;0 failure &#12392;&#12356;&#12358;&#32080;&#26524;&#12290;&#12486;&#12473;&#12488;&#12418;&#23455;&#34892;&#12391;&#12365;&#12289;&#32080;&#26524;&#12418;&#12458;&#12540;&#12523;&#12464;&#12522;&#12540;&#12531;&#12394;&#12398;&#12391; Refinery CMS &#26412;&#20307;&#12398;&#12486;&#12473;&#12488;&#12399;&#12371;&#12428;&#12391; OK&#12290;&lt;/p&gt;

&lt;h3 id="sporkwatchr"&gt;&#26356;&#12395;&#12459;&#12452;&#12476;&#12531;&#12377;&#12427; - spork&#12289;watchr&lt;/h3&gt;

&lt;p&gt;&#12371;&#12371;&#12363;&#12425;&#12399;&#12289;Refinery CMS &#29420;&#33258;&#12392;&#12356;&#12358;&#12431;&#12369;&#12391;&#12418;&#12394;&#12367;&#12289;&#36890;&#24120;&#12398; Rails &#12450;&#12503;&#12522;&#12395;&#12418;&#24403;&#12390;&#12399;&#12414;&#12427;&#37096;&#20998;&#12290;&lt;/p&gt;

&lt;h4 id="spork-"&gt;spork &#12434;&#21033;&#29992;&#12375;&#12390;&#12486;&#12473;&#12488;&#29872;&#22659;&#12398;&#19979;&#28310;&#20633;&#26178;&#38291;&#12434;&#30701;&#32302;&lt;/h4&gt;

&lt;p&gt;&#20808;&#12411;&#12393;&#12398;&#12486;&#12473;&#12488;&#32080;&#26524;&#12434;&#35211;&#12427;&#12392;&#12289;&#8221;Finished in 6.82 seconds&#8221; &#12392;&#20986;&#12390;&#12362;&#12426;&#12289;107&#20214;&#12398; example &#12398;&#20840;&#12390;&#12398;&#12486;&#12473;&#12488;&#12398;&#23455;&#34892;&#12395;&#32004;7&#31186;&#12363;&#12363;&#12387;&#12383;&#12371;&#12392;&#12395;&#12394;&#12387;&#12390;&#12356;&#12427;&#12364;&#12289;&#23455;&#38555;&#12399;&#12418;&#12387;&#12392;&#26178;&#38291;&#12364;&#12363;&#12363;&#12387;&#12390;&#12356;&#12427;&#12290;&lt;/p&gt;

&lt;p&gt;&#30906;&#35469;&#12375;&#12390;&#12415;&#12427;&#12290;&lt;/p&gt;

&lt;pre class="shell"&gt;&lt;code class="language-shell"&gt;$ time rake spec
(in /home/taka/Work/refinerycms-test-sample)
...(&#30053;)...
No DRb server is running. Running in local process instead ...
...........................................................................................................

Finished in 6.88 seconds
107 examples, 0 failures

real    0m32.983s
user    0m25.254s
sys     0m1.788s
&lt;/code&gt;&lt;/pre&gt;

&lt;p&gt;30&#31186;&#12385;&#12423;&#12387;&#12392;&#12290;&#30701;&#12367;&#12391;&#12365;&#12427;&#12418;&#12398;&#12399;&#30701;&#12367;&#12375;&#12390;&#12362;&#12367;&#12290;&lt;/p&gt;

&lt;p&gt;&#23455;&#34892;&#26178;&#12398;&#12513;&#12483;&#12475;&#12540;&#12472;&#12391; DRb server &#12434;&#25506;&#12375;&#12390;&#12356;&#12427;&#12364;&#12289;spork server &#12434;&#19978;&#12370;&#12390;&#12362;&#12369;&#12400;&#12289;rspec &#12398;&#19979;&#28310;&#20633;&#12395;&#12363;&#12363;&#12427;&#26178;&#38291;&#12434;&#30701;&#32302;&#12391;&#12365;&#12427;&#12290;&lt;/p&gt;

&lt;ul&gt;
  &lt;li&gt;&lt;a href="https://github.com/timcharper/spork"&gt;timcharper/spork - GitHub&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;&lt;code&gt;refinerycms-testing&lt;/code&gt; &#12398; generator &#12434;&#20351;&#12387;&#12390;&#20316;&#25104;&#12375;&#12383; &lt;code&gt;spec_helper.rb&lt;/code&gt; &#12395;&#12399; spork &#12398;&#21033;&#29992;&#12434;&#24819;&#23450;&#12375;&#12383;&#20197;&#19979;&#12398;&#35352;&#36617;&#12364;&#26082;&#12395;&#23384;&#22312;&#12377;&#12427;&#12290;&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;&lt;code&gt;spec/spec_helper.rb&lt;/code&gt;:&lt;/strong&gt;&lt;/p&gt;

&lt;pre class="ruby"&gt;&lt;code class="language-ruby"&gt;# If spork is available in the Gemfile it'll be used but we don't force it.
unless (begin; require 'spork'; rescue LoadError; nil end).nil?

  Spork.prefork do
    # Loading more in this block will cause your tests to run faster. However,
    # if you change any configuration or code from libraries loaded here, you'll
    # need to restart spork for it take effect.
    setup_environment
  end
  ...
&lt;/code&gt;&lt;/pre&gt;

&lt;p&gt;spork &#12434;&#21033;&#29992;&#12377;&#12427;&#12395;&#12399; &lt;code&gt;Gemfile&lt;/code&gt; &#12395; spork &#12398;&#35501;&#12415;&#36796;&#12415;&#12434;&#36861;&#21152;&#12375;&#12390;&#12354;&#12370;&#12427;&#12290;&lt;/p&gt;

&lt;pre class="ruby"&gt;&lt;code class="language-ruby"&gt;group :development, :test do
  gem 'spork'
end
&lt;/code&gt;&lt;/pre&gt;

&lt;p&gt;&#20877;&#24230; &lt;code&gt;bundle install&lt;/code&gt; &#12391; bundler &#12434;&#23455;&#34892;&#12375;&#12390;&#12362;&#12365;&#12289;spork &#12434;&#36215;&#21205;&#12375;&#12390;&#12362;&#12367;&#12290;&lt;/p&gt;

&lt;pre class="shell"&gt;&lt;code class="language-shell"&gt;$ spork
Using RSpec
Loading Spork.prefork block...
Spork is ready and listening on 8989!
&lt;/code&gt;&lt;/pre&gt;

&lt;p&gt;&#20877;&#24230;&#12486;&#12473;&#12488;&#12434;&#23455;&#34892;&#12377;&#12427;&#12290;&lt;/p&gt;

&lt;pre class="shell"&gt;&lt;code class="language-shell"&gt;$ time rake spec
(in /home/taka/Work/refinerycms-test-sample)
...(&#30053;)...
...........................................................................................................

Finished in 6.86 seconds
107 examples, 0 failures

real    0m22.155s
user    0m9.497s
sys     0m0.764s
&lt;/code&gt;&lt;/pre&gt;

&lt;p&gt;&#12486;&#12473;&#12488;&#33258;&#20307;&#12395;&#12363;&#12363;&#12387;&#12390;&#12356;&#12427;&#26178;&#38291;&#12399;&#20808;&#12411;&#12393;&#12392;&#22793;&#12431;&#12426;&#12394;&#12356;&#12364;&#12289;&#12486;&#12473;&#12488;&#12434;&#36215;&#21205;&#12375;&#12390;&#12363;&#12425;&#32066;&#20102;&#12377;&#12427;&#12414;&#12391;&#12398;&#23455;&#38555;&#12395;&#25499;&#12363;&#12387;&#12390;&#12356;&#12427;&#26178;&#38291;&#12364;10&#31186;&#12411;&#12393;&#30701;&#32302;&#12373;&#12428;&#12383;&#12290;&lt;/p&gt;

&lt;p&gt;&#12381;&#12428;&#12391;&#12418;22&#31186;&#12363;&#12363;&#12387;&#12390;&#12399;&#12356;&#12427;&#12364;&#12289;&#20840;&#12390;&#12398;&#12486;&#12473;&#12488;&#12434;&#32153;&#32154;&#30340;&#12395;&#37117;&#24230;&#23455;&#26045;&#12375;&#12394;&#12364;&#12425;&#12467;&#12540;&#12487;&#12451;&#12531;&#12464;&#12392;&#12356;&#12358;&#12398;&#12399;&#12354;&#12414;&#12426;&#12420;&#12425;&#12394;&#12356;&#12384;&#12429;&#12358;&#12290;
&#30528;&#25163;&#12375;&#12390;&#12356;&#12427;&#27231;&#33021;&#37096;&#20998;&#12395;&#38306;&#36899;&#12377;&#12427;&#12486;&#12473;&#12488;&#12434;&#32153;&#32154;&#30340;&#12395;&#34892;&#12358;&#26041;&#12364;&#12473;&#12488;&#12524;&#12473;&#12418;&#23569;&#12394;&#12367;&#21177;&#29575;&#30340;&#12384;&#12290;
&#12381;&#12428;&#12434;&#34892;&#12358;&#12383;&#12417;&#12395;&#12418;&#12358;&#19968;&#25163;&#21152;&#12360;&#12427;&#12290;&lt;/p&gt;

&lt;h4 id="watchr-"&gt;watchr &#12434;&#20351;&#12387;&#12383;&#32153;&#32154;&#30340;&#12394;&#12486;&#12473;&#12488;&lt;/h4&gt;

&lt;p&gt;&#20840;&#12390;&#12398;&#12486;&#12473;&#12488;&#12434;&#37117;&#24230;&#23455;&#26045;&#12377;&#12427;&#12398;&#12391;&#12399;&#12394;&#12367;&#12289;&#32232;&#38598;&#12434;&#34892;&#12387;&#12383;&#12477;&#12540;&#12473;&#12395;&#23550;&#12375;&#12390;&#38306;&#36899;&#12377;&#12427;&#12486;&#12473;&#12488;&#12434;&#37117;&#24230;&#12289;&#12375;&#12363;&#12418;&#33258;&#21205;&#30340;&#12395;&#23455;&#26045;&#12391;&#12365;&#12427;&#12392;&#12358;&#12428;&#12375;&#12356;&#12290;&lt;/p&gt;

&lt;p&gt;&#12501;&#12449;&#12452;&#12523;&#12434;&#30435;&#35222;&#12375;&#12390;&#12356;&#12390;&#12289;&#20309;&#12363;&#22793;&#26356;&#12364;&#12354;&#12387;&#12383;&#26178;&#12395;&#12420;&#12426;&#12383;&#12356;&#12371;&#12392;&#12434;&#23455;&#26045;&#12373;&#12379;&#12427;&#12371;&#12392;&#12364;&#12391;&#12365;&#12427; watchr &#12392;&#12356;&#12358;&#20415;&#21033;&#12394; gem &#12364;&#12354;&#12427;&#12290;&lt;/p&gt;

&lt;ul&gt;
  &lt;li&gt;&lt;a href="https://github.com/mynyml/watchr"&gt;mynyml/watchr - GitHub&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;&#20351;&#12356;&#26041;&#12399;&#12289;&#19978;&#35352;&#12398; sample &#12420;&#12289;&lt;a href="http://d.hatena.ne.jp/secondlife/20110121/1295609110"&gt;watchr - &#12501;&#12449;&#12452;&#12523;&#12395;&#22793;&#26356;&#12364;&#12354;&#12387;&#12383;&#12425;&#20309;&#12363;&#12377;&#12427; / &#12418;&#12375;&#12367;&#12399;&#12458;&#12469;&#12540;&#12531;&#12395;&#12388;&#12356;&#12390; - &#24029;o&#12539;-&#12539;&#65289;&#65308;2nd life&lt;/a&gt; &#12394;&#12393;&#12364;&#21442;&#32771;&#12395;&#12394;&#12427;&#12290;&#12371;&#12371;&#12391;&#12399;&#35443;&#32048;&#12399;&#21106;&#24859;&#12377;&#12427;&#12290;&lt;/p&gt;

&lt;p&gt;&#26360;&#12365;&#26041;&#12399;&#12356;&#12429;&#12356;&#12429;&#12354;&#12427;&#12384;&#12429;&#12358;&#12364;&#12289;&#12503;&#12525;&#12472;&#12455;&#12463;&#12488;&#12523;&#12540;&#12488;&#30452;&#19979;&#12395; &lt;code&gt;rails.watchr&lt;/code&gt; &#12392;&#12356;&#12358;&#12501;&#12449;&#12452;&#12523;&#12434;&#29992;&#24847;&#12375;&#12289;&#20170;&#22238;&#12399;&#20197;&#19979;&#12398;&#12424;&#12358;&#12394;&#35352;&#36848;&#12434;&#34892;&#12387;&#12383;&#12290;&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;&lt;code&gt;rails.watchr&lt;/code&gt;:&lt;/strong&gt;&lt;/p&gt;

&lt;pre class="ruby"&gt;&lt;code class="language-ruby"&gt;watch('^spec/(.*)_spec\.rb') { |m| run_test_matching(m[1]) } # (1)
watch('^app/(.*)\.rb') { |m| run_test_matching(m[1]) }       # (2)
watch('^spec/spec_helper\.rb') { run_all_tests }             # (3)
Dir['vendor/engines/*'].each do |d|                          # (4)
  watch("^#{d}/spec/(.*)_spec\.rb") { |m| run_test_matching(m[1]) }
  watch("^#{d}/app/(.*)\.rb") { |m| run_test_matching(m[1]) }
end

def all_specs
  Dir['spec/**/*_spec.rb'] + Dir['vendor/engines/**/spec/**/*_spec.rb']
end

def run_all_tests
  @all_tests_passing = run(all_specs.join(' '))
  puts 'All tests pass' if @all_tests_passing
end

def run_test_matching(thing_to_match)
  matches = all_specs.grep(/#{thing_to_match}/i)
  if matches.any?
    @all_tests_passing &amp;amp;= run(matches.join(' '))
    run_all_tests unless @all_tests_passing
  end
end

def run(files_to_run)
  system("clear; rspec --drb #{files_to_run}")               # (5)
end
&lt;/code&gt;&lt;/pre&gt;

&lt;p&gt;&#33509;&#24178;&#35036;&#36275;&#12377;&#12427;&#12290;&lt;/p&gt;

&lt;p&gt;(1) &#12391;&#12399;&#12289;spec &#12487;&#12451;&#12524;&#12463;&#12488;&#12522;&#37197;&#19979;&#12398;&#12486;&#12473;&#12488;&#12434;&#35352;&#36848;&#12377;&#12427; spec &#12501;&#12449;&#12452;&#12523;&#12395;&#22793;&#26356;&#12364;&#12354;&#12387;&#12383;&#22580;&#21512;&#12395;&#12399;&#12289;&#12381;&#12398; spec &#12434;&#23455;&#34892;&#12377;&#12427;&#12290;&lt;/p&gt;

&lt;p&gt;(2) &#12391;&#12399;&#12289;app &#12487;&#12451;&#12524;&#12463;&#12488;&#12522;&#37197;&#19979;&#12398;&#20840;&#12390;&#12398;&#12501;&#12449;&#12452;&#12523;&#12434;&#30435;&#35222;&#12375;&#12289;&#22793;&#26356;&#12364;&#12354;&#12387;&#12383;&#22580;&#21512;&#12395;&#12399;&#12289;&#12381;&#12398;&#12501;&#12449;&#12452;&#12523;&#12395;&#23550;&#24540;&#12377;&#12427; spec &#12434;&#23455;&#34892;&#12377;&#12427;&#12290;&lt;/p&gt;

&lt;p&gt;(3) &#12391;&#12399;&#12289;spec &#12501;&#12449;&#12452;&#12523;&#20840;&#12390;&#12363;&#12425;&#21442;&#29031;&#12373;&#12428;&#12390;&#12356;&#12427; helper &#12391;&#12354;&#12427; &lt;code&gt;spec_helper.rb&lt;/code&gt; &#12364;&#22793;&#26356;&#12373;&#12428;&#12383;&#22580;&#21512;&#12395;&#12399;&#20840;&#12390;&#12398; spec &#12434;&#23455;&#34892;&#12375;&#30452;&#12377;&#12290;&lt;/p&gt;

&lt;p&gt;(4) &#12391;&#12399;&#12289;&#36861;&#21152;&#12375;&#12383;&#20840;&#12390;&#12398; engine &#12398; spec&#12289;&#21450;&#12403;&#12289;app &#37197;&#19979;&#12398;&#12487;&#12451;&#12524;&#12463;&#12488;&#12522;&#12434;&#30435;&#35222;&#12375;&#12390;&#12362;&#12365;&#12289;&#22793;&#26356;&#12364;&#12354;&#12387;&#12383;&#22580;&#21512;&#12395;&#12399;&#35442;&#24403;&#12377;&#12427; spec &#12434;&#23455;&#34892;&#12377;&#12427;&#12290;&#21508; engine &#12395;&#23550;&#12375;&#12390; (1) &#12392; (2) &#12391;&#12420;&#12387;&#12390;&#12356;&#12427;&#12398;&#12392;&#21516;&#12376;&#12371;&#12392;&#12434;&#23455;&#34892;&#12375;&#12390;&#12356;&#12427;&#12371;&#12392;&#12395;&#12394;&#12427;&#12290;&lt;br /&gt;
&#12385;&#12394;&#12415;&#12395;&#12289;watch &#12513;&#12477;&#12483;&#12489;&#12408;&#12398;&#24341;&#25968;&#12398;&#12497;&#12479;&#12540;&#12531;&#12391;&#12358;&#12414;&#12367;&#12497;&#12479;&#12540;&#12531;&#12434;&#32068;&#12417;&#12428;&#12400; &lt;code&gt;Dir&lt;/code&gt; &#12434;&#20351;&#12387;&#12390; engine &#12398;&#12487;&#12451;&#12524;&#12463;&#12488;&#12522;&#12434;&#25506;&#32034;&#12373;&#12379;&#12390;&#12420;&#12427;&#12371;&#12392;&#12418;&#12394;&#12356;&#12398;&#12384;&#12364;&#12289;&#20170;&#22238;&#12358;&#12414;&#12367;&#12510;&#12483;&#12481;&#12373;&#12379;&#12425;&#12428;&#12394;&#12363;&#12387;&#12383;&#12398;&#12391;&#12371;&#12398;&#12424;&#12358;&#12394;&#26360;&#12365;&#26041;&#12395;&#12394;&#12387;&#12390;&#12356;&#12427;&#12290;&#33391;&#12356;&#26360;&#12365;&#26041;&#12434;&#35211;&#12388;&#12369;&#12383;&#12425;&#22793;&#26356;&#12375;&#12390;&#12362;&#12371;&#12358;&#12290;&lt;/p&gt;

&lt;p&gt;(5) &#12399; rspec &#12398;&#23455;&#34892;&#37096;&#20998;&#12384;&#12364;&#12289;&lt;code&gt;--drb&lt;/code&gt; &#12458;&#12503;&#12471;&#12519;&#12531;&#12434;&#20351;&#12358;&#12371;&#12392;&#12391;&#35023;&#12391;&#36215;&#21205;&#12375;&#12390;&#12356;&#12427; spork &#12434;&#21033;&#29992;&#12377;&#12427;&#12398;&#12391;&#12289;&#24453;&#12385;&#26178;&#38291;&#12394;&#12367;&#21363;&#24231;&#12395;&#12486;&#12473;&#12488;&#12364;&#23455;&#34892;&#12373;&#12428;&#12427;&#12290;&lt;/p&gt;

&lt;p&gt;&#29992;&#24847;&#12375;&#12383; &lt;code&gt;rails.watchr&lt;/code&gt; &#12434; &lt;code&gt;watchr&lt;/code&gt; &#12467;&#12510;&#12531;&#12489;&#12434;&#20351;&#12387;&#12390;&#36215;&#21205;&#12375;&#12390;&#12362;&#12367;&#12290;&lt;/p&gt;

&lt;pre class="shell"&gt;&lt;code class="language-shell"&gt;$ watchr rails.watchr
&lt;/code&gt;&lt;/pre&gt;

&lt;p&gt;&#12371;&#12428;&#12391;&#12289;spec&#12289;&#12418;&#12375;&#12367;&#12399;&#12289;app &#37197;&#19979;&#12395;&#22793;&#26356;&#12434;&#21152;&#12360;&#12427;&#24230;&#12395;&#38306;&#36899;&#12377;&#12427;&#12486;&#12473;&#12488;&#12364;&#20877;&#23455;&#34892;&#12373;&#12428;&#12427;&#12398;&#12391;&#12289;&#12424;&#12363;&#12425;&#12396;&#12371;&#12392;&#12434;&#12420;&#12387;&#12390;&#12375;&#12414;&#12387;&#12383;&#22580;&#21512;&#12395;&#12399;&#12377;&#12368;&#12395;&#27671;&#12389;&#12367;&#12371;&#12392;&#12364;&#12391;&#12365;&#12427;&#12290;&lt;/p&gt;

&lt;p&gt;&#24460;&#21322;&#12398; watchr &#12398;&#37096;&#20998;&#12399;&#12289;&lt;/p&gt;

&lt;ul&gt;
  &lt;li&gt;&lt;a href="http://pragprog.com/titles/rcctr/continuous-testing"&gt;The Pragmatic Bookshelf - Continuous Testing&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;&#12434;&#21442;&#32771;&#12395;&#12375;&#12383;&#12290;&lt;/p&gt;
</summary>
  </entry>
  <entry>
    <id>tag:blog.designrecipe.jp,2011-02-28:/2011/02/28/rails-in-rack/</id>
    <title type="html">Rails3 &#12395;&#12362;&#12369;&#12427; Rack</title>
    <published>2011-02-27T16:06:00Z</published>
    <updated>2011-02-27T16:06:00Z</updated>
    <link rel="alternate" href="http://blog.designrecipe.jp/2011/02/28/rails-in-rack/"/>
    <content type="html">&lt;p&gt;Rails3 &#12399;&#23436;&#20840;&#12394; Rack &#12450;&#12503;&#12522;&#12465;&#12540;&#12471;&#12519;&#12531;&#12395;&#12394;&#12387;&#12383;&#12392;&#12289;&#12418;&#12398;&#12398;&#26412;&#12391;&#12399;&#30446;&#12434;&#36890;&#12375;&#12390;&#12356;&#12383;&#12364;&#12289;&#23455;&#38555;&#12395;&#35430;&#12375;&#12390;&#12356;&#12394;&#12363;&#12387;&#12383;&#12398;&#12391;&#30906;&#35469;&#12375;&#12390;&#12415;&#12383;&#12290;&lt;/p&gt;

&lt;pre class="shell"&gt;&lt;code class="language-shell"&gt;$ rails new rails_in_rack
$ cd rails_in_rack
&lt;/code&gt;&lt;/pre&gt;

&lt;p&gt;Rack &#28310;&#25312;&#12398;&#12469;&#12540;&#12496;&#12399;&#12289;Rack &#12398;&#27770;&#12414;&#12426;&#12395;&#24467;&#12387;&#12390;&#12289;&lt;code&gt;RAILS_ROOT/config.ru&lt;/code&gt; &#12363;&#12425;&#35501;&#12415;&#36796;&#12416;&#12290;&#12371;&#12398;&#12501;&#12449;&#12452;&#12523;&#12398;&#20013;&#36523;&#12434;&#35211;&#12390;&#12415;&#12427;&#12392;&#12289;&lt;/p&gt;

&lt;pre class="ruby"&gt;&lt;code class="language-ruby"&gt;require ::File.expand_path('../config/environment',  __FILE__)
run RailsInRack::Application
&lt;/code&gt;&lt;/pre&gt;

&lt;p&gt;&lt;code&gt;RAILS_ROOT/config/environment.rb&lt;/code&gt; &#12434;&#35501;&#12415;&#36796;&#12435;&#12384;&#24460;&#12395;&#12289;&lt;code&gt;RailsInRack::Application&lt;/code&gt; &#12434; run &#12375;&#12390;&#12356;&#12427;&#12290;&lt;/p&gt;

&lt;p&gt;Rack &#12398;&#12456;&#12531;&#12488;&#12522;&#12509;&#12452;&#12531;&#12488;&#12392;&#21516;&#27096;&#12395;&#12394;&#12387;&#12390;&#12356;&#12427;&#12290;&lt;/p&gt;

&lt;p&gt;&#12414;&#12383;&#12289;&#12523;&#12540;&#12486;&#12451;&#12531;&#12464;&#20808;&#12395;&#25351;&#23450;&#12377;&#12427;&#12458;&#12502;&#12472;&#12455;&#12463;&#12488;&#12399;&#12383;&#12384;&#12398; Rack &#12450;&#12503;&#12522;&#12392;&#12394;&#12387;&#12390;&#12356;&#12427;&#12392;&#12398;&#12371;&#12392;&#12290;&lt;br /&gt;
(&#12523;&#12540;&#12486;&#12451;&#12531;&#12464;&#20966;&#29702;&#12418; Rack &#12398;&#12524;&#12452;&#12516;&#12392;&#12394;&#12387;&#12390;&#12356;&#12427;&#12424;&#12358;&#12384;&#12290;)&lt;/p&gt;

&lt;p&gt;&#12391;&#12354;&#12428;&#12400;&#12289;&#35430;&#12375;&#12390;&#12415;&#12427;&#12290;&lt;/p&gt;

&lt;p&gt;Rack &#12450;&#12503;&#12522;&#12465;&#12540;&#12471;&#12519;&#12531;&#12399;&#12289;call &#12513;&#12477;&#12483;&#12489;&#12434;&#23455;&#35013;&#12375;&#12390;&#12356;&#12428;&#12400;&#12424;&#12367;&#12289;call &#12513;&#12477;&#12483;&#12489;&#12399;&#12289;&#12522;&#12463;&#12456;&#12473;&#12488;&#30330;&#29983;&#26178;&#12395;&#12289;&#29872;&#22659;&#22793;&#25968;(env)&#12434;&#24341;&#25968;&#12395;&#21628;&#12403;&#20986;&#12373;&#12428;&#12427;&#12398;&#12391;&#12289;&#26368;&#24460;&#12395;&#12524;&#12473;&#12509;&#12531;&#12473;&#12392;&#12394;&#12427;&#12452;&#12531;&#12473;&#12479;&#12531;&#12473;&#12434;&#32080;&#26524;&#12392;&#12375;&#12390;&#36820;&#12377;&#20966;&#29702;&#12434;&#26360;&#12367;&#12384;&#12369;&#12392;&#12394;&#12427;&#12290;&lt;/p&gt;

&lt;p&gt;Proc &#12458;&#12502;&#12472;&#12455;&#12463;&#12488;&#12391;&#26360;&#12369;&#12427;&#12398;&#12391;&#12289;&#30452;&#25509;&#12523;&#12540;&#12486;&#12451;&#12531;&#12464;&#20808;&#12395; Rack &#12450;&#12503;&#12522;&#12465;&#12540;&#12471;&#12519;&#12531;&#12434;&#25351;&#23450;&#12375;&#12390;&#12415;&#12427;&#12290;&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;&lt;code&gt;RAILS_ROOT/config/routes.rb&lt;/code&gt;:&lt;/strong&gt;&lt;/p&gt;

&lt;pre class="ruby"&gt;&lt;code class="language-ruby"&gt;RailsInRack::Application.routes.draw do
  root :to =&amp;gt; proc { |env| [200, {}, ['Hello! from proc app']] }
end
&lt;/code&gt;&lt;/pre&gt;

&lt;p&gt;&lt;code&gt;RAILS_ROOT/public/index.html&lt;/code&gt; &#12434;&#21066;&#38500;&#12375;&#12390;&#12362;&#12356;&#12390;&#12289;&#12469;&#12540;&#12496;&#12434;&#36215;&#21205;&#12375;&#12390; &lt;code&gt;http://localhost:3000/&lt;/code&gt; &#12395;&#12450;&#12463;&#12475;&#12473;&#12375;&#12390;&#12415;&#12427;&#12290;&lt;/p&gt;

&lt;pre class="shell"&gt;&lt;code class="language-shell"&gt;$ rm public/index.html
$ rails s
&lt;/code&gt;&lt;/pre&gt;

&lt;p&gt;&lt;img src="/assets/images/ruby-misc/rails-in-rack-1-w500.png" alt="rails-in-rack-1" /&gt;&lt;/p&gt;

&lt;p&gt;&#30906;&#12363;&#12395;&#21205;&#20316;&#12375;&#12390;&#12356;&#12427;&#12290;&lt;/p&gt;

&lt;p&gt;&#12392;&#12356;&#12358;&#12371;&#12392;&#12399;&#12289;Sinatra &#12391;&#12418;&#21205;&#20316;&#12377;&#12427;&#12290;&lt;/p&gt;

&lt;p&gt;&lt;code&gt;RAILS_ROOT/Gemfile&lt;/code&gt; &#12395;&#20197;&#19979;&#12434;&#36861;&#21152;&#12375;&#12289;Bunder &#12434;&#23455;&#34892;&#12377;&#12427;&#12290;&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;&lt;code&gt;RAILS_ROOT/Gemfile&lt;/code&gt;:&lt;/strong&gt;&lt;/p&gt;

&lt;pre class="ruby"&gt;&lt;code class="language-ruby"&gt;gem 'sinatra'
&lt;/code&gt;&lt;/pre&gt;

&lt;pre class="shell"&gt;&lt;code class="language-shell"&gt;$ bundle install
&lt;/code&gt;&lt;/pre&gt;

&lt;p&gt;Sinatra &#12450;&#12503;&#12522;&#12465;&#12540;&#12471;&#12519;&#12531;&#12434;&#29992;&#24847;&#12377;&#12427;&#12290;&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;&lt;code&gt;RAILS_ROOT/lib/home_app.rb&lt;/code&gt;:&lt;/strong&gt;&lt;/p&gt;

&lt;pre class="ruby"&gt;&lt;code class="language-ruby"&gt;class HomeApp &amp;lt; Sinatra::Base
  get '/' do
    'Hello! from Sinatra'
  end
end
&lt;/code&gt;&lt;/pre&gt;

&lt;p&gt;Rails3 &#12363;&#12425;&#12487;&#12501;&#12457;&#12523;&#12488;&#12391;&#12399; &lt;code&gt;RAILS_ROOT/lib&lt;/code&gt; &#37197;&#19979;&#12399;&#12525;&#12540;&#12489;&#12497;&#12473;&#12395;&#21152;&#12360;&#12425;&#12428;&#12394;&#12367;&#12394;&#12387;&#12390;&#12356;&#12427;&#12290;
&lt;code&gt;RAILS_ROOT/config/application.rb&lt;/code&gt; &#12395;&#20197;&#19979;&#12434;&#36861;&#21152;&#12375;&#12390;&#12362;&#12367;&#12290;&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;&lt;code&gt;RAILS_ROOT/config/application.rb&lt;/code&gt;:&lt;/strong&gt;&lt;/p&gt;

&lt;pre class="ruby"&gt;&lt;code class="language-ruby"&gt;module RailsInRack
  class Application &amp;lt; Rails::Application
  ...
    config.autoload_paths += Dir["#{config.root}/lib/**/"]
  ...
  en
end
&lt;/code&gt;&lt;/pre&gt;

&lt;p&gt;&#12523;&#12540;&#12486;&#12451;&#12531;&#12464;&#12398;&#21628;&#12403;&#20808;&#12434;&#20808;&#12411;&#12393;&#29992;&#24847;&#12375;&#12383; Sinatra &#12450;&#12503;&#12522;&#12395;&#22793;&#26356;&#12375;&#12390;&#12362;&#12367;&#12290;&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;&lt;code&gt;RAILS_ROOT/config/routes.rb&lt;/code&gt;:&lt;/strong&gt;&lt;/p&gt;

&lt;pre class="ruby"&gt;&lt;code class="language-ruby"&gt;RailsInRack::Application.routes.draw do
  root :to =&amp;gt; HomeApp
end
&lt;/code&gt;&lt;/pre&gt;

&lt;p&gt;&#20877;&#24230; &lt;code&gt;http://localhost:3000/&lt;/code&gt; &#12395;&#12450;&#12463;&#12475;&#12473;&#12375;&#12390;&#12415;&#12427;&#12290;&lt;/p&gt;

&lt;p&gt;&lt;img src="/assets/images/ruby-misc/rails-in-rack-2-w500.png" alt="rails-in-rack-1" /&gt;&lt;/p&gt;

&lt;p&gt;&#30906;&#12363;&#12395; Sinatra &#12450;&#12503;&#12522;&#12418;&#21205;&#20316;&#12375;&#12383;&#12290;&lt;/p&gt;

&lt;p&gt;&#23436;&#20840;&#12394; Rack &#12450;&#12503;&#12522;&#12465;&#12540;&#12471;&#12519;&#12531;&#12395;&#12394;&#12387;&#12383;&#12392;&#12356;&#12358;&#12371;&#12392;&#12399;&#12289;Rack Middleware &#12398;&#36039;&#29987;&#12418;&#12381;&#12398;&#12414;&#12414;&#20351;&#12360;&#12427;&#12290;&lt;/p&gt;

&lt;p&gt;&#30446;&#30340;&#12395;&#24540;&#12376;&#12390;&#12289;&#32068;&#12415;&#36796;&#12416;&#22580;&#25152;&#12364;&#36984;&#12409;&#12427;&#12290;&lt;/p&gt;

&lt;ul&gt;
  &lt;li&gt;&lt;code&gt;RAILS_ROOT/config.fu&lt;/code&gt;&lt;br /&gt;
Rails &#26412;&#20307;&#12424;&#12426;&#12418;&#20808;&#12395;&#12525;&#12540;&#12489;&#12375;&#12289;&#36969;&#29992;&lt;/li&gt;
  &lt;li&gt;&lt;code&gt;Application.config&lt;/code&gt;(&lt;code&gt;RAILS_ROOT/config/application.rb&lt;/code&gt;)&lt;br /&gt;
Rails &#12398;&#36890;&#24120;&#12398;&#12522;&#12463;&#12456;&#12473;&#12488;&#20966;&#29702;&#12395;&#23550;&#12375;&#12390;&#36969;&#29992;&lt;/li&gt;
  &lt;li&gt;&lt;code&gt;&#12467;&#12531;&#12488;&#12525;&#12540;&#12521;&lt;/code&gt;&lt;br /&gt;
&#21508;&#12467;&#12531;&#12488;&#12525;&#12540;&#12521;&#12391;&#12289;&lt;code&gt;filter&lt;/code&gt; &#21516;&#27096;&#12395;&#36969;&#29992;&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;&#22823;&#12365;&#12367;&#36914;&#21270;&#12375;&#12383; Rails3 &#12384;&#12364;&#12289;&#23436;&#20840;&#12394; Rack &#12450;&#12503;&#12522;&#12465;&#12540;&#12471;&#12519;&#12531;&#12395;&#12394;&#12387;&#12383;&#12398;&#12399;&#12358;&#12428;&#12375;&#12356;&#12290;&lt;/p&gt;
</content>
    <summary type="html">&lt;p&gt;Rails3 &#12399;&#23436;&#20840;&#12394; Rack &#12450;&#12503;&#12522;&#12465;&#12540;&#12471;&#12519;&#12531;&#12395;&#12394;&#12387;&#12383;&#12392;&#12289;&#12418;&#12398;&#12398;&#26412;&#12391;&#12399;&#30446;&#12434;&#36890;&#12375;&#12390;&#12356;&#12383;&#12364;&#12289;&#23455;&#38555;&#12395;&#35430;&#12375;&#12390;&#12356;&#12394;&#12363;&#12387;&#12383;&#12398;&#12391;&#30906;&#35469;&#12375;&#12390;&#12415;&#12383;&#12290;&lt;/p&gt;

&lt;pre class="shell"&gt;&lt;code class="language-shell"&gt;$ rails new rails_in_rack
$ cd rails_in_rack
&lt;/code&gt;&lt;/pre&gt;

&lt;p&gt;Rack &#28310;&#25312;&#12398;&#12469;&#12540;&#12496;&#12399;&#12289;Rack &#12398;&#27770;&#12414;&#12426;&#12395;&#24467;&#12387;&#12390;&#12289;&lt;code&gt;RAILS_ROOT/config.ru&lt;/code&gt; &#12363;&#12425;&#35501;&#12415;&#36796;&#12416;&#12290;&#12371;&#12398;&#12501;&#12449;&#12452;&#12523;&#12398;&#20013;&#36523;&#12434;&#35211;&#12390;&#12415;&#12427;&#12392;&#12289;&lt;/p&gt;

&lt;pre class="ruby"&gt;&lt;code class="language-ruby"&gt;require ::File.expand_path('../config/environment',  __FILE__)
run RailsInRack::Application
&lt;/code&gt;&lt;/pre&gt;

&lt;p&gt;&lt;code&gt;RAILS_ROOT/config/environment.rb&lt;/code&gt; &#12434;&#35501;&#12415;&#36796;&#12435;&#12384;&#24460;&#12395;&#12289;&lt;code&gt;RailsInRack::Application&lt;/code&gt; &#12434; run &#12375;&#12390;&#12356;&#12427;&#12290;&lt;/p&gt;

&lt;p&gt;Rack &#12398;&#12456;&#12531;&#12488;&#12522;&#12509;&#12452;&#12531;&#12488;&#12392;&#21516;&#27096;&#12395;&#12394;&#12387;&#12390;&#12356;&#12427;&#12290;&lt;/p&gt;

&lt;p&gt;&#12414;&#12383;&#12289;&#12523;&#12540;&#12486;&#12451;&#12531;&#12464;&#20808;&#12395;&#25351;&#23450;&#12377;&#12427;&#12458;&#12502;&#12472;&#12455;&#12463;&#12488;&#12399;&#12383;&#12384;&#12398; Rack &#12450;&#12503;&#12522;&#12392;&#12394;&#12387;&#12390;&#12356;&#12427;&#12392;&#12398;&#12371;&#12392;&#12290;&lt;br /&gt;
(&#12523;&#12540;&#12486;&#12451;&#12531;&#12464;&#20966;&#29702;&#12418; Rack &#12398;&#12524;&#12452;&#12516;&#12392;&#12394;&#12387;&#12390;&#12356;&#12427;&#12424;&#12358;&#12384;&#12290;)&lt;/p&gt;

&lt;p&gt;&#12391;&#12354;&#12428;&#12400;&#12289;&#35430;&#12375;&#12390;&#12415;&#12427;&#12290;&lt;/p&gt;

&lt;p&gt;Rack &#12450;&#12503;&#12522;&#12465;&#12540;&#12471;&#12519;&#12531;&#12399;&#12289;call &#12513;&#12477;&#12483;&#12489;&#12434;&#23455;&#35013;&#12375;&#12390;&#12356;&#12428;&#12400;&#12424;&#12367;&#12289;call &#12513;&#12477;&#12483;&#12489;&#12399;&#12289;&#12522;&#12463;&#12456;&#12473;&#12488;&#30330;&#29983;&#26178;&#12395;&#12289;&#29872;&#22659;&#22793;&#25968;(env)&#12434;&#24341;&#25968;&#12395;&#21628;&#12403;&#20986;&#12373;&#12428;&#12427;&#12398;&#12391;&#12289;&#26368;&#24460;&#12395;&#12524;&#12473;&#12509;&#12531;&#12473;&#12392;&#12394;&#12427;&#12452;&#12531;&#12473;&#12479;&#12531;&#12473;&#12434;&#32080;&#26524;&#12392;&#12375;&#12390;&#36820;&#12377;&#20966;&#29702;&#12434;&#26360;&#12367;&#12384;&#12369;&#12392;&#12394;&#12427;&#12290;&lt;/p&gt;

&lt;p&gt;Proc &#12458;&#12502;&#12472;&#12455;&#12463;&#12488;&#12391;&#26360;&#12369;&#12427;&#12398;&#12391;&#12289;&#30452;&#25509;&#12523;&#12540;&#12486;&#12451;&#12531;&#12464;&#20808;&#12395; Rack &#12450;&#12503;&#12522;&#12465;&#12540;&#12471;&#12519;&#12531;&#12434;&#25351;&#23450;&#12375;&#12390;&#12415;&#12427;&#12290;&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;&lt;code&gt;RAILS_ROOT/config/routes.rb&lt;/code&gt;:&lt;/strong&gt;&lt;/p&gt;

&lt;pre class="ruby"&gt;&lt;code class="language-ruby"&gt;RailsInRack::Application.routes.draw do
  root :to =&amp;gt; proc { |env| [200, {}, ['Hello! from proc app']] }
end
&lt;/code&gt;&lt;/pre&gt;

&lt;p&gt;&lt;code&gt;RAILS_ROOT/public/index.html&lt;/code&gt; &#12434;&#21066;&#38500;&#12375;&#12390;&#12362;&#12356;&#12390;&#12289;&#12469;&#12540;&#12496;&#12434;&#36215;&#21205;&#12375;&#12390; &lt;code&gt;http://localhost:3000/&lt;/code&gt; &#12395;&#12450;&#12463;&#12475;&#12473;&#12375;&#12390;&#12415;&#12427;&#12290;&lt;/p&gt;

&lt;pre class="shell"&gt;&lt;code class="language-shell"&gt;$ rm public/index.html
$ rails s
&lt;/code&gt;&lt;/pre&gt;

&lt;p&gt;&lt;img src="/assets/images/ruby-misc/rails-in-rack-1-w500.png" alt="rails-in-rack-1" /&gt;&lt;/p&gt;

&lt;p&gt;&#30906;&#12363;&#12395;&#21205;&#20316;&#12375;&#12390;&#12356;&#12427;&#12290;&lt;/p&gt;

&lt;p&gt;&#12392;&#12356;&#12358;&#12371;&#12392;&#12399;&#12289;Sinatra &#12391;&#12418;&#21205;&#20316;&#12377;&#12427;&#12290;&lt;/p&gt;

&lt;p&gt;&lt;code&gt;RAILS_ROOT/Gemfile&lt;/code&gt; &#12395;&#20197;&#19979;&#12434;&#36861;&#21152;&#12375;&#12289;Bunder &#12434;&#23455;&#34892;&#12377;&#12427;&#12290;&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;&lt;code&gt;RAILS_ROOT/Gemfile&lt;/code&gt;:&lt;/strong&gt;&lt;/p&gt;

&lt;pre class="ruby"&gt;&lt;code class="language-ruby"&gt;gem 'sinatra'
&lt;/code&gt;&lt;/pre&gt;

&lt;pre class="shell"&gt;&lt;code class="language-shell"&gt;$ bundle install
&lt;/code&gt;&lt;/pre&gt;

&lt;p&gt;Sinatra &#12450;&#12503;&#12522;&#12465;&#12540;&#12471;&#12519;&#12531;&#12434;&#29992;&#24847;&#12377;&#12427;&#12290;&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;&lt;code&gt;RAILS_ROOT/lib/home_app.rb&lt;/code&gt;:&lt;/strong&gt;&lt;/p&gt;

&lt;pre class="ruby"&gt;&lt;code class="language-ruby"&gt;class HomeApp &amp;lt; Sinatra::Base
  get '/' do
    'Hello! from Sinatra'
  end
end
&lt;/code&gt;&lt;/pre&gt;

&lt;p&gt;Rails3 &#12363;&#12425;&#12487;&#12501;&#12457;&#12523;&#12488;&#12391;&#12399; &lt;code&gt;RAILS_ROOT/lib&lt;/code&gt; &#37197;&#19979;&#12399;&#12525;&#12540;&#12489;&#12497;&#12473;&#12395;&#21152;&#12360;&#12425;&#12428;&#12394;&#12367;&#12394;&#12387;&#12390;&#12356;&#12427;&#12290;
&lt;code&gt;RAILS_ROOT/config/application.rb&lt;/code&gt; &#12395;&#20197;&#19979;&#12434;&#36861;&#21152;&#12375;&#12390;&#12362;&#12367;&#12290;&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;&lt;code&gt;RAILS_ROOT/config/application.rb&lt;/code&gt;:&lt;/strong&gt;&lt;/p&gt;

&lt;pre class="ruby"&gt;&lt;code class="language-ruby"&gt;module RailsInRack
  class Application &amp;lt; Rails::Application
  ...
    config.autoload_paths += Dir["#{config.root}/lib/**/"]
  ...
  en
end
&lt;/code&gt;&lt;/pre&gt;

&lt;p&gt;&#12523;&#12540;&#12486;&#12451;&#12531;&#12464;&#12398;&#21628;&#12403;&#20808;&#12434;&#20808;&#12411;&#12393;&#29992;&#24847;&#12375;&#12383; Sinatra &#12450;&#12503;&#12522;&#12395;&#22793;&#26356;&#12375;&#12390;&#12362;&#12367;&#12290;&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;&lt;code&gt;RAILS_ROOT/config/routes.rb&lt;/code&gt;:&lt;/strong&gt;&lt;/p&gt;

&lt;pre class="ruby"&gt;&lt;code class="language-ruby"&gt;RailsInRack::Application.routes.draw do
  root :to =&amp;gt; HomeApp
end
&lt;/code&gt;&lt;/pre&gt;

&lt;p&gt;&#20877;&#24230; &lt;code&gt;http://localhost:3000/&lt;/code&gt; &#12395;&#12450;&#12463;&#12475;&#12473;&#12375;&#12390;&#12415;&#12427;&#12290;&lt;/p&gt;

&lt;p&gt;&lt;img src="/assets/images/ruby-misc/rails-in-rack-2-w500.png" alt="rails-in-rack-1" /&gt;&lt;/p&gt;

&lt;p&gt;&#30906;&#12363;&#12395; Sinatra &#12450;&#12503;&#12522;&#12418;&#21205;&#20316;&#12375;&#12383;&#12290;&lt;/p&gt;

&lt;p&gt;&#23436;&#20840;&#12394; Rack &#12450;&#12503;&#12522;&#12465;&#12540;&#12471;&#12519;&#12531;&#12395;&#12394;&#12387;&#12383;&#12392;&#12356;&#12358;&#12371;&#12392;&#12399;&#12289;Rack Middleware &#12398;&#36039;&#29987;&#12418;&#12381;&#12398;&#12414;&#12414;&#20351;&#12360;&#12427;&#12290;&lt;/p&gt;

&lt;p&gt;&#30446;&#30340;&#12395;&#24540;&#12376;&#12390;&#12289;&#32068;&#12415;&#36796;&#12416;&#22580;&#25152;&#12364;&#36984;&#12409;&#12427;&#12290;&lt;/p&gt;

&lt;ul&gt;
  &lt;li&gt;&lt;code&gt;RAILS_ROOT/config.fu&lt;/code&gt;&lt;br /&gt;
Rails &#26412;&#20307;&#12424;&#12426;&#12418;&#20808;&#12395;&#12525;&#12540;&#12489;&#12375;&#12289;&#36969;&#29992;&lt;/li&gt;
  &lt;li&gt;&lt;code&gt;Application.config&lt;/code&gt;(&lt;code&gt;RAILS_ROOT/config/application.rb&lt;/code&gt;)&lt;br /&gt;
Rails &#12398;&#36890;&#24120;&#12398;&#12522;&#12463;&#12456;&#12473;&#12488;&#20966;&#29702;&#12395;&#23550;&#12375;&#12390;&#36969;&#29992;&lt;/li&gt;
  &lt;li&gt;&lt;code&gt;&#12467;&#12531;&#12488;&#12525;&#12540;&#12521;&lt;/code&gt;&lt;br /&gt;
&#21508;&#12467;&#12531;&#12488;&#12525;&#12540;&#12521;&#12391;&#12289;&lt;code&gt;filter&lt;/code&gt; &#21516;&#27096;&#12395;&#36969;&#29992;&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;&#22823;&#12365;&#12367;&#36914;&#21270;&#12375;&#12383; Rails3 &#12384;&#12364;&#12289;&#23436;&#20840;&#12394; Rack &#12450;&#12503;&#12522;&#12465;&#12540;&#12471;&#12519;&#12531;&#12395;&#12394;&#12387;&#12383;&#12398;&#12399;&#12358;&#12428;&#12375;&#12356;&#12290;&lt;/p&gt;
</summary>
  </entry>
</feed>

