Ubuntu 12.10 虚拟主机冲突

Ubuntu 12.10 虚拟主机冲突

我的服务器上有 2 个网站。一个我通过我的 IP 访问,xxxx/站点1另一个是注册的域名,www.mysite.com。

最初,我只有我的/etc/apache/sites-available/default文件可用,但当我尝试加载上述任一网站时,我得到的只是/var/www/index.html输出。

我使用以下代码为 mysite.com 添加了一个新的虚拟主机:

<VirtualHost *:80>
    ServerAdmin webmaster@localhost

    DocumentRoot /var/www/mysite
    <Directory />
            Options FollowSymLinks
            AllowOverride All
    </Directory>
    <Directory /var/www/mysite>
            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}/error.log

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

    CustomLog ${APACHE_LOG_DIR}/access.log combined

Mysite.com 仅在默认禁用时加载,但是,xxxx/站点1没有。

因此,我启用了具有以下代码的默认虚拟主机:

<VirtualHost *:80>
    ServerAdmin webmaster@localhost

    DocumentRoot /var/www
    <Directory />
            Options FollowSymLinks
            AllowOverride None
    </Directory>
    <Directory /var/www/>
            Options Indexes 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

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

    CustomLog ${APACHE_LOG_DIR}/access.log combined

现在,xxxx/站点1有效,但是我的站点不会 - 相反,它会加载/var/www/index.html页。

我不知道问题是什么。希望得到帮助。

答案1

为了使虚拟域正常工作,它需要知道要映射到哪个主机。在浏览器的 http 请求中,它会设置一个 Host 标头,例如

Host: mysite.com

因此 apache 将读取该内容以确定要使用哪个 vhost 条目。您需要添加类似以下内容的内容

ServerName mysite.com www.mysite.com

到 mysite.com 虚拟主机<VirtualHost *:80>

相关内容