質問をすることでしか得られない、回答やアドバイスがある。

15分調べてもわからないことは、質問しよう!

新規登録して質問してみよう
ただいま回答率
85.37%
Ruby

Rubyはプログラミング言語のひとつで、オープンソース、オブジェクト指向のプログラミング開発に対応しています。

Webサーバー

Webサーバーとは、HTTPリクエストに応じて、クライアントに情報を提供するシステムです。

Sinatra

Sinatraは、Rubyで作られた オープンソースのWebアプリケーションフレームワークです。

Q&A

0回答

281閲覧

VScodeにてWebサーバを起動しRubyを実行させたい

arayada

総合スコア11

Ruby

Rubyはプログラミング言語のひとつで、オープンソース、オブジェクト指向のプログラミング開発に対応しています。

Webサーバー

Webサーバーとは、HTTPリクエストに応じて、クライアントに情報を提供するシステムです。

Sinatra

Sinatraは、Rubyで作られた オープンソースのWebアプリケーションフレームワークです。

0グッド

0クリップ

投稿2024/08/24 14:30

実現したいこと

SinatraとPumaを使用して、VScodeにてWebサーバを起動しRubyを実行させたい。

発生している問題・分からないこと

フォルダ作成後、
$ ruby app.rb -o $IP -p $PORT
を入力したがエラーが出る。

エラーメッセージ

error

