【问题标题】:Multiple domains on apache serverapache服务器上的多个域
【发布时间】:2011-02-15 02:31:48
【问题描述】:

首先快速免责声明,我不是“服务器人”或“unix pro”或类似的东西,我是一名网络程序员,自从我在上网本上运行 linux (ubuntu) 以来,我一直在做服务器工作.

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

由于这是我为这家公司做的最后一件事,我真的需要让我的继任者(他比我更擅长服务器)轻松创建更多域,而不必使用 ssh 或/etc/apache2/sites-available,所以我正在寻找的基本上是任何默认的魔法 mumbo-jumbo(或 apt-get 或 conf.d),它使服务器开始为任何具有匹配文件夹的域提供服务/var/www 他们当然必须以通常的方式启动域转移。

单独设置域没有问题。

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

【问题讨论】:

    标签: apache .htaccess apache2 debian conf.d


    【解决方案1】:

    要从 Apache 为多个域提供服务,您需要 Apache 虚拟主机。您可以使用 mod_vhost_alias 开始使用 Apache 虚拟主机为 /var/www" 中具有匹配文件夹的任何域提供服务。

    以下配置将采用完全限定域名(如 www.example.org)并将其用作变量“%0”。因此,要提供“www.example.org”,您需要在 /var/www/www.example.org/docs 创建一个目录,并将您的 HTML 内容放在那里。您的 Cgi 脚本将进入 /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 将愉快地为该虚拟主机提供服务。

    【讨论】:

    • 客户输入'example.org'怎么样?该 url 会将他带到 /var/www.example.org/docs 目录吗?
    • @cache :好问题。不,'example.org' 会将他带到 /var/**example.org**/docs 而不是 /var/www.example.org/docs 。我不确定在这种情况下该怎么做,但我认为解决方案将涉及一些重写,以预先将所有内容发送到规范 URL。我认为您应该在 Serverfault.com 上将您的问题作为一个新问题提出。我很想看看其他人是如何处理这个问题的。
    【解决方案2】:

    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
    

    【讨论】:

      猜你喜欢
      • 2012-12-08
      • 1970-01-01
      • 2017-05-19
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2017-09-22
      • 2022-11-06
      • 2018-02-10
      相关资源
      最近更新 更多