2012-01-27 72 views
1

我试图使用虚拟服务器方法,这是我认为我的问题来自于安装apache2上的rails应用程序。我尝试了独立的乘客安装(在昨天下午花费在尝试使apache工作之后)并且工作得很好,但是我想使用apache。从apache +乘客500错误

Apache的错误日志显示:

[Thu Jan 26 22:36:18 2012] [notice] caught SIGTERM, shutting down 
[Thu Jan 26 22:36:20 2012] [notice] Apache/2.2.20 (Ubuntu) Phusion_Passenger/3.0.11 configured -- resuming normal operations 
cache: [GET /videos] miss 

的SIGTERM是我的重启动Apache。缓存未命中是我试图查看模型的页面。

虚拟主机设置

<VirtualHost *:80> 

    DocumentRoot /home/dave/prodspace/river/public 
    <Directory /> 
      Options FollowSymLinks 
      AllowOverride None 
    </Directory> 
    <Directory /home/dave/prodspace/river/public/> 
      Options Indexes FollowSymLinks -MultiViews 
      AllowOverride All 
      Order allow,deny 
      allow from all 
    </Directory> 

    ScriptAlias /cgi-bin/ /usr/lib/cgi-bin/ 
    <Directory "/usr/lib/cgi-bin"> 
      AllowOverride None 
      Options +ExecCGI -MultiViews +SymLinksIfOwnerMatch 
      Order allow,deny 
      Allow from all 
    </Directory> 

    ErrorLog ${APACHE_LOG_DIR}/error.log 

    # Possible values include: debug, info, notice, warn, error, crit, 
    # alert, emerg. 
    LogLevel warn 

    CustomLog ${APACHE_LOG_DIR}/access.log combined 

Alias /doc/ "/usr/share/doc/" 
<Directory "/usr/share/doc/"> 
    Options Indexes MultiViews FollowSymLinks 
    AllowOverride None 
    Order deny,allow 
    Deny from all 
    Allow from 127.0.0.0/255.0.0.0 ::1/128 
</Directory> 

    </VirtualHost> 

包含一切的/ home /戴维/ prodspace /河,我已设置组的权限www数据为河流/公共文件夹。我已经启用了该网站,并通过 重启apache的须藤a2ensite河 须藤服务的Apache2重启

系统规格是:使用RVM 红宝石1.9.2p290 乘客3.0.11 轨3.2.0 Apache的安装 红宝石相关的东西2.2(通过apt-get的包安装) 的Ubuntu 11.10(X86服务器版)

任何帮助总是赞赏...

回答

1

生产数据库未设置。该修复结束了运行:

RAILS_ENV=production rake db:create db:schema:load 
1

我有我的工作经常处理这个。即开始发挥作用,有几件事情在这里如下:(注:我用RVM对我的开发工作也)

  • cd到你的应用程序目录的项目
  • 确保您已经安装了乘客(宝石安装 - 无ri - 无rdoc乘客
  • 然后确保运行乘客apache模块安装(rvmsudo乘客安装 - apache2模块)
  • 然后,您要确保启用在你的/ etc/apache2/mods启用的apache mods
    • 你会想要pas segy.load & passenger.conf都在你的apache配置中启用。现在

,应该注意的是,除非您在此处执行附加点点引用here乘客没有发挥好。

建立在你的config /目录名为setup_load_path.rb一个新的文件,并粘贴在那里:

if ENV['MY_RUBY_HOME'] && ENV['MY_RUBY_HOME'].include?('rvm') 
    begin 
    rvm_path  = File.dirname(File.dirname(ENV['MY_RUBY_HOME'])) 
    rvm_lib_path = File.join(rvm_path, 'lib') 
    $LOAD_PATH.unshift rvm_lib_path 
    require 'rvm' 
    RVM.use_from_path! File.dirname(File.dirname(__FILE__)) 
    rescue LoadError 
    # RVM is unavailable at this point. 
    raise "RVM ruby lib is currently unavailable." 
    end 
end 

现在重新启动Apache和它应该工作,如果你的路由的设置正确。

+0

另外,如果你希望你的应用程序在开发模式调试目的运行,将它添加到您的身体。 RailsEnv开发 – Skittles 2012-01-29 03:30:43

+0

我没有看到apache2中有passenger.load或passenger.conf的行。conf,并且乘客不在mods-enabled或mods-available的列表中。 我确实安装了乘客3.0.11,我运行了passenger-install-apache-module并复制了三行并将它们附加到apache2.conf。 – dave 2012-01-29 05:44:41

+0

如果您将这些行复制到apache2.conf中,那么您无需担心启用了mods的内容。这个关键的方面是setup_load_path.rb文件。这是因为乘客试图使用您的系统ruby和rails而不是您已安装的gemset。你能粘贴'宝石列表'的输出吗? – Skittles 2012-01-29 05:55:20