1

当我尝试使用rails s运行服务器时遇到问题

我正在使用 Windows,这是回报:

C:\Blog\MyBlog>rails s
=> Booting WEBrick
=> Rails 3.2.12 application starting in development on http://0.0.0.0:3000
=> Call with -d to detach
=> Ctrl-C to shutdown server
Exiting
C:/Ruby193/lib/ruby/gems/1.9.1/gems/rack-1.5.2/lib/rack/server.rb:353:in `kill': Invalid argument (Errno::EINVAL)
        from C:/Ruby193/lib/ruby/gems/1.9.1/gems/rack-1.5.2/lib/rack/server.rb:353:in `pidfile_process_status'
        from C:/Ruby193/lib/ruby/gems/1.9.1/gems/rack-1.5.2/lib/rack/server.rb:340:in `check_pid!'
        from C:/Ruby193/lib/ruby/gems/1.9.1/gems/rack-1.5.2/lib/rack/server.rb:246:in `start'
        from C:/Ruby193/lib/ruby/gems/1.9.1/gems/railties-3.2.12/lib/rails/commands/server.rb:70:in `start'
        from C:/Ruby193/lib/ruby/gems/1.9.1/gems/railties-3.2.12/lib/rails/commands.rb:55:in `block in <top (required)>'
        from C:/Ruby193/lib/ruby/gems/1.9.1/gems/railties-3.2.12/lib/rails/commands.rb:50:in `tap'
        from C:/Ruby193/lib/ruby/gems/1.9.1/gems/railties-3.2.12/lib/rails/commands.rb:50:in `<top (required)>'
        from script/rails:6:in `require'
        from script/rails:6:in `<main>'

C:\Blog\MyBlog>

我的宝石文件:

来源“ https://rubygems.org

gem 'rails', '3.2.12'

# Bundle edge Rails instead:
# gem 'rails', :git => 'git://github.com/rails/rails.git'

gem 'sqlite3'


# Gems used only for assets and not required
# in production environments by default.
group :assets do
  gem 'sass-rails',   '~> 3.2.3'
  gem 'coffee-rails', '~> 3.2.1'

  # See https://github.com/sstephenson/execjs#readme for more supported runtimes
  # gem 'therubyracer', :platforms => :ruby

  gem 'uglifier', '>= 1.0.3'
end

gem 'jquery-rails'

# To use ActiveModel has_secure_password
# gem 'bcrypt-ruby', '~> 3.0.0'

# To use Jbuilder templates for JSON
# gem 'jbuilder'

# Use unicorn as the app server
# gem 'unicorn'

# Deploy with Capistrano
# gem 'capistrano'

# To use debugger
# gem 'debugger'

红宝石1.9.3p392 (2013-02-22) [i386-mingw32],Rails 3.2.12,Gem 1.8.25

对不起我的英国人

已编辑

我尝试使用 mongrel 但我在 cmd 中得到了下一个:

C:\Blog\MyBlog>rails s mongrel
Exiting
C:/Ruby193/lib/ruby/gems/1.9.1/gems/rack-1.4.5/lib/rack/handler/mongrel.rb:1:in
`require': cannot load such file -- mongrel (LoadError)
        from C:/Ruby193/lib/ruby/gems/1.9.1/gems/rack-1.4.5/lib/rack/handler/mon
grel.rb:1:in `<top (required)>'
        from C:/Ruby193/lib/ruby/gems/1.9.1/gems/rack-1.4.5/lib/rack/handler.rb:
20:in `const_get'
        from C:/Ruby193/lib/ruby/gems/1.9.1/gems/rack-1.4.5/lib/rack/handler.rb:
20:in `block in get'
        from C:/Ruby193/lib/ruby/gems/1.9.1/gems/rack-1.4.5/lib/rack/handler.rb:
20:in `each'
        from C:/Ruby193/lib/ruby/gems/1.9.1/gems/rack-1.4.5/lib/rack/handler.rb:
20:in `inject'
        from C:/Ruby193/lib/ruby/gems/1.9.1/gems/rack-1.4.5/lib/rack/handler.rb:
20:in `get'
        from C:/Ruby193/lib/ruby/gems/1.9.1/gems/rack-1.4.5/lib/rack/server.rb:2
72:in `server'
        from C:/Ruby193/lib/ruby/gems/1.9.1/gems/railties-3.2.12/lib/rails/comma
nds/server.rb:59:in `start'
        from C:/Ruby193/lib/ruby/gems/1.9.1/gems/railties-3.2.12/lib/rails/comma
nds.rb:55:in `block in <top (required)>'
        from C:/Ruby193/lib/ruby/gems/1.9.1/gems/railties-3.2.12/lib/rails/comma
nds.rb:50:in `tap'
        from C:/Ruby193/lib/ruby/gems/1.9.1/gems/railties-3.2.12/lib/rails/comma
nds.rb:50:in `<top (required)>'
        from script/rails:6:in `require'
        from script/rails:6:in `<main>'
4

3 回答 3

3

尝试向 tmp/pids/server.pid 文件添加随机编号(例如 6532),然后启动 webricks

于 2013-03-18T13:56:02.560 回答
2

Windows 和 Rails 通常不能像在其他环境中那样工作。使用 Rails 在 Windows 中出现 Webbrick 问题的最佳解决方法是安装另一台服务器进行开发。Mongrel 是一个不错的选择。要安装它:

gem install mongrel

然后启动服务器

rails s mongrel
于 2013-03-10T01:35:41.013 回答
1

我遇到了同样的问题。我发现最简单的解决方法实际上只是删除应用程序文件夹中现有的 pid 文件:

del tmp\pids\*.*

参考此资源找到此解决方案:[ https://github.com/rack/rack/issues/544][1]

于 2015-01-13T16:12:08.850 回答