自上次Fusion Passenger更新以来,我所有的Sinatra应用程序都停止了以下env的工作:Apache(2.4.17),Phusion Passenger(5.0.21)。 在更新乘客中间件之前,一切都按预期工作。
问题是,当我请求虚拟主机的url( https://myapp.ch )时,apache目录正在尝试进入公共目录的列表。
ODD部分:如果请求Sinatra控制器中定义的路由(即: https : //myapp.ch/infos ),则启动乘客并按预期提供请求的页面。
这是虚拟主机部分:
<VirtualHost *:443> DocumentRoot /home/user1/sinatra/app1/public ServerName myapp.ch <Directory /home/user1/sinatra/app1/public> AllowOverride all Order allow,deny Allow from all Options -MultiViews Require all granted </Directory>
Config.ru
# encoding: UTF-8 require 'rubygems' require 'sinatra' require File.expand_path '../start.rb', __FILE__ run Sinatra::Application
请求Sinatra应用程序的根(/)时,Apache日志错误:
[Mon Oct 26 22:10:30.728795 2015] [autoindex:error] [pid 3535:tid 140103510914816] [client 176.127.182.162:50956] AH01276: Cannot serve directory /home/user1/sinatra/app1/public/: No matching DirectoryIndex (none) found, and server-generated directory index forbidden by Options directive
Apache正在尝试做目录列表(已被configuration禁用)。
有人遇到同样的问题? 如何使Apache启动通道和服务的Sinatra应用程序的根?
显然在Apache 2.4.17中有一个错误 。
禁用模块自动索引(这是错误的行为的原因,将防止错误。
#LoadModule autoindex_module modules/mod_autoindex.so
Phusion将在Apache 2.5.0发布之前解决Passenger 5.0.22的问题。