# Be sure to restart your server when you modify this file
# Specifies gem version of Rails to use when vendor/rails is not present
RAILS_GEM_VERSION = '2.3.5' unless defined? RAILS_GEM_VERSION
ENV["RAILS_ENV"] ||= "stage"
# Bootstrap the Rails environment, frameworks, and default configuration
require File.join(File.dirname(__FILE__), 'boot')
Rails::Initializer.run do |config|
我可以运行
RAILS_ENV=stage script/console
一切都运行良好。我可以运行rake db:migrate并生成我的数据库。然后我可以进入控制台并按照我的模型行事。我还可以在stage.log中看到ActiveRecord活动
问题是当我打开浏览器并导航到URL时,我得到了500错误
我们很抱歉,但出了点问题。
当我尝试通过浏览器访问该网站时,我没有看到任何写入stage.log的内容。
我的apache日志文件如下所示。
1.1.1.1 - - [19/Jan/2010:06:05:01 -0800] "GET /classes/calendar HTTP/1.1" 500 861 "-" "Mozilla/5.0 (Macintosh; U; Intel Mac OS X 10_5_8; en-us) AppleWebKit/531.21.8 (KHTML, like Gecko) Version/4.0.4 Safari/531.21.10"
我甚至尝试从控制台运行应用程序控制器,这也有效。我无法弄清楚为什么页面无法通过浏览器正常运行。
是否有我遗失的权限设置。我认为在DreamHost上FTP用户和服务器运行的用户是相同的所以我想我有正确的权限,但我只是不确定。
任何帮助将不胜感激, 罗布
答案 0 :(得分:1)
问题可能出在您将RAILS_ENV设置为“stage”的行中。您正在使用的|| =赋值仅在尚未定义RAILS_ENV时设置值。在这种情况下,即使在点击您的应用程序之前,RA很可能已经将RAILS_ENV设置为“生产”,因此|| =赋值无效。
要查看这是否真的是问题,请查看您的日志目录 - 您可能会找到一个production.log并且stage.log中没有条目(除了您运行的脚本/控制台产生的条目)您的应用程序正在(无意中)作为生产运行。
解决此问题的一种方法是将行更改为:
ENV["RAILS_ENV"] = "stage"
答案 1 :(得分:0)
通常这个问题可能是脚本或您的宝石环境的权限。我不熟悉在DH上部署rails应用程序,你使用的是Passenger还是fastcgi?
从shell中,运行gem env
:
RubyGems Environment:
- RUBYGEMS VERSION: 1.3.5
- RUBY VERSION: 1.8.7 (2009-06-12 patchlevel 174) [i686-linux]
- INSTALLATION DIRECTORY: /usr/lib/ruby/gems/1.8
- RUBY EXECUTABLE: /usr/bin/ruby
- EXECUTABLE DIRECTORY: /usr/bin
- RUBYGEMS PLATFORMS:
- ruby
- x86-linux
- GEM PATHS:
- /usr/lib/ruby/gems/1.8
- /home/<username>/.gem/ruby/1.8
- GEM CONFIGURATION:
- :update_sources => true
- :verbose => true
- :benchmark => false
- :backtrace => false
- :bulk_threshold => 1000
- :sources => ["http://gems.rubyforge.org/", "http://gems.github.com", "http://gemcutter.org"]
- REMOTE SOURCES:
- http://gems.rubyforge.org/
- http://gems.github.com
- http://gemcutter.org
这些设置适用于控制台,但不适用于通过apache运行。为此,您需要编辑config / environments.rb并添加
ENV['GEM_PATH'] = '/home/<usrname>/.gem/ruby/1.8:/usr/lib/ruby/gems/1.8'
您希望确保您在此处设置的GEM_PATH与gem env命令的输出匹配。