目的
- Sinatraでの開発が可能な状態を作る手順を整理
前提
- Mac High Sierra
- windowsでやる場合はvagrant上で
- ruby 2.4.1
(rubyが入っていない場合は、下部参照を確認)
(バージョンが変わらない場合は、下部参照を確認) - sqlite3 3.19.3
ゴール
- Sinatoraでの環境構築ができる
- Hello World がローカルで確認できる
- 次回
- アプリを開発する、MVCの基本的な実装ができる
- Herokuから公開できる
手順
インストール
以下のgemをインストールする
- sinatra
- sinatra-contrib
- activerecord
- sqlite3
gem install sinatra
gem install sinatra-contrib
gem install activerecord
gem install sqlite3
Hollow world表示まで
- 任意のディレクトリを作成し、rubyファイルを作成
- 今回は、
sinatora_study.rb
を作成
sinatora_study.rb
require 'sinatra'
require 'sinatra/reloader'
get '/' do
'Hello wolrd'
end
- requireでライブラリが読み込まれる、sinatraでフレームワークが読み込まれ
- sinatra/reloaderは、WEBRickを再起動しなくても、ソース変更がサーバに適用されるようにする(便利な機能)
- getリクエストで/(ルート)にアクセスがあった場合、このアクションが実行される
- 同じパスが設定されていた場合は、最初にマッチしたアクションが実行される
起動オプションを確認
- -hコマンドで、
ruby sinatora_study.rb -h
$ ruby sinatora_study.rb -h
Usage: sinatora_study [options]
-p port set the port (default is 4567)
-o addr set the host (default is localhost)
-e env set the environment (default is development)
-s server specify rack server/handler (default is thin)
-q turn on quiet mode (default is off)
-x turn on the mutex lock (default is off)
- vagrantの場合、-oオプションでipを指定する必要がある。
ip -a
コマンドで確認できる - ruby {ファイル名} [オプション] で起動
- 以下はmacで実行しているため、localhostでOK
ruby sinatora_study.rb
[2018-07-14 14:51:28] INFO WEBrick 1.3.1
[2018-07-14 14:51:28] INFO ruby 2.4.1 (2017-03-22) [x86_64-darwin17]
== Sinatra (v2.0.3) has taken the stage on 4567 for development with backup from WEBrick
[2018-07-14 14:51:28] INFO WEBrick::HTTPServer#start: pid=34071 port=4567
確認
- ブラウザからアクセスする
http://localhost:{port}/
- ポート番号は、
[2018-07-14 14:51:28] INFO WEBrick::HTTPServer#start: pid=34071 port=4567
ここに表示されている
- リクエストが行われると、サーバ側に以下のようなログが出力される
[2018-07-14 14:51:28] INFO WEBrick::HTTPServer#start: pid=34071 port=4567
::1 - - [14/Jul/2018:14:53:04 +0900] "GET / HTTP/1.1" 200 11 0.0229
::1 - - [14/Jul/2018:14:53:04 JST] "GET / HTTP/1.1" 200 11
- -> /
::1 - - [14/Jul/2018:14:53:04 +0900] "GET /favicon.ico HTTP/1.1" 404 469 0.0008
参照
- バージョンが変わらない場合
https://qiita.com/opiyo_taku/items/3312a75d5916f6cd32b1