Sinatraをインストールしましたが、動作しますが、デフォルトでポート4567を使用します。ポート80で実行したい。
ポート80で動作させるために、私はこれを試しました。
require 'rubygems'
require 'rack/handler/webrick'
require 'sinatra'
Sinatra::Application.default_options.merge!(
:run => false,
:env => :production,
:port => 80
)
get '/' do
"Hello World"
end
しかし、私はこのエラーを受け取ります:
$ Ruby -rubygems index.rb
index.rb:5:in `<main>': undefined method `default_options' for Sinatra::Application:Class (NoMethodError)
何が起こっているのか分かりますか?
ただ使用することはできません( http://www.sinatrarb.com/configuration.html ):
set :port, 80
ソケットをポート80にバインドするには、スーパーユーザー権限が必要であることに注意してください。
ところで、
Sinatra.default_optionsを使用して基本構成アイテムを設定することは廃止されました
回答を受け入れる別の方法
rvmsudo rackup -p 80
RVMを使用してRubyバージョンを管理している場合、Sudoを簡単に使用できない可能性があります(または、パスにRuby)を設定する必要があります) 。
1024未満のポートは、特権プロセス専用です。 sinatraアプリを80で直接実行するには、rootとして実行する必要があります。プロキシをリバースすることができます- http://sinatra-book.gittr.com/#deployment 。
はい、Apache、Nginx、Varnish、HAProxy、またはポート80以外のものを実行することは、私の意見では危険なゲームです。これらのツールは、その機能が非常に優れています。リバースプロキシの設定がその方法です。