OSDN Git Service

e0b7108c80793e5b431619efdec98e2e92736c4b
[ring-lang-081/ring.git] / docs / build / html / deployincloud.html
1 <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
2   "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
3
4
5 <html xmlns="http://www.w3.org/1999/xhtml">
6   <head>
7     <meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
8     
9     <title>クラウド経由でのウェブアプリケーションの配布方法 &mdash; プログラミング言語 Ring 1.12 取扱説明書</title>
10     
11     <link rel="stylesheet" href="_static/bootstrap-astropy.css" type="text/css" />
12     <link rel="stylesheet" href="_static/pygments.css" type="text/css" />
13     
14     <script type="text/javascript">
15       var DOCUMENTATION_OPTIONS = {
16         URL_ROOT:    './',
17         VERSION:     '1.12',
18         COLLAPSE_INDEX: false,
19         FILE_SUFFIX: '.html',
20         HAS_SOURCE:  true
21       };
22     </script>
23     <script type="text/javascript" src="_static/jquery.js"></script>
24     <script type="text/javascript" src="_static/underscore.js"></script>
25     <script type="text/javascript" src="_static/doctools.js"></script>
26     <script type="text/javascript" src="_static/translations.js"></script>
27     <link rel="top" title="プログラミング言語 Ring 1.12 取扱説明書" href="index.html" />
28     <link rel="next" title="RingLibCurl の用法" href="libcurl.html" />
29     <link rel="prev" title="ウェブ開発 (CGI ライブラリ)" href="web.html" />
30     <link href='https://fonts.googleapis.com/css?family=Source+Sans+Pro:200,600' rel='stylesheet' type='text/css'/>
31
32   </head>
33   <body role="document">
34 <div class="topbar">
35   <a class="brand" title="Documentation Home" href="index.html"><span id="logotext1">&#x1f369;Ring</span><span id="logotext2"> 1.12</span><span id="logotext3">:docs</span></a>
36   <ul>
37     
38     <li><a href="http://ring-lang.sourceforge.net/news.html">News</a></li>
39     <li><a href="http://ring-lang.sourceforge.net/download.html">Download</a></li>
40     <li><a href="https://groups.google.com/forum/#!forum/ring-lang">Get Help</a></li>
41     <li><a href="https://github.com/ring-lang/ring">Contribute</a></li>
42     <li><a href="http://ring-lang.sourceforge.net/resources.html">Resources</a></li>
43     <li><a href="http://ring-lang.sourceforge.net/team.html">Team</a></li>
44     
45     <li><a title="Ring Homepage" href="http://ring-lang.net/">Website</a></li>
46     <li><a title="総合索引" href="genindex.html">Index</a></li>
47     <li>
48       
49       
50 <form action="search.html" method="get">
51   <input type="text" name="q" placeholder="Search" />
52   <input type="hidden" name="check_keywords" value="yes" />
53   <input type="hidden" name="area" value="default" />
54 </form>
55       
56     </li>
57   </ul>
58 </div>
59
60 <div class="related">
61     <h3>ナビゲーション</h3>
62     <ul>
63       <li class="right">
64         <a href="libcurl.html" title="RingLibCurl の用法">
65           next &raquo;
66         </a>
67       </li>
68       <li class="right">
69         <a href="web.html" title="ウェブ開発 (CGI ライブラリ)">
70           &laquo; previous
71         </a>
72          |
73       </li>
74       <li>
75         <a href="index.html">プログラミング言語 Ring 1.12 取扱説明書</a>
76          &raquo;
77       </li>
78       
79       <li>クラウド経由でのウェブアプリケーションの配布方法</li> 
80     </ul>
81 </div>
82   
83
84     <div class="document">
85       <div class="documentwrapper">
86         <div class="bodywrapper">
87           <div class="body" role="main">
88             
89   <div class="section" id="index-0">
90 <span id="id1"></span><h1>クラウド経由でのウェブアプリケーションの配布方法<a class="headerlink" href="#index-0" title="このヘッドラインへのパーマリンク">¶</a></h1>
91 <p>クラウドサービスである Heroku で Ring ウェブアプリケーションを配布する方法を学びます。</p>
92 <div class="section" id="index-1">
93 <span id="id2"></span><h2>はじめに<a class="headerlink" href="#index-1" title="このヘッドラインへのパーマリンク">¶</a></h2>
94 <p>これは新規プロジェクトの作成方法、およびクラウドサービスである Heroku で Ring ウェブアプリケーションを配布する方法を解説するためのチュートリアルです。</p>
95 <p>デモ : <a class="reference external" href="http://testring.herokuapp.com/">http://testring.herokuapp.com/</a></p>
96 <p>プロジェクト : <a class="reference external" href="https://github.com/ring-lang/RingWebAppOnHeroku">https://github.com/ring-lang/RingWebAppOnHeroku</a></p>
97 <p>Heroku ウェブサイト : <a class="reference external" href="https://www.heroku.com/">https://www.heroku.com/</a></p>
98 <img alt="クラウドでの Ring ウェブアプリケーション" src="_images/ringincloud.png" />
99 </div>
100 <div class="section" id="index-2">
101 <span id="id3"></span><h2>用法<a class="headerlink" href="#index-2" title="このヘッドラインへのパーマリンク">¶</a></h2>
102 <p>このプロジェクトを Heroku へ配布するには</p>
103 <ol class="arabic simple">
104 <li>Heroku アカウントを作成します</li>
105 <li>Heroku アカウントを開きアプリケーションの新規作成をします</li>
106 </ol>
107 <p>用例 : testring</p>
108 <div class="admonition note">
109 <p class="first admonition-title">注釈</p>
110 <p class="last">自作アプリケーションでは、必ず唯一無二の名前を選んでください。</p>
111 </div>
112 <ol class="arabic simple" start="3">
113 <li>コマンドプロンプトを開いて、新規フォルダを作成します : MyApp</li>
114 </ol>
115 <div class="highlight-none"><div class="highlight"><pre>md MyApp
116 </pre></div>
117 </div>
118 <ol class="arabic simple" start="4">
119 <li>アプリケーションのフォルダを開きます</li>
120 </ol>
121 <div class="highlight-none"><div class="highlight"><pre>cd MyApp
122 </pre></div>
123 </div>
124 <ol class="arabic simple" start="5">
125 <li>このプロジェクトを Git でクローンします (カレントディレクトリへクローンするときは、末尾にドットを付けるのをお忘れなく)</li>
126 </ol>
127 <div class="highlight-none"><div class="highlight"><pre>git clone https://github.com/ring-lang/RingWebAppOnHeroku .
128 </pre></div>
129 </div>
130 <ol class="arabic simple" start="6">
131 <li>Heroku へログインします (電子メートアドレスとパスワードを入力します)</li>
132 </ol>
133 <div class="highlight-none"><div class="highlight"><pre>heroku login
134 </pre></div>
135 </div>
136 <ol class="arabic simple" start="7">
137 <li>heroku (リモート) へ Git プロジェクトを追加します</li>
138 </ol>
139 <p>testring から自作アプリケーションの名前へ変更します</p>
140 <div class="highlight-none"><div class="highlight"><pre>heroku git:remote -a testring
141 </pre></div>
142 </div>
143 <ol class="arabic simple" start="8">
144 <li>buildpacks (ビルトパックス) を設定します (こうすることで Heroku はプロジェクトへの対応方法を認識できるようになります)</li>
145 </ol>
146 <div class="highlight-none"><div class="highlight"><pre>heroku buildpacks:add --index 1 https://github.com/ring-lang/heroku-buildpack-apt
147 heroku buildpacks:add --index 2 https://github.com/ring-lang/heroku-buildpack-ring
148 </pre></div>
149 </div>
150 <ol class="arabic simple" start="9">
151 <li>プロジェクトのビルトと配布をします</li>
152 </ol>
153 <div class="highlight-none"><div class="highlight"><pre>git push heroku master
154 </pre></div>
155 </div>
156 <ol class="arabic simple" start="10">
157 <li>プロジェクトのテスト (ブラウザで行います)</li>
158 </ol>
159 <div class="highlight-none"><div class="highlight"><pre>heroku open
160 </pre></div>
161 </div>
162 </div>
163 <div class="section" id="ring">
164 <span id="index-3"></span><h2>Ring ソースコードファイルとパーミッション<a class="headerlink" href="#ring" title="このヘッドラインへのパーマリンク">¶</a></h2>
165 <p>新規 Ring スクリプトを実行可能にするには Git で実行可能ファイルのパーミッションを設定します。</p>
166 <p>例えば、 myscript.ring を作成した場合は</p>
167 <div class="highlight-none"><div class="highlight"><pre>git update-index --chmod=+x myscript.ring
168 git commit -m &quot;Update file permission&quot;
169 </pre></div>
170 </div>
171 <p>TortoiseGit の場合は、 Windows エクスプローラでファイルを選択して</p>
172 <p>右クリック &#8212;&gt; プロパティ &#8212;&gt; Git &#8212;&gt; 実行 (+x)</p>
173 <p>その後、コミットと配布が行われます!</p>
174 </div>
175 <div class="section" id="hello-world">
176 <span id="index-4"></span><h2>Hello World プログラム<a class="headerlink" href="#hello-world" title="このヘッドラインへのパーマリンク">¶</a></h2>
177 <p>ファイル : ringapp/helloworld.ring</p>
178 <p>実行先 : <a class="reference external" href="http://testring.herokuapp.com/ringapp/helloworld.ring">http://testring.herokuapp.com/ringapp/helloworld.ring</a></p>
179 <div class="highlight-ring"><div class="highlight"><pre><span class="c">#!/app/runring.sh -cgi</span>
180
181 <span class="k">see</span> <span class="s">&quot;content-type: text/html&quot;</span> <span class="o">+</span><span class="n">nl</span><span class="o">+</span><span class="n">nl</span>
182 <span class="k">see</span> <span class="s">&quot;Hello, World!&quot;</span> <span class="o">+</span> <span class="n">nl</span>
183 </pre></div>
184 </div>
185 <p>ファイル : ringapp/helloworld2.ring</p>
186 <p>実行先 : <a class="reference external" href="http://testring.herokuapp.com/ringapp/helloworld2.ring">http://testring.herokuapp.com/ringapp/helloworld2.ring</a></p>
187 <div class="highlight-ring"><div class="highlight"><pre><span class="c">#!/app/runring.sh -cgi</span>
188 <span class="k">load</span> <span class="s">&quot;weblib.ring&quot;</span>
189 <span class="k">import</span> <span class="n">System</span><span class="p">.</span><span class="n">Web</span>
190 <span class="k">new</span> <span class="n">page</span> <span class="p">{</span>
191         <span class="n">text</span><span class="p">(</span><span class="s">&quot;Hello, World!&quot;</span><span class="p">)</span>
192 <span class="p">}</span>
193 </pre></div>
194 </div>
195 </div>
196 <div class="section" id="index-5">
197 <span id="id4"></span><h2>アプリケーションのデータベース<a class="headerlink" href="#index-5" title="このヘッドラインへのパーマリンク">¶</a></h2>
198 <p>アプリケーションを配布をする場合、そのまますべて動作します!</p>
199 <p>変更は不要ですが、実際はデータベースを使用するために、下記のファイルを更新してください。</p>
200 <p>データベースと相互作用する2本のスクリプトがあります (今回のクラウドでは PostgreSQL を使います)。</p>
201 <p>別のデータベースを使用する場合は、下記のファイルに記載されている接続文字列の更新が必要です。</p>
202 <ul class="simple">
203 <li>ファイル: ringapp/database/newdb.ring (テーブルを一括作成するにはブラウザで実行します)</li>
204 <li>ファイル: ringapp/datalib.ring (Database クラス)</li>
205 </ul>
206 <p>実プロジェクトでは、より優れたコードを記述できます (データベースは変更可能であるため)。</p>
207 <p>また、設定ファイルを作成できます (ある場所に接続文字列を記述するために)。</p>
208 <p>データベースサービス : <a class="reference external" href="https://www.heroku.com/postgres">https://www.heroku.com/postgres</a></p>
209 </div>
210 <div class="section" id="index-6">
211 <span id="id5"></span><h2>配布後の更新<a class="headerlink" href="#index-6" title="このヘッドラインへのパーマリンク">¶</a></h2>
212 <p>Git でコミット後に heroku へ push (プッシュ) します。</p>
213 <p>ファイル: 手軽にテストができるよう build.bat には下記のコマンドが記載されています。</p>
214 <div class="highlight-none"><div class="highlight"><pre>git add .
215 git commit -m &quot;Update RingWebAppOnHeroku&quot;
216 git push heroku master
217 heroku open
218 </pre></div>
219 </div>
220 </div>
221 <div class="section" id="index-7">
222 <span id="id6"></span><h2>ローカルテスト<a class="headerlink" href="#index-7" title="このヘッドラインへのパーマリンク">¶</a></h2>
223 <p>ローカルテストを行うには Windows で Ring ノートパッドを使用します (ローカルの Apache ウェブサーバーで試験実行)</p>
224 <p>ringapp/index.ring ファイルの一行目を置換します:</p>
225 <div class="highlight-ring"><div class="highlight"><pre><span class="c">#!ring -cgi</span>
226 </pre></div>
227 </div>
228 <p>そして Ring ノートパッドから実行します (Ctrl+F6)</p>
229 </div>
230 </div>
231
232
233           </div>
234         </div>
235       </div>
236       <div class="sphinxsidebar" role="navigation" aria-label="main navigation">
237         <div class="sphinxsidebarwrapper"><h3>ページの内容</h3>
238 <ul>
239 <li><a class="reference internal" href="#">クラウド経由でのウェブアプリケーションの配布方法</a><ul>
240 <li><a class="reference internal" href="#index-1">はじめに</a></li>
241 <li><a class="reference internal" href="#index-2">用法</a></li>
242 <li><a class="reference internal" href="#ring">Ring ソースコードファイルとパーミッション</a></li>
243 <li><a class="reference internal" href="#hello-world">Hello World プログラム</a></li>
244 <li><a class="reference internal" href="#index-5">アプリケーションのデータベース</a></li>
245 <li><a class="reference internal" href="#index-6">配布後の更新</a></li>
246 <li><a class="reference internal" href="#index-7">ローカルテスト</a></li>
247 </ul>
248 </li>
249 </ul>
250
251
252   <h4>前のトピックへ</h4>
253   <p class="topless"><a href="web.html"
254                         title="前の章へ">ウェブ開発 (CGI ライブラリ)</a></p>
255   <h4>次のトピックへ</h4>
256   <p class="topless"><a href="libcurl.html"
257                         title="次の章へ">RingLibCurl の用法</a></p>
258   <div role="note" aria-label="source link">
259     <h3>このページ</h3>
260     <ul class="this-page-menu">
261       <li><a href="_sources/deployincloud.txt"
262             rel="nofollow">ソースコードを表示</a></li>
263     </ul>
264    </div>
265       
266 <form action="search.html" method="get">
267   <input type="text" name="q" placeholder="Search" />
268   <input type="hidden" name="check_keywords" value="yes" />
269   <input type="hidden" name="area" value="default" />
270 </form>
271       
272         </div>
273       </div>
274       <div class="clearer"></div>
275     </div>
276 <footer class="footer">
277   <p class="pull-right">
278     <a href="_sources/deployincloud.txt"
279        rel="nofollow">Page Source</a> &nbsp;
280     <a href="#">Back to Top</a></p>
281   <p>
282     &copy; Copyright 2016-2020, Ring Team.<br/>
283     Created using <a href="http://www.sphinx-doc.org/en/stable/">Sphinx</a> 1.3.6. / astropy-sphinx-theme 1.1 (isVowel)
284   </p>
285 </footer>
286   </body>
287 </html>