乘客的轨道只在开发中运行

时间:2010-05-21 10:13:24

标签: ruby-on-rails apache2 passenger

我的某个网络服务器出了问题。 我会尝试尽可能清楚地解释它,但我不是100%了解服务器的所有配置。

有两个站点在彼此旁边运行(blcc_preprod和blcc_prod),所以在apache的'sites-enabled'中我有一个像'blcc'这样的文件:

<VirtualHost *:80>
    DocumentRoot /opt/dn/blcc/www
    RailsBaseURI /blcc_preprod
    RailsBaseURI /blcc_prod
    RailsEnv production
</VirtualHost>

我的config / environments / production.log(来自两者)看起来像这样(我删除了所有注释,因为它与布局混淆)

config.cache_classes = true

config.action_controller.consider_all_requests_local = false
config.action_controller.perform_caching             = true
config.action_view.cache_template_loading            = true

config.log_level = :debug

奇怪的是,我的生产日志可以追溯到几个月前,所以有些事情确实是错误的。

有人可以帮忙吗?如果您需要更多信息,请询问。

谢谢!

编辑: 来自apache的Error.log显示事件到服务器的正常输出(这里的情况是webserver通过框架插入到另一个业务(java)服务器) Access.log为空

我们浏览ip / blcc_preprod后来自other_vhosts_access.log的内容如下

blcc.localdomain:80 192.168.21.194 - - [25/May/2010:08:33:04 +0200] "GET/ blcc_preprod
HTTP/1.1" 500 594 "-" "Mozilla/4.0 (compatible; MSIE 6.0; Windows NT 5.1; SV1; .NET 
CLR 1.1.4322; .NET CLR 2.0.50727)"

3 个答案:

答案 0 :(得分:1)

错误是指内部错误。

所以:

tail -f /var/log/apache2/error_log

尝试访问该网站。

错误发生在那里,因为Passenger无法初始化Rails应用程序,所以它认为错误是你的应用程序之外的东西。很可能一个模块丢失或者某些内容被初始化错误。

答案 1 :(得分:1)

使用RoR 3.x?
试试

RackEnv development  

RackEnv production  

答案 2 :(得分:0)

我认为在一个在不同Rails环境中工作的虚拟主机中设置两个应用程序是不可能的 - 至少不是这样的。

乘客文档说RailsEnv设置如下:

  

“在每个地方,最多可以指定一次。默认值为生产。”

http://www.modrails.com/documentation/Users%20guide.html#rails_env

因此,一个VirtualHost指令无法指定多个RailsEnv。

这可能就是为什么你只看到一个应用程序运行的原因(虽然,我不确定它为什么会开发)。

我建议你在单独的VirtualHosts中分离生产/开发应用程序,或者你可以使用block。也许是这样的:

<VirtualHost *:80>
  DocumentRoot /opt/dn/blcc/www
  RailsBaseURI /blcc_preprod
  RailsBaseURI /blcc_prod

  <Location /blcc_preprod>
    RailsEnv development
  </Location>

  <Location /blcc_prod>
    RailsEnv production
  </Location>
</VirtualHost>