1C:/Ruby33-x64/lib/ruby/gems/3.3.0/gems/sinatra-4.0.0/lib/sinatra/base.rb:1849: warning: Rack::Logger is deprecated and will be removed in Rack 3.2. 2== Sinatra (v4.0.0) has taken the stage on 4567 for development with backup from Puma 3*** SIGUSR2 not implemented, signal based restart unavailable! 4*** SIGUSR1 not implemented, signal based restart unavailable! 5*** SIGHUP not implemented, signal based logs reopening unavailable! 6Puma starting in single mode... 7* Puma version: 6.4.2 (ruby 3.3.4-p94) ("The Eagle of Durango") 8* Min threads: 0 9* Max threads: 5 10* Environment: development 11* PID: 6404 12== Sinatra has ended his set (crowd applauds) 13C:/Ruby33-x64/lib/ruby/gems/3.3.0/gems/puma-6.4.2/lib/puma/binder.rb:334:in `initialize': getaddrinfo: そのようなホストは不明です 。 (Socket::ResolutionError) 14 from C:/Ruby33-x64/lib/ruby/gems/3.3.0/gems/puma-6.4.2/lib/puma/binder.rb:334:in `new' 15 from C:/Ruby33-x64/lib/ruby/gems/3.3.0/gems/puma-6.4.2/lib/puma/binder.rb:334:in `add_tcp_listener' 16 from C:/Ruby33-x64/lib/ruby/gems/3.3.0/gems/puma-6.4.2/lib/puma/binder.rb:163:in `block in parse' 17 from C:/Ruby33-x64/lib/ruby/gems/3.3.0/gems/puma-6.4.2/lib/puma/binder.rb:146:in `each' 18 from C:/Ruby33-x64/lib/ruby/gems/3.3.0/gems/puma-6.4.2/lib/puma/binder.rb:146:in `parse' 19 from C:/Ruby33-x64/lib/ruby/gems/3.3.0/gems/puma-6.4.2/lib/puma/runner.rb:168:in `load_and_bind' 20 from C:/Ruby33-x64/lib/ruby/gems/3.3.0/gems/puma-6.4.2/lib/puma/single.rb:44:in `run' 21 from C:/Ruby33-x64/lib/ruby/gems/3.3.0/gems/puma-6.4.2/lib/puma/launcher.rb:194:in `run' 22 from C:/Ruby33-x64/lib/ruby/gems/3.3.0/gems/puma-6.4.2/lib/rack/handler/puma.rb:76:in `run' 23 from C:/Ruby33-x64/lib/ruby/gems/3.3.0/gems/sinatra-4.0.0/lib/sinatra/base.rb:1691:in `start_server' 24 from C:/Ruby33-x64/lib/ruby/gems/3.3.0/gems/sinatra-4.0.0/lib/sinatra/base.rb:1630:in `run!' 25 from C:/Ruby33-x64/lib/ruby/gems/3.3.0/gems/sinatra-4.0.0/lib/sinatra/main.rb:47:in `block in <module:Sinatra>'

該当のソースコード

app.rb

1require "sinatra" 2 3get "/" do 4 erb :index 5end

index.erb

1<!DOCTYPE html> 2<html lang="ja"> 3 <head> 4 <meta charset="UTF-8"> 5 <title>タイトル</title> 6 </head> 7 <body> 8 <% name = '太郎' %> 9 <% time_japan = Time.now.getlocal %> 10 <p>今は<%= time_japan.hour %>時です。</p> 11 <% if 6 <= time_japan.hour && time_japan.hour < 12 %> 12 <p>おはよう、<%= name %>さん</p> 13 <% elsif 12 <= time_japan.hour && time_japan.hour < 18 %> 14 <p>こんにちは、<%= name %>さん</p> 15 <% else %> 16 <p>こんばんは、<%= name %>さん</p> 17 <% end %> 18 </body> 19</html>

試したこと・調べたこと

  • teratailやGoogle等で検索した
  • ソースコードを自分なりに変更した
  • 知人に聞いた
  • その他
上記の詳細・結果

ruby-debag-ideとdebaseというgemのインストールを試みたが、エラー発生。

補足

特になし

気になる質問をクリップする

クリップした質問は、後からいつでもMYページで確認できます。

またクリップした質問に回答があった際、通知やメールを受け取ることができます。

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

otn

2024/08/24 15:00

> $ ruby app.rb -o $IP -p $PORT $IPの値は何ですか?IPアドレスや空文字列じゃなくて、ホスト名を書いてて、そのホスト名がアドレス解決できないと、お書きの「getaddrinfo: そのようなホストは不明です」というエラーメッセージが出ると思います。
arayada

2024/08/25 12:08

コメントありがとうございます。 ここで書くべき$IPの値…とはなんでしょうか?汗 教科書の指示は、こちらでした。「Puma は Sinatra における標準サーバなので、下記のコマンドで自動起動します。$ ruby app.rb -o $IP -p $PORT」 Cloud9使用が前提ですが、私は訳あってVScodeを使っています。それが原因でしょうか…?
mike2mike4

2024/08/25 12:19

Cloud9はサービス終了ですね。どこでサーバーを起動しようとしているのでしょうか? ローカル開発しているのならlocalhostです。ポートはpumaのポートです。
otn

2024/08/25 12:42

なんと!意味分からず書いてるのですか?? $IP というのは「IPという名前の変数にセットされている値を取り出す」という意味なので、その前に、 IP=なにか で設定しているはず。$PORTもです。 教科書に、「下記のコマンドで自動起動します。」と書いてあるのなら、 その前に変数IPとPORTに値をセットする手順が書いてあるはずですが、読み飛ばしたと言うことですかね? > ここで書くべき$IPの値…とはなんでしょうか?汗 echo "ip : $IP port : $PORT" の結果。
arayada

2024/08/25 12:46

コメントありがとうございます。 ruby app.rb -o $IP 127.0.0.1 -p $PORT 3000 に変えたところ、無事Sinatraは起動しているようです。そしてブラウザでサーバを起動したいときは、$IPの値を変えるのでしょうか?? C:/Ruby33-x64/lib/ruby/gems/3.3.0/gems/sinatra-4.0.0/lib/sinatra/base.rb:1849: warning: Rack::Logger is deprecated and will be removed in Rack 3.2. == Sinatra (v4.0.0) has taken the stage on 3000 for development with backup from Puma *** SIGUSR2 not implemented, signal based restart unavailable! *** SIGUSR1 not implemented, signal based restart unavailable! *** SIGHUP not implemented, signal based logs reopening unavailable! Puma starting in single mode... * Puma version: 6.4.2 (ruby 3.3.4-p94) ("The Eagle of Durango") * Min threads: 0 * Max threads: 5 * Environment: development * PID: 21900 * Listening on http://127.0.0.1:3000 Use Ctrl-C to stop
arayada

2024/08/25 12:54

otnさん、mike2mike4さん、回答が入り乱れてすみません。 otnさんへ IPとPORTに値をセットするくだりは見つかりませんでした…なぜ。 本来、以下のログが出るそうです。 == Sinatra (v1.4.7) has taken the stage on 8080 for development with backup from Puma Puma starting in single mode... * Version 3.6.2 (ruby 2.3.0-p0), codename: Sleepy Sunday Serenity * Min threads: 0, max threads: 16 * Environment: development * Listening on tcp://0.0.0.0:8080 Use Ctrl-C to stop
otn

2024/08/25 13:10

> IPとPORTに値をセットするくだりは見つかりませんでした…なぜ。 落丁か、上中下とかに別れていて別のテキストにあるか、著者が書き忘れたか、 著者が「読者もこれくらいは自分で判断して自分でセットするだろう」と判断して省略したか。 > 本来、以下のログが出るそうです。 > * Listening on tcp://0.0.0.0:8080 なら、 ruby app.rb -o 0.0.0.0 -p 8080 ですね。変数を使う必要は無いです。 ・-o で何を指定するのか ・-p で何を指定するのか を理解しましょう。
arayada

2024/08/26 05:31

修正しました。 ここからブラウザでファイルを実行させるにはどうしたらよいでしょうか? 引き続き教えていただけると幸いです。
otn

2024/08/26 07:40

> ここからブラウザでファイルを実行させるにはどうしたらよいでしょうか? 「ブラウザでファイルを実行させる」?? 次にやるのは、ブラウザでウェブサイトを表示するということのはずなので、そのことの意味なら、ブラウザのアドレスバーにURLを入力します。URLは、テキストに書いてあると思うのですが、そこすら「読者もこれくらいは自分で判断して出来るだろうから書かない」という方針の著者なのであれば、テキストのレベルが合ってないので、もっと入門者向けのテキストに変えた方が良いです。
guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

まだ回答がついていません

会員登録して回答してみよう

アカウントをお持ちの方は

15分調べてもわからないことは
teratailで質問しよう!

ただいまの回答率
85.37%

質問をまとめることで
思考を整理して素早く解決

テンプレート機能で
簡単に質問をまとめる

質問する

関連した質問