我有一台旧的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文件吗?
答案 0 :(得分:0)
您不能在同一个域中拥有两个虚拟主机,这就是第二个选项有效的原因(两个应用程序位于同一个虚拟主机中)。
第一个选项不起作用(每个应用都有不同的虚拟主机),因为它们已经配置为在端口80(*:80
)的所有域中工作。
如果您为每个域指定了ServerName
(和/或ServerAlias
),它们将在指定的域上工作,并且不存在冲突。例如,如果为第一个虚拟主机设置ServerName grade_review.my_server.com
,为第二个虚拟主机设置ServerName honors_review.my_server.com
,并假设子域已正确设置,则可以使用此功能。
与您尝试实现的内容相关,第二个选项(有效的选项)是有意义的,我不会更改它,因为您希望这两个应用程序在同一个域上工作,但使用不同的前缀。