ruby on rails-Windows中的RoR不适用于在linux中使用RoR构建的预先存在的应用程序



我已经在Windows 8中使用RailsInstaller和postgresql安装了Ruby on Rails。我正试图使用预先存在的应用程序的文件运行rails server,但收到错误"JRuby或Windows不支持工作模式"。

在我的config/puma.rb文件中,我将worker设置为0,然后得到一个关于windows上不支持的守护进程模式的错误。基本上,每次我改变一些东西,我都会犯更多的错误。

我已经修复了环境变量、gem等(就像在其他帖子中一样),比如"不能在RubyonRails上安装Puma-gem"。有希望在windows机器上运行一个在linux中构建的RoR应用程序吗?

当我为RoR的"博客"示例运行rails服务器时,它工作得很好,所以我知道RoR肯定在windows中工作!

这是我的配置文件/puma.rb。是因为在windows中我没有/var/app文件夹吗??我摆弄过目录等,但都无济于事。

`
#!/usr/bin/env puma
# start puma with:
# RAILS_ENV=production bundle exec puma -C ./config/puma.rb
workers 0
theident = 'nameofthing'
application_path =  '/var/app/'+ theident + '.address.com.au/current'
railsenv = 'production'
directory application_path
environment railsenv
daemonize false
pidfile "#{application_path}/tmp/pids/puma-#{railsenv}.pid"
state_path "#{application_path}/tmp/pids/puma-#{railsenv}.state"
stdout_redirect"#{application_path}/log/puma-#{theident}.log"
threads 0, 16
bind "unix:///var/run/puma/" + theident + "_app.sock" `

我已经将这些目录更改为当前路径,现在开始运行"rails server",但localhost:3000是一个不工作的页面。我在SIGUSR1不工作、SIGUSR2不工作等方面遇到错误

JRuby和Windows都不支持"workers"方法,因此最好的解决方案是从puma.rb中删除导致错误的行。在我的情况下,我删除了;

workers Integer(ENV['WEB_CONCURRENCY'] || 2)

所以剩下的我有;

threads_count = Integer(ENV['RAILS_MAX_THREADS'] || 5)
threads threads_count, threads_count
preload_app!
rackup      DefaultRackup
port        ENV['PORT']     || 3000
environment ENV['RACK_ENV'] || 'development'
on_worker_boot do
  # Worker specific setup for Rails 4.1+
  # See: https://devcenter.heroku.com/articles/deploying-rails-applications-with-the-puma-web-server#on-worker-boot
  ActiveRecord::Base.establish_connection
end

对您来说可能有所不同,但具体的行将以"workers"

开头

相关内容

  • 没有找到相关文章