在一个 apache2 服务器上的文件夹中托管多个站点

在一个 apache2 服务器上的文件夹中托管多个站点

我正在尝试设置 apache2 来托管多个站点,但使用相同的根 URL,并且仅在子文件夹中不同,即

hxxp://example.com/site1/

hxxp://example.com/site2/

这应该很容易,但我在谷歌搜索了几个小时后,仍然没有找到正确的方法。我可以通过浏览找到 site1http://example.com但另一个则不然。

我正在使用 kubuntu 服务器 10.04,并在 /etc/apache2/sites-available/ 中创建了 conf 文件,并为每个站点运行 a2ensite

这是与 .htaccess 相关的问题吗,还是我必须摆弄 apache2 conf 文件?

答案1

“问题”在于您将 VirtualHosts 用于其真正设计用途之外的用途。 http://httpd.apache.org/docs/2.2/en/vhosts/ “站点”由自己的域或 IP 定义。因此,如果您为子文件夹(如您)进行 VirtualHost 配置,则会发生冲突(不知道您的决定因素是什么?我的意思是 ServerName/ServerAlias)。我不知道具体发生了什么,但您在 VirtualHosts 中配置的内容将无法正常工作(至少不是全部)。那么解决方案是什么:

  • 您可以使用子域名,例如 site1.example.com 和 site2.example.com(如果您想使用 VirtualHosts)
  • 您可以使用 1 个 VirtualHost(例如 example.com)和目录作为您的子站点(example.com/site1 和 example.com/site2):http://httpd.apache.org/docs/2.0/en/mod/core.html#directory但是这里没有与 VirtualHost 配置中相同的选项。
  • 可能还有其他解决方案,但我的解决方案应该可以解决问题;)

希望这可以帮助。

顺便提一句。

kubuntu 服务器 10.04

为了提高安全性和性能,您不应该在生产系统上使用 X-Server。

答案2

经过反复尝试,我成功地完成了我想要做的事情,通过改变线路

文件根目录 /var/www/site1

文件根目录 /var/www

在两个站点配置文件中(在 /etc/apache2/sites-available 中)

但我必须承认,我不知道这是否会对我的整体设置/安全/性能产生其他影响。

有什么线索吗?!

相关内容