apache乘客vhosts中的多个conf文件dirctory

时间:2015-10-01 20:40:52

标签: apache passenger

我有一台旧的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文件吗?

1 个答案:

答案 0 :(得分:0)

您不能在同一个域中拥有两个虚拟主机,这就是第二个选项有效的原因(两个应用程序位于同一个虚拟主机中)。

第一个选项不起作用(每个应用都有不同的虚拟主机),因为它们已经配置为在端口80(*:80)的所有域中工作。 如果您为每个域指定了ServerName(和/或ServerAlias),它们将在指定的域上工作,并且不存在冲突。例如,如果为第一个虚拟主机设置ServerName grade_review.my_server.com,为第二个虚拟主机设置ServerName honors_review.my_server.com,并假设子域已正确设置,则可以使用此功能。

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