Passenger只显示Apache中的目录

时间:2011-11-06 22:58:35

标签: ruby-on-rails-3 ubuntu apache2 passenger

我正在尝试使用Passenger在Ubuntu上使用Apache部署rails应用程序。我几乎遵循了我在使用Apache / Ubuntu配置Passenger时可以找到的所有指南。但是,当我访问该站点时,我只看到实际的文件目录而不是应用程序的运行版本。如果我切换到/ public目录,我在访问该站点时只看到公共目录。我可以通过调用rails s来启动和停止rails服务器而不会出现任何错误,但仍然无法看到应用程序的运行版本。有没有人遇到过类似的问题?有没有人能建议我看一个好的起点?我不确定问题是阿帕奇还是乘客。

Apache配置

 LoadModule passenger_module /usr/lib/ruby/gems/1.9.1/gems/passenger-3.0.9/ext/apache2/mod_passenger.so
 PassengerRuby /usr/bin/ruby
 PassengerRoot /usr/lib/ruby/gems/1.9.1/gems/passenger-3.0.9
 PassengerMaxPoolSize 10
 <VirtualHost *:80>
     ServerName http://www.myapp.com/
     DocumentRoot /var/www/myapp/current/
<Directory /var/www/myapp/current/public>
    Allow from all
</Directory>

当我重新启动apache时,我收到一条消息,指出[Sun Nov 06 14:43:48 2011] [warn] module passenger_module is already loaded, skipping我不确定这是错误还是正常。

更新

当我运行find / -name 'mod_passenger.so'时,我会获得两个位置: /usr/lib/ruby/gems/1.9.1/gems/passenger-3.0.9/ext/apache2/mod_passenger.so /usr/lib/apache2/modules/mod_passenger.so

更新2

我有几个passenger.config文件

 /etc/apache2/mods-enabled/passenger.conf
 /etc/apache2/mods-available/passenger.conf
 /usr/lib/ruby/gems/1.9.1/gems/passenger-3.0.9/debian/passenger.conf

每个passenger.conf文件都包含以下内容:

 <IfModule mod_passenger.c>
      PassengerRoot /usr
      PassengerRuby /usr/bin/ruby
 </IfModule>

2 个答案:

答案 0 :(得分:0)

尝试将以下内容放入apache配置文件

<Directory /var/www/myapp/current/public>
    Allow from all
    #Add following line
    Options +Includes -Indexes
</Directory>

答案 1 :(得分:0)

您可以将mod_passenger.so符号链接到启用了apache2 / mods的目录中。这将导致双重导入。

运行

a2dismod mod_passenger.so

删除任何符号链接,然后重新启动Apache。