2014-09-05 2 views
0

Я использую синатра для работы с рубином, когда я запускаю файл в терминале, обычный порт для синатра - «4567», но три дня назад терминал печатает этоПротив в одном локальном хостинге любого решения

 Sinatra/1.4.5 has taken the stage on 4567 for development with backup from WEBrick 
    [2014-09-06 00:15:16] INFO WEBrick::HTTPServer#start: pid=770 port=4567 

также WEBrick порт "4567"

+1

И это не хорошо, потому что ? –

+0

потому что я должен запускать синатра в порту «4567», чтобы увидеть мой файл, но я отведу меня к webrick, я не хочу идти в webrick, я хочу запустить sinatra –

+0

Есть ли ошибка? Или вы не понимаете, как работают порты? Два приложения не могут существовать на одном и том же порту. Sinatra будет использовать Mongrel, Thin или Webrick в качестве своего сервера, в зависимости от того, что установлено, но вы можете использовать '-s', чтобы указать его на конкретное направление. Трудно сказать, что вы просите, поэтому вам нужно добавить дополнительную информацию и лучшее описание, чтобы мы могли вам помочь. –

ответ

0

Это трудно понять проблему, которую вы видите. Может быть, это поможет:

Если я создаю простой тестовый сервер, содержащий образец Синатры код:

require 'sinatra' 

get '/hi' do 
    "Hello World!" 
end 

И кроме того, что на мой рабочий стол в качестве теста.гь, я могу запустить Синатра с помощью:

ruby test.rb 

Синатра говорит мне:

== Sinatra/1.4.5 has taken the stage on 4567 for development with backup from Thin 
Thin web server (v1.6.2 codename Doc Brown) 
Maximum connections set to 1024 
Listening on localhost:4567, CTRL+C to stop 

Если я удаляю Thin:

gem uninstall thin 
Remove executables: 
    thin 

in addition to the gem? [Yn] y 
Removing thin 
Successfully uninstalled thin-1.6.2 

И запустить код еще раз:

ruby test.rb 
[2014-09-05 14:41:23] INFO WEBrick 1.3.1 
[2014-09-05 14:41:23] INFO ruby 2.1.2 (2014-05-08) [x86_64-darwin13.0] 
== Sinatra/1.4.5 has taken the stage on 4567 for development with backup from WEBrick 
[2014-09-05 14:41:23] INFO WEBrick::HTTPServer#start: pid=26786 port=4567 

В любом случае код делает то, что он sup . Я могу подключиться с помощью curl и получить «Hello World!». обратно:

curl http://localhost:4567/hi 
Hello World! 

Sinatra использует WEBrick по умолчанию, но выбрать другие серверы над ним:

gem install puma 
Fetching: puma-2.9.1.gem (100%) 
Building native extensions. This could take a while... 
Successfully installed puma-2.9.1 
Parsing documentation for puma-2.9.1 
Installing ri documentation for puma-2.9.1 
Done installing documentation for puma after 3 seconds 
1 gem installed 

ruby test.rb 
Puma 2.9.1 starting... 
* Min threads: 0, max threads: 16 
* Environment: development 
* Listening on tcp://localhost:4567 
== Sinatra/1.4.5 has taken the stage on 4567 for development with backup from Puma 

gem install thin 
Fetching: thin-1.6.2.gem (100%) 
Building native extensions. This could take a while... 
Successfully installed thin-1.6.2 
Parsing documentation for thin-1.6.2 
Installing ri documentation for thin-1.6.2 
Done installing documentation for thin after 0 seconds 
1 gem installed 

ruby test.rb 
== Sinatra/1.4.5 has taken the stage on 4567 for development with backup from Thin 
Thin web server (v1.6.2 codename Doc Brown) 
Maximum connections set to 1024 
Listening on localhost:4567, CTRL+C to stop 

curl http://localhost:4567/hi 
Hello World! 

Использование -s для управления, который сервер Sinatra использует:

ruby test.rb -s puma 
Puma 2.9.1 starting... 
* Min threads: 0, max threads: 16 
* Environment: development 
* Listening on tcp://localhost:4567 
== Sinatra/1.4.5 has taken the stage on 4567 for development with backup from Puma 
0

Sinatra Docs:

: запустить - включить/отключить встроенный веб-сервер Логическое значение, задающее загружен ли встроенный веб-сервер после того, как приложение полностью загружено . По умолчанию этот параметр активируется только тогда, когда: app_file соответствует $ 0, то есть при запуске файла приложения Sinatra непосредственно с ruby ​​ myapp.rb. Чтобы отключить встроенный веб-сервер:

set :run, false 

: сервер - обработчик используется для встроенного веб-сервера. String или имена обработчиков серверов массива Rack. Когда включена настройка: run , Sinatra будет запускаться через список и запускать сервер с первым доступным обработчиком . : Настройка сервера устанавливается следующим по умолчанию:

set :server, %w[thin mongrel webrick] 

Sinatra README:

Синатра является DSL для быстрого создания веб-приложений на Ruby, с минимальными усилиями:

# myapp.rb 
require 'sinatra' 

get '/' do 
    'Hello world!' 
end 
Install the gem: 

gem install sinatra 
And run with: 

ruby myapp.rb 
View at: http://localhost:4567 

Рекомендовано ed также запустить gem install thin, который Sinatra заберет, если таковой имеется.

По умолчанию Синатра первый смотрит, чтобы увидеть, если у вас установлено программное обеспечение Тонкий сервер - если да, то Sinatra использует Thin реагировать на запросы на порту 4567. Если у вас нет Thin установлен, следующий Синатры проверяет, если у вас установлено серверное программное обеспечение Mongrel, а Sinatra использует Mongrel, если он установлен, и, наконец, Sinatra использует всегда доступное программное обеспечение сервера Webrick, которое поставляется с рубином.

Сообщение, которое вы видите, это Синатр говорят вам, какое программное обеспечение сервера он использует для того чтобы отвечать на запросы на порт 4567.

Смежные вопросы