vhosts 目录中的 apache passenger 多个 conf 文件

apache passenger multiple conf files in vhosts dirctory

我有一个旧的 bitnami 服务器,我正在尝试添加一个额外的应用程序。我的 http.conf 文件包含这一行:

IncludeOptional con/vhosts/*.conf

我在 vhosts 目录中有两个文件第一个名为 grade_review.conf,包含以下内容:

<VirtualHost *:80>
  RackBaseURI /grade_review
  <Directory "/opt/bitnami/apache2/htdocs/grade_review">
    Options -MultiViews
    <IfVersion < 2.3 >
    Order allow,deny
    Allow from all
    </IfVersion>
    <IfVersion >= 2.3>
    Require all granted
    </IfVersion>
  </Directory>
</VirtualHost>

这是服务器上现有的应用程序,运行良好。我可以在 http://my_server.com/grade_review 访问该应用程序,没有任何问题。

我添加了第二个,名为 honors_review.conf,包含以下内容:

<VirtualHost *:80>
  RackBaseURI /honors_review
  <Directory "/opt/bitnami/apache2/htdocs/honors_review">
    Options -MultiViews
    <IfVersion < 2.3 >
    Order allow,deny
    Allow from all
    </IfVersion>
    <IfVersion >= 2.3>
    Require all granted
    </IfVersion>
  </Directory>
</VirtualHost>

重新启动apache后,我仍然可以毫无问题地访问第一个应用程序,但是在http://my_server.com/honors_review尝试访问第二个应用程序时出现权限被拒绝的错误。

当我修改第一个文件时,它包含两个应用程序,如下所示。 . .

<VirtualHost *:80>
  RackBaseURI /grade_review
  <Directory "/opt/bitnami/apache2/htdocs/grade_review">
    Options -MultiViews
    <IfVersion < 2.3 >
    Order allow,deny
    Allow from all
    </IfVersion>
    <IfVersion >= 2.3>
    Require all granted
    </IfVersion>
  </Directory>

  RackBaseURI /honors_review
  <Directory "/opt/bitnami/apache2/htdocs/honors_review">
    Options -MultiViews
    <IfVersion < 2.3 >
    Order allow,deny
    Allow from all
    </IfVersion>
    <IfVersion >= 2.3>
    Require all granted
    </IfVersion>
  </Directory>
</VirtualHost>

。 . .并重新启动 apache,这两个应用程序都可以工作。我错过了什么?我是否错误地认为我可以为两个单独的应用程序拥有两个单独的 conf 文件?

你不能在同一个域中有两个虚拟主机,这就是为什么第二个选项有效(两个应用程序在同一个虚拟主机中)。

第一个选项不起作用(每个应用程序都有不同的虚拟主机),这是因为它们被配置为在端口 80 (*:80) 的所有域中工作。 如果您为每个指定一个 ServerName (and/or ServerAlias),它们将在指定的域上工作并且不会有冲突。例如,如果您为第一个虚拟主机设置 ServerName grade_review.my_server.com,为第二个虚拟主机设置 ServerName honors_review.my_server.com,并且假设子域设置正确,这将起作用。

与您要实现的目标相关,第二个选项(有效的选项)很有意义,我不会更改它,因为您希望两个应用程序在同一个域上工作,但前缀不同。