2010-05-03 96 views
1

首先一个快速免责声明,我不是'服务器人'或'UNIX专业版'或类似的东西,我是一个Web程序员, Ubuntu的)在我的上网本。在Apache服务器上的多个域

我试图设置一个在Debian上运行的apache服务器,以自动为多个域提供服务,每个域需要在/ var/www中拥有自己的目录。

因为这是我为这家公司做的最后一件事情,所以我真的需要它对我的继任者来说很容易(他甚至比我更像一个服务器的初学者),创造更多的领域,而不必使用ssh或/ etc/apache2/sites-available,所以我在寻找的基本上是默认情况下(或者apt-get,或者conf.d)的任何神奇的mumbo-jumbo,它使得服务器开始服务任何具有匹配文件夹的域在/ var/www中,他们将不得不以常用方式启动域名转移。

我没有问题单独设置域。

Ick ...希望以上对某人有意义。

回答

1

的味道为来自Apache的多个域的未经测试的代码,你需要Apache虚拟主机。您就可以开始投放有使用mod_vhost_alias Apache的虚拟主机在/ var/WWW匹配的文件夹,”任何领域。

下面的配置将完全限定域名(例如www.example.org),并用它作为变量'%0',因此,为了提供'www.example.org',你需要在/var/www/www.example.org/docs创建一个目录,并在其中放置HTML内容。去/var/www/www.example.org/cgi-bin/

<VirtualHost 192.168.1.100:80> 

# get the server name from the Host: header 
UseCanonicalName Off 

VirtualDocumentRoot /var/www/%0/docs 
VirtualScriptAlias /var/www/%0/cgi-bin 

</VirtualHost> 

然后,点 'www.example.org' 到 '192.168.1.100',和Apache会很乐意成为该虚拟主机。

+0

客户端怎么样输入'http://example.org'?网址会将他带到/var/www.example.org/docs目录吗? – cache 2012-06-27 06:14:51

+1

@cache:好问题。不,'example.org'会将他/ var /我不知道在这种情况下该怎么做,但我认为解决方案会涉及一些重写事先将所有内容发送到规范URL。我想你应该在Serverfault.com上提出你的问题作为一个新问题。我很想看看其他人如何处理这个问题。 – 2012-06-27 19:12:22

0

与Ubuntu

sudo a2enmod rewrite 
vi /etc/apache/sites-enabled/000-default 

NameVirtualHost * 
<VirtualHost *> 
     DocumentRoot /var/www/ 
     RewriteEngine On 
     RewriteRule ^(.*)$ %{HTTP_HOST}/$1 
</VirtualHost> 


sudo /etc/inid.d/apache2 restart 
相关问题