Dit*_*ash 1 port sinatra openshift
我使用 Openshift 和 Sinatra 来托管我的网站。但它没有绑定到正确的端口。
set :port, ENV["OPENSHIFT_RUBY_PORT"]
set :port, ENV["OPENSHIFT_RUBY_IP"]
...
puts ENV["OPENSHIFT_RUBY_PORT"]
puts settings.port
puts ENV["OPENSHIFT_RUBY_IP"]
puts settings.bind
Run Code Online (Sandbox Code Playgroud)
这将返回正确的输出。但是当服务器真正启动时...
Listening on localhost:9292, CTRL+C to stop
Run Code Online (Sandbox Code Playgroud)
错误:
no acceptor (port is in use or requires root privileges) (RuntimeError)
Run Code Online (Sandbox Code Playgroud)
如何让它绑定到正确的端口?
set :port, ...设置 Sinatra\xe2\x80\x99s 内置服务器的端口,但您使用的是rackup,因此不使用此设置(9292 是 Rack 的默认端口)。
您可以使用-p或--port选项来rackup设置端口。从命令行您可以执行以下操作:
$ bundle exec rackup -p $OPENSHIFT_RUBY_PORT\nRun Code Online (Sandbox Code Playgroud)\n\n您还可以在 的第一行指定命令行选项config.ru,但我不\xe2\x80\x99t 认为您可以在那里指定环境变量。
如果您想避免在命令行上指定端口,您可能需要创建一个读取环境变量并调用rackup.
| 归档时间: |
|
| 查看次数: |
1119 次 |
| 最近记录: |