我试图使用Phusion Passenger在Apache上运行Ruby on Rails的Web应用程序。我已经配置了httpd.conf文件。
我还有另一个与“rails”服务器一起运行的应用程序'命令,它连接到开发数据库。但是,我不明白为什么与apache一起运行的应用程序试图连接到我还没有创建的生产数据库,而不是应该开发。
我必须配置什么才能使我的Ruby on Rails应用程序作为开发运行?
答案 0 :(得分:0)
Apache with Phusion提供了一个生产级别的Web服务器环境,rails server
(WEBrick)是一个简单的Web服务器,可以让您在本地进行测试。您通常在给定的计算机上使用其中一个。但并非总是如此: - )
但是要回答你的问题,Rails使用哪个数据库是由RAILS_ENV变量决定的,默认情况下是production
,development
或test
之一。
创建新的rails应用程序时,会在文件app/config/database.yml
中创建默认数据库配置 - 有单独的部分提供连接到数据库的必要参数。可以在environment.rb
或app/config/environments/<name>.rb
中指定其他特定于环境的配置。
在您的Passenger配置中,您可以按照http://www.modrails.com/documentation/Users%20guide%20Apache.html#rails_env中的说明设置RAILS_ENV变量。
我刚才意识到Passenger似乎正在寻找生产(期望数据库名称为someweb_production
) - 您可能需要在生产环境中运行bundle exec rake db:migrate
才能生成(创建并)初始化数据库。在这种情况下,您可能还需要传递environment参数。
对于本地配置(rails server
),服务器将查找名为RAILS_ENV
的shell环境变量,您还可以在命令行上传递特定环境,例如rails server --environment=development
。我想如果两者都没有指定,则rails服务器默认为development
。
答案 1 :(得分:0)
问题是我在Apache conf文件中没有包含以下行:
RailsEnv development
RackEnv development