Apache 上 Drupal 站点的意外虚拟主机行为
Unexpected virtual host behavior of Drupal sites on Apache
我是 运行 CentOS 7 机器上的 Apache 服务器。
一个月前,我在 /var/www/html/site1
下创建了一个新的 Drupal 站点(我们称之为 site1)。
访问 http://<server-ip>/site1
正确生成 site1。
今天,为了给一个新客户提供测试环境,我不得不为一个新的Drupal站点创建一个虚拟主机(姑且称之为site2)。
所以我创建了以下虚拟主机规则:
<VirtualHost *:80>
ServerAdmin test@email.com
ServerName site2.dev
DocumentRoot /var/www/html/site2
<Directory />
Options FollowSymLinks
AllowOverride All
</Directory>
</VirtualHost>
之后,我创建了网站的文件夹 /var/www/html/site2
并安装了 Drupal。访问 http://site2.dev
会正确生成 site2。
问题是,如果我现在访问 http://<server-ip>/site1
,会显示 site2。
我不知道可能是什么问题。这两个站点在完全不同的路径和不同的数据库上,所以我认为一个不应该影响另一个。
因为我今天从字面上定义了我的第一个虚拟主机,所以我想知道是否有人可以帮助我解释这个问题。提前致谢!
好的,我误解了你的问题,以为你有 2 个域。
你的site1是通过没有子目录的IP访问的吗?在这种情况下 :
将 DocumentRoot 更改为指向 /var/www/html,然后 IP/site1 和 IP/site2.
将访问这两个站点
如果您已经准备好通过 url IP/site1 访问 site1,那么您无需更改任何内容,无需新虚拟主机即可访问 IP/site2,仅指向 site2 目录... .
根据 Laurent 的回答,这是我最终使用的配置:
# So all IP only paths continue to work
<VirtualHost *:80>
DocumentRoot /var/www/html/
ServerName 10.10.10.10 # Server's IP
<Directory /var/www/html/>
Options FollowSymLinks
AllowOverride All
</Directory>
</VirtualHost>
# So site2.dev points to its folder
<VirtualHost *:80>
DocumentRoot /var/www/html/site2
ServerName site2.dev
<Directory /var/www/html/site2>
Options FollowSymLinks
AllowOverride All
</Directory>
</VirtualHost>
我是 运行 CentOS 7 机器上的 Apache 服务器。
一个月前,我在 /var/www/html/site1
下创建了一个新的 Drupal 站点(我们称之为 site1)。
访问 http://<server-ip>/site1
正确生成 site1。
今天,为了给一个新客户提供测试环境,我不得不为一个新的Drupal站点创建一个虚拟主机(姑且称之为site2)。
所以我创建了以下虚拟主机规则:
<VirtualHost *:80>
ServerAdmin test@email.com
ServerName site2.dev
DocumentRoot /var/www/html/site2
<Directory />
Options FollowSymLinks
AllowOverride All
</Directory>
</VirtualHost>
之后,我创建了网站的文件夹 /var/www/html/site2
并安装了 Drupal。访问 http://site2.dev
会正确生成 site2。
问题是,如果我现在访问 http://<server-ip>/site1
,会显示 site2。
我不知道可能是什么问题。这两个站点在完全不同的路径和不同的数据库上,所以我认为一个不应该影响另一个。
因为我今天从字面上定义了我的第一个虚拟主机,所以我想知道是否有人可以帮助我解释这个问题。提前致谢!
好的,我误解了你的问题,以为你有 2 个域。
你的site1是通过没有子目录的IP访问的吗?在这种情况下 : 将 DocumentRoot 更改为指向 /var/www/html,然后 IP/site1 和 IP/site2.
将访问这两个站点如果您已经准备好通过 url IP/site1 访问 site1,那么您无需更改任何内容,无需新虚拟主机即可访问 IP/site2,仅指向 site2 目录... .
根据 Laurent 的回答,这是我最终使用的配置:
# So all IP only paths continue to work
<VirtualHost *:80>
DocumentRoot /var/www/html/
ServerName 10.10.10.10 # Server's IP
<Directory /var/www/html/>
Options FollowSymLinks
AllowOverride All
</Directory>
</VirtualHost>
# So site2.dev points to its folder
<VirtualHost *:80>
DocumentRoot /var/www/html/site2
ServerName site2.dev
<Directory /var/www/html/site2>
Options FollowSymLinks
AllowOverride All
</Directory>
</VirtualHost>