我正在尝试使用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
我有几个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>
答案 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。