Apache虚拟主机无法正常工作

Kri*_*ris 8 apache virtualhost virtual-hosts server-name

不知怎的,我的虚拟主机文件不能正常工作我不知道为什么 - 我敢打赌它只是我早上大脑中的邮件功能:p

现在我通过/ etc/apache2 /目录中可用站点的符号链接启用了两个站点,如:

0 Nov 21 12:24 000-default -> ../sites-available/default
0 Nov 21 14:52 001-site -> ../sites-available/site
Run Code Online (Sandbox Code Playgroud)

我的VHosts文件看起来像:

默认

<VirtualHost *:80>
        ServerAdmin webmaster@localhost
        ServerName (the IP Address from my Server)
        ServerAlias (the 2nd IP Address from my Server)
        DocumentRoot /var/www/default
        <Directory />
                Options FollowSymLinks
                AllowOverride None
        </Directory>
        <Directory /var/www/default>
                Options FollowSymLinks MultiViews
                AllowOverride None
                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}/error.log
        LogLevel warn

        CustomLog ${APACHE_LOG_DIR}/access.log combined
</VirtualHost>
Run Code Online (Sandbox Code Playgroud)

现场

<VirtualHost *:80>
    ServerAdmin myname@example.de
    DocumentRoot /var/www/site/
    ServerName jobbörse-köln.de
    ServerAlias www.example.de ww.example.de w.example.de

    <Directory />
            Options FollowSymLinks
            AllowOverride None
    </Directory>
    <Directory /var/www/site>
            Options FollowSymLinks MultiViews
            AllowOverride None
            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}/site-error.log
    LogLevel warn
    CustomLog ${APACHE_LOG_DIR}/site-access.log combined
</VirtualHost>
Run Code Online (Sandbox Code Playgroud)

不知怎的,当我继续"example.de"时,我进入了DEFAULT目录而不是SITE目录.甚至是日志文件:

site-error.log
site-access.log
Run Code Online (Sandbox Code Playgroud)

留在0字节......我做错了什么?我打赌这是愚蠢和容易的事情......

Man*_*tia 9

您正在为虚拟主机条目使用默认的80端口.所以我希望您使用NameVirtualHost*:80作为配置.

在您共享的配置中,VirtualHost会在端口80上重叠,因此第一个具有优先权.

  • @y_nk 我猜你在使用相同的 IP+PORT 组合和两个或多个 VirtualHost 时遇到了这个问题,如上面 (*:80),其中 * 用于所有 IP(对于确定的 IP,如 209.207.228.12:80,它可能会有所不同)。如果是,那么您必须告诉 Apache *:80 正在被两个不同的 VirtualHost 指令使用。因此,在添加这两个指令之前,您需要添加 NameVirtualHost *:80(对于上述情况)。之后 ServerAlias 将相应地选择您的配置。希望它能解决你的问题。 (2认同)