来自apache + passenger的500错误

时间:2012-01-27 05:05:27

标签: ruby-on-rails apache2 passenger

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

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 / dave / prodspace / river,我已为河流/公共文件夹的www-data设置了组权限。我启用了该站点并重新启动了apache sudo a2ensite河 sudo service apache2 restart

系统规格如下: 使用rvm安装的ruby相关内容 红宝石1.9.2p290 乘客3.0.11 rails 3.2.0 apache 2.2(通过apt-get软件包安装) ubuntu 11.10(x86服务器版)

任何帮助总是受到赞赏......

2 个答案:

答案 0 :(得分:1)

我必须经常在工作中处理这个问题。这里发挥的一些事情如下:(注意:我也在工作中使用RVM)

  • cd进入项目的app目录
  • 确保您已安装乘客宝石(宝石安装--no-ri --no-rdoc passenger
  • 然后确保运行乘客apache模块安装(rvmsudo passenger-install-apache2-module)
  • 然后你想确保在/ etc / apache2 / mods-enabled中启用apache mods
    • 你会想要乘客。在您的apache配置中启用了passenger.conf。

现在,应该注意的是乘客不会玩得很好,除非你在这里添加一点点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,如果路由设置正确,它应该正常工作。

答案 1 :(得分:1)

未设置生产数据库。修复程序最终正在运行:

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