Windows中的RoR不适用于在Linux中使用RoR构建的预先存在的应用程序

时间:2016-07-27 00:27:04

标签: ruby-on-rails linux postgresql ruby-on-rails-3 windows-8

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

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

我修复了环境变量,宝石等(比如其他帖子),比如这个Cannot install Puma gem on Ruby on Rails.,是否有希望在Windows机器上运行Linux内置的预先存在的RoR应用? / p>

当我为RoR'博客'运行rails服务器时它的工作正常,所以我知道RoR肯定在windows中工作!

这是我的 - '去识别' config / 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无法正常工作等错误

1 个答案:

答案 0 :(得分:1)

"工人" JRuby和Windows都不支持该方法,因此最好的解决办法是从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

对您而言可能会有所不同,但具体的行将从"工人"

开始