====== 開発・実行環境の準備 ======
ここでは、FreeBSD10.1上に動作環境を構築する例を紹介します。\\
VMwareを使いますが、そこは本質ではないので省略します。
===== OSインストール =====
ftp://ftp3.jp.freebsd.org/pub/FreeBSD/releases/ISO-IMAGES/10.1/から
FreeBSD-10.1-RELEASE-i386-disc1.isoをダウンロードし、VMwareの新規VMの起動ディスクに設定します。
VMware仮想マシンを、以下の条件で作成します。値はVMware Fusionのデフォルト値であり、たいした意味はありません。
* CPU 1
* ディスク 20G
* メモリ 256M
VMを起動すると、インストーラが立ち上がります。\\
変更は、以下の点だけで、すべてデフォルトで作成します。
* キーボードを、Japanese 106にする。
* games,ports-treeはインストールしない。
===== ツール類のインストール =====
リブート後OSが起動したら、Rubyとウェブサーバをインストールします。\\
組み込み向けと言うことで、ウェブサーバーには小さくて動作の軽い mongoose を採用します。
pkg install ruby
pkg install mongoose
必要であれば、あわせて好みのエディターなどをインストールします。
===== 環境設定 =====
==== Aloneのダウンロードと設置 ====
以下はこのドキュメント執筆時点の最新版 version3.2の場合です。\\
できれば、ダウンロードページを確認し、その時点の最新版を使ってください。\\
Aloneをダウンロードし、/usr/local/kitchen_timer以下に展開します。
fetch http://www.ruby-alone.org/files/alone-3.2-release.tgz
tar xvfz alone-3.2-release.tgz
mv alone-3.2-release /usr/local/kitchen_timer
==== エントリポイントの調整 ====
cgiの最初に起動されるファイルを、Aloneではエントリポイントと称しています。
このファイルもRubyスクリプトで、shebang行にRubyインタプリタへのパスが含まれますので、
環境に合わせて書き換えます。
FreeBSDでは、/usr/local/bin/rubyにインストールされますので、そのように書き換えます。
vi /usr/local/kitchen_timer/controllers/index.rb
(1行目)
#!/usr/local/bin/ruby
==== ウェブサーバの設定 ====
設定ファイルは新規に作成する必要があるようなので、以下の内容で設定ファイルを作ります。
document_root /usr/local/kitchen_timer/controllers
cgi_pattern **.rb$
index_files index.html,index.rb
listening_port 80
run_as_user www
OS起動時に自動起動するように設定します。
mongoose_enable="YES"
mongoose_flags="/usr/local/etc/mongoose.conf"
ここで再起動しても良いですが、手動でmongooseを起動するほうが早いので、以下のコマンドで起動します。
/usr/local/etc/rc.d/mongoose start
テストに必要になるので、ifconfigコマンドで、IPアドレスを確認しておいてください。
==== 動作確認 ====
ブラウザを開き、先のIPアドレスを指定すると、Aloneと一緒に配布されているサンプル一覧が表示されます。
===== サンプルファイルの待避とキッチンタイマー開発のための準備 =====
サンプルは消してもかまわないのですが、自分のアプリケーションを開発する場合にサンプルの中から似た動作をするアプリケーションをコピーしてそれを元にすることを推奨していることもあり、.bakディレクトリに待避しておきます。
cd /usr/local/kitchen_timer
mv controllers controllers.bak
mkdir controllers
アプリケーションに必要な次のファイルをコピーして戻します。
cp controllers.bak/index.rb controllers # エントリポイント
cp -r controllers.bak/js controllers
cp controllers.bak/al_style.css controllers
これで、環境構築は終わりです。