Apache+Passenger 不为 Sinatra 应用程序的根提供服务

Apache+Passenger 不为 Sinatra 应用程序的根提供服务

自上次更新 Fusion Passenger 以来,我的所有 Sinatra 应用程序都已停止在以下环境中工作:Apache (2.4.17)、Phusion Passenger (5.0.21)。在更新 Passenger 中间件之前,一切都按预期运行。

问题是,当我请求 url 时,apache 目录正在尝试继续列出公共目录(https://myapp.ch)的我的虚拟主机。

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 App 的根目录 (/) 时出现 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 正在尝试执行目录列表(已被配置禁用)。

有人遇到过同样的问题吗?如何让 apache 启动 passager 并为 Sinatra 应用程序的根提供服务?

答案1

显然有一个漏洞在 Apache 2.4.17 中。

禁用模块自动索引(这是导致错误行为的原因,将防止错误发生。

#LoadModule autoindex_module modules/mod_autoindex.so

在 Apache 2.5.0 发布之前,Phusion 将在 Passenger 5.0.22 的发布版本中解决这个问题。

相关内容