クラウド経由でのウェブアプリケーションの配布方法¶
Heroku における Ring ウェブアプリケーションの配布方法です。
はじめに¶
これは新規プロジェクトの作成方法、およびクラウドサービスである Heroku で Ring ウェブアプリケーションを配布する方法を解説するためのチュートリアルです。
デモ : http://testring.herokuapp.com/
プロジェクト : https://github.com/ring-lang/RingWebAppOnHeroku
Heroku ウェブサイト : https://www.heroku.com/

用法¶
このプロジェクトを Heroku へ配布するには
Heroku アカウントを作成します
Heroku アカウントを開きアプリケーションの新規作成をします
用例 : testring
注釈
自作アプリケーションでは、必ず唯一無二の名前を選んでください。
コマンドプロンプトを開いて、新規フォルダを作成します : MyApp
md MyApp
アプリケーションのフォルダを開きます
cd MyApp
このプロジェクトを Git でクローンします (カレントディレクトリへクローンするときは、末尾にドットを付けるのをお忘れなく)
git clone https://github.com/ring-lang/RingWebAppOnHeroku .
Heroku へログインします (電子メートアドレスとパスワードを入力します)
heroku login
heroku (リモート) へ Git プロジェクトを追加します
testring から自作アプリケーションの名前へ変更します
heroku git:remote -a testring
buildpacks (ビルトパックス) を設定します (こうすることで Heroku はプロジェクトへの対応方法を認識できるようになります)
heroku buildpacks:add --index 1 https://github.com/ring-lang/heroku-buildpack-apt
heroku buildpacks:add --index 2 https://github.com/ring-lang/heroku-buildpack-ring
プロジェクトのビルトと配布をします
git push heroku master
プロジェクトのテスト (ブラウザで行います)
heroku open
Ring ソースコードファイルとパーミッション¶
新規 Ring スクリプトを実行可能にするには Git で実行可能ファイルのパーミッションを設定します。
例えば、 myscript.ring を作成した場合は
git update-index --chmod=+x myscript.ring
git commit -m "Update file permission"
TortoiseGit の場合は、 Windows エクスプローラでファイルを選択して
右クリック ---> プロパティ ---> Git ---> 実行 (+x)
その後、コミットと配布が行われます!
Hello World プログラム¶
ファイル : ringapp/helloworld.ring
実行先 : http://testring.herokuapp.com/ringapp/helloworld.ring
#!/app/runring.sh -cgi
see "content-type: text/html" +nl+nl
see "Hello, World!" + nl
ファイル : ringapp/helloworld2.ring
実行先 : http://testring.herokuapp.com/ringapp/helloworld2.ring
#!/app/runring.sh -cgi
load "weblib.ring"
import System.Web
new page {
text("Hello, World!")
}
アプリケーションのデータベース¶
アプリケーションを配布をする場合、そのまますべて動作します!
変更は不要ですが、実際はデータベースを使用するために、下記のファイルを更新してください。
データベースと相互作用する 2 本のスクリプトがあります (今回のクラウドでは PostgreSQL を使います)。
別のデータベースを使用する場合は、下記のファイルに記載されている接続文字列の更新が必要です。
ファイル: ringapp/database/newdb.ring (テーブルを一括作成するにはブラウザで実行します)
ファイル: ringapp/datalib.ring (Database クラス)
実プロジェクトでは、より優れたコードを記述できます (データベースは変更可能であるため)。
また、設定ファイルを作成できます (ある場所に接続文字列を記述するために)。
データベースサービス : https://www.heroku.com/postgres
配布後の更新¶
Git でコミット後に heroku へ push (プッシュ) します。
ファイル: 手軽にテストができるよう build.bat には下記のコマンドが記載されています。
git add .
git commit -m "Update RingWebAppOnHeroku"
git push heroku master
heroku open
ローカルテスト¶
ローカルテストを行うには Windows で Ring ノートパッドを使用します (ローカルの Apache ウェブサーバーで試験実行)
ringapp/index.ring ファイルの一行目を置換します:
#!ring -cgi
そして Ring ノートパッドから実行します (Ctrl+F6)