クラウド経由でのウェブアプリケーションの配布方法 — プログラミング言語 Ring 1.14 取扱説明書

Skip to content

# クラウド経由でのウェブアプリケーションの配布方法

Heroku における Ring ウェブアプリケーションの配布方法です。

## はじめに

これは新規プロジェクトの作成方法、およびクラウドサービスである Heroku で Ring ウェブアプリケーションを配布する方法を解説するためのチュートリアルです。

デモ : http://testring.herokuapp.com/

プロジェクト : https://github.com/ring-lang/RingWebAppOnHeroku

Heroku ウェブサイト : https://www.heroku.com/

## 用法

このプロジェクトを Heroku へ配布するには

1. Heroku アカウントを作成します

2. Heroku アカウントを開きアプリケーションの新規作成をします

用例 : testring

注釈

自作アプリケーションでは、必ず唯一無二の名前を選んでください。

3. コマンドプロンプトを開いて、新規フォルダを作成します : MyApp

    md MyApp

4. アプリケーションのフォルダを開きます

    cd MyApp

5. このプロジェクトを Git でクローンします (カレントディレクトリへクローンするときは、末尾にドットを付けるのをお忘れなく)

    git clone https://github.com/ring-lang/RingWebAppOnHeroku .

6. Heroku へログインします (電子メートアドレスとパスワードを入力します)

    heroku login

7. heroku (リモート) へ Git プロジェクトを追加します

testring から自作アプリケーションの名前へ変更します

    heroku git:remote -a testring

8. 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

9. プロジェクトのビルトと配布をします

    git push heroku master

10. プロジェクトのテスト (ブラウザで行います)

    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)