这让我疯了。
我在同一个redhat服务器上运行了2个不同的rails应用程序。 Web服务器是apache,app服务器是乘客5.0
App1 - rails 3.0.2和ruby 1.9.3
App2- rails 2.0.3&红宝石1.8.7
App1工作正常,这是配置:
<VirtualHost *:8081>
ServerName server-xyz
RailsEnv test
DocumentRoot /webapps/test/app1/current/public
<Directory />
Options FollowSymLinks
AllowOverride None
Order allow,deny
Allow from all
</Directory>
</VirtualHost>
现在,当我运行app2时,它会将我带到默认的apache页面并给出以下错误:
Options指令禁止的目录索引: / web应用/测试/ APP2 /电流/公共/
这是app2的虚拟主机:
<VirtualHost *:8081>
ServerName server-xyz
RailsEnv test
DocumentRoot /webapps/test/app2/current/public
<Directory />
Options FollowSymLinks
AllowOverride None
Order allow,deny
Allow from all
</Directory>
</VirtualHost>
这是常见的passgenger配置:
LoadModule passenger_module /opt/ruby-1.9.3/lib/ruby/gems/1.9.1/gems/passenger-5.0.8/buildout/apache2/mod_passenger.so
PassengerRoot /opt/ruby-1.9.3/lib/ruby/gems/1.9.1/gems/passenger-5.0.8
PassengerDefaultRuby /opt/ree-1.8.7/bin/ruby_with_env
PassengerLogLevel 1
PassengerMaxPoolSize 10
任何人都有任何想法为什么它适用于ruby.1.9.3 app而不是ruby 1.8.7?
我试过跟踪类似的线程,但无法让它工作。
编辑:我给该路径的'apache'写权限。似乎没有帮助。编辑2:我在public下找到了以下.htaccess配置:
/webapps/test/app2/releases/20150622171404/public/.htaccess
# General Apache options
AddHandler fastcgi-script .fcgi
AddHandler cgi-script .cgi
Options +FollowSymLinks +ExecCGI
RewriteEngine On
# If your Rails application is accessed via an Alias directive,
# then you MUST also set the RewriteBase in this htaccess file.
#
# Example:
# Alias /myrailsapp /path/to/myrailsapp/public
# RewriteBase /myrailsapp
RewriteRule ^$ index.html [QSA]
RewriteRule ^([^.]+)$ $1.html [QSA]
RewriteCond %{REQUEST_FILENAME} !-f
RewriteRule ^(.*)$ dispatch.cgi [QSA,L]
答案 0 :(得分:4)
如果你是乘客5并且正在运行ruby 1.8.7&amp; rails 2 app,你需要在你的应用程序的根目录中添加一个config.ru:
# config.ru
# Require your environment file to bootstrap Rails
require ::File.dirname(__FILE__) + '/config/environment'
# Serve static assets from RAILS_ROOT/public directory
# use Rails::Rack::Static
# Dispatch the request
run ActionController::Dispatcher.new
答案 1 :(得分:0)
对于第二个应用程序配置,请使用以下命令进行更新:
tb_agenda
并检查文件系统中您没有带有针对Indexes选项的自定义配置的.htaccess文件,无论是在app目录上还是在上层目录中
答案 2 :(得分:-1)
如果您使用的是ruby 1.8.7和Rails 2.X.我发现最简单的选择是从乘客5降级到乘客4.0.59。