Debian 7 上的 apache 2.22 中的多个虚拟主机...非常奇怪和难以解释的行为...有人可以尝试帮助我吗?

Debian 7 上的 apache 2.22 中的多个虚拟主机...非常奇怪和难以解释的行为...有人可以尝试帮助我吗?

我面临一个令我抓狂的配置问题......

基本上,我是为一位客户担任系统管理员,该客户使用一台服务器托管许多不同的网站,更具体地说:

服务器是:

PRETTY_NAME="Debian GNU/Linux 7 (wheezy)" NAME="Debian GNU/Linux" VERSION_ID="7" VERSION="7 (wheezy)" ID=debian ANSI_COLOR="1;31" HOME_URL="http://www.debian.org/" SUPPORT_URL="http://www.debian.org/support/" BUG_REPORT_URL="http://bugs.debian.org/"

Linux坐标3.2.0-4-amd64 #1 SMP Debian 3.2.68-1+deb7u6 x86_64 GNU/Linux

服务器版本:Apache/2.2.22 (Debian) 服务器建立时间:2015 年 8 月 18 日 09:50:52

现在,在此基础上,我在第三级配置了几个不同的网站,例如 abc.xyz.it、def.xyz.it、ghi.xyz.it 等等。一切都按预期进行,直到上周我被要求配置其中一个虚拟主机,以响应略有不同的 URL 上的不同外部查询,并将它们重定向到同一个DocumentRoot。这似乎很简单,事实上,我已经设法允许 qqq.xyz.it(原始虚拟主机),以及 qqqk.xyz.it 和 www.qqqk.xyz.it 将预期的配置放入原始/etc/apache2/sites-available/qqq文件中;然后a2dissite qqq,,,,再次……service apache2 reloada2ensite qqqservice apache2 reload

正如我所说,一切运行正常,没有问题。

但几天后,客户要求我还添加 www.qqq.xyz.it...

我的第一个想法是这很简单,所以我编辑了文件,qqq也为这个实例添加了一个部分...好吧,尽管尝试了几次,我还是完全无法让它运行......在我看来,这与我为其他虚拟主机所做的没有什么不同,但根本没有成功。

qqq我粘贴了文件的实际内容如下:

<VirtualHost *:80>
    ServerAdmin webmaster@localhost
    ServerName qqq.xyz.it
    DocumentRoot /var/www2/qqq
    <Directory /var/www2/qqq>
        Options -Indexes FollowSymLinks MultiViews
        AllowOverride All
        Order allow,deny
        allow from all
    </Directory>

    ScriptAlias /cgi-bin/ /usr/lib/cgi-bin/
    <Directory "/usr/lib/cgi-bin">
#       AllowOverride None
        Options +ExecCGI -MultiViews +SymLinksIfOwnerMatch
        Order allow,deny
        Allow from all
    </Directory>

    ErrorLog ${APACHE_LOG_DIR}/dri-error.log

    # Possible values include: debug, info, notice, warn, error, crit,
    # alert, emerg.
    LogLevel error

    CustomLog ${APACHE_LOG_DIR}/dri-access.log combined
</VirtualHost>


<VirtualHost *:80>
    ServerAdmin webmaster@localhost
    ServerName www.qqq.xyz.it
    DocumentRoot /var/www2/qqq
    <Directory /var/www2/qqq>
        Options -Indexes FollowSymLinks MultiViews
        AllowOverride All
        Order allow,deny
        allow from all
    </Directory>

    ScriptAlias /cgi-bin/ /usr/lib/cgi-bin/
    <Directory "/usr/lib/cgi-bin">
#       AllowOverride None
        Options +ExecCGI -MultiViews +SymLinksIfOwnerMatch
        Order allow,deny
        Allow from all
    </Directory>

    ErrorLog ${APACHE_LOG_DIR}/dri-error.log

    # Possible values include: debug, info, notice, warn, error, crit,
    # alert, emerg.
    LogLevel error

    CustomLog ${APACHE_LOG_DIR}/dri-access.log combined
</VirtualHost>


<VirtualHost *:80>
    ServerAdmin webmaster@localhost
    ServerName qqqk.xyz.it
    DocumentRoot /var/www2/qqq
    <Directory /var/www2/qqq>
        Options -Indexes FollowSymLinks MultiViews
        AllowOverride All
        Order allow,deny
        allow from all
    </Directory>

    ScriptAlias /cgi-bin/ /usr/lib/cgi-bin/
    <Directory "/usr/lib/cgi-bin">
#       AllowOverride None
        Options +ExecCGI -MultiViews +SymLinksIfOwnerMatch
        Order allow,deny
        Allow from all
    </Directory>

    ErrorLog ${APACHE_LOG_DIR}/dri-error.log

    # Possible values include: debug, info, notice, warn, error, crit,
    # alert, emerg.
    LogLevel error

    CustomLog ${APACHE_LOG_DIR}/dri-access.log combined
</VirtualHost>


<VirtualHost *:80>
    ServerAdmin webmaster@localhost
    ServerName www.qqqk.xyz.it
    DocumentRoot /var/www2/qqq
    <Directory /var/www2/qqq>
        Options -Indexes FollowSymLinks MultiViews
        AllowOverride All
        Order allow,deny
        allow from all
    </Directory>

    ScriptAlias /cgi-bin/ /usr/lib/cgi-bin/
    <Directory "/usr/lib/cgi-bin">
#       AllowOverride None
        Options +ExecCGI -MultiViews +SymLinksIfOwnerMatch
        Order allow,deny
        Allow from all
    </Directory>

    ErrorLog ${APACHE_LOG_DIR}/dri-error.log

    # Possible values include: debug, info, notice, warn, error, crit,
    # alert, emerg.
    LogLevel error

    CustomLog ${APACHE_LOG_DIR}/dri-access.log combined
</VirtualHost>

有人猜过吗?我尝试过多次改变文件中四个部分的顺序,我尝试过ServerAlias在文件中任何地方都不起作用的方法……我已经没有主意了,也许这是一件简单而愚蠢的事情,但就我尝试了这么久而言,也许我看不到它……

答案1

乍一看这是 2.2,因此您实际上在第一个定义的虚拟主机中接收所有请求,您需要在服务器配置上下文中添加此指令一次,以便正确解释您的虚拟主机:

NameVirtualHost *:80

相关内容