Ruby on rails Ruby/Rails Apache2&;乘客设置返回目录列表

Ruby on rails Ruby/Rails Apache2&;乘客设置返回目录列表,ruby-on-rails,passenger,ubuntu-12.04,vps,Ruby On Rails,Passenger,Ubuntu 12.04,Vps,首先,我有一个功能齐全的Apache2服务器(在Ubuntu12.04 VPS上)和多个工作虚拟主机(但这是我第一次尝试部署Rails站点),这一点毫无价值。此外,我尝试启动的Rails站点在我的本地WEBRick服务器上功能齐全 为了让Apache、Ruby、Rails和Passenger更好地配合使用,我参考了各种在线说明,包括: (他们不提供针对12.04的文档) 乘客文档是Passenger-install-apache2-module安装过程的一部分 各种古老的SO问题,如和

首先,我有一个功能齐全的Apache2服务器(在Ubuntu12.04 VPS上)和多个工作虚拟主机(但这是我第一次尝试部署Rails站点),这一点毫无价值。此外,我尝试启动的Rails站点在我的本地WEBRick服务器上功能齐全

为了让Apache、Ruby、Rails和Passenger更好地配合使用,我参考了各种在线说明,包括:

  • (他们不提供针对12.04的文档)
  • 乘客文档是
    Passenger-install-apache2-module安装过程的一部分
  • 各种古老的SO问题,如和
总而言之,到目前为止,我已经:

  • 已安装的Ruby(
    Ruby-v
    在站点根目录中返回1.9.3)、RVM、Ruby Gems、Rails(
    Rails-v
    在应用程序文件夹中返回3.2.8,我可以在应用程序文件夹中启动
    Rails服务器
    )&乘客(包括所有依赖项)
  • 按照
    passenger-install-apache2-module
    的指示,我在
    /etc/apache2/apache2.conf
    的底部添加了以下几行:

    LoadModule passenger_module /var/lib/gems/1.8/gems/passenger 3.0.17/ext/apache2/mod_passenger.so
    PassengerRoot /var/lib/gems/1.8/gems/passenger-3.0.17
    PassengerRuby /usr/bin/ruby1.8
    
  • 创建并启用(在
    /etc/apache2/sites enabled/
    中列出)包含以下内容的虚拟主机
    /etc/apache2/sites available/foo.com

    <VirtualHost *:80>
      ServerName foo.com
      DocumentRoot /home/user/public/foo.com/public
      <Directory /home/user/public/foo.com/public>
        AllowOverride all
        Options -MultiViews
      </Directory>
    </VirtualHost>
    

    我希望我忽略了一些非常愚蠢的事情。如果你能帮我弄清楚那是什么,我将不胜感激。谢谢

    如果使用apache2.2,则不应在apache2.conf中包含以下内容

    LoadModule passenger_module /var/lib/gems/1.8/gems/passenger 3.0.17/ext/apache2/mod_passenger.so
    PassengerRoot /var/lib/gems/1.8/gems/passenger-3.0.17
    PassengerRuby /usr/bin/ruby1.8
    
    相反,您应该在可用的
    /etc/apache2/mods上创建两个文件:

    乘客。装载以下物品

    LoadModule passenger_module /var/lib/gems/1.8/gems/passenger3.0.17/ext/apache2/mod_passenger.so
    
    PassengerRoot /var/lib/gems/1.8/gems/passenger-3.0.17
    PassengerRuby /usr/bin/ruby1.8
    
    passenger.conf带有:

    LoadModule passenger_module /var/lib/gems/1.8/gems/passenger3.0.17/ext/apache2/mod_passenger.so
    
    PassengerRoot /var/lib/gems/1.8/gems/passenger-3.0.17
    PassengerRuby /usr/bin/ruby1.8
    
    最后,您只需运行:

    a2enmod passenger
    

    一切都结束了。顺便说一下,当你使用它时,你可以考虑使用Ruby(1.93.……)的最新版本。最好的方法是使用。

    有相同的问题,结果是,在/etc/apache2/mods enabled/passanger.load中,我安装了apache2乘客。因此,不想工作,将其更改为gems installed passenger.so

    LoadModule passenger_module /var/lib/gems/1.9.1/gems/passenger-4.0.20/buildout/apache2/mod_passenger.so
    

    我试着用乘客来运行Rails 2.3。我几年前创建的应用程序需要转移到新的服务器上

    我添加了乘客,但我得到的只是一个目录列表

    最后我发现我没有一个
    config.ru
    文件。 用这两行代码创建一个文件就足够了:

    
    require File.dirname(_File__)+'/config/environment'
    运行ActionController::Dispatcher.new
    


    我花了大约5个小时才发现我漏掉了那两行。我希望所有处于类似情况的人都能在花太多时间做这件事之前找到答案…:-)

    谢谢你的回复。我不再在页面上看到目录列表(因此我接受了您的答案),而是看到了一个乘客错误页面。Arg.“没有这样的文件要加载——bundler/setup”,就在几分钟前,我创建了一个包含所有细节的问题:我显然需要做的就是从apache2.conf中删除这3行,这可能也不值得。乘客已被启用。passenger.load已经存在,并且包含以下内容(我没有做任何更改):
    LoadModule passenger\u module/usr/lib/apache2/modules/mod\u passenger.so
    。passenger.conf也存在并包含以下内容(同样,我没有做任何更改):
    PassengerRoot/usr PassengerRuby/usr/bin/ruby
    谢谢你,伙计,它给了我一个新生。