Apache2在同一台服务器上托管两个站点

时间:2012-09-20 16:05:32

标签: apache svn ubuntu

我正在尝试在同一个网站上托管subversion和wiki。

我在/ etc / apache2 / sites-available

中创建了两个文件 中的

我有

<VirtualHost -myserverIP-:80>
        ServerAdmin webmaster@localhost
        ServerName  svn.example.com
        DocumentRoot /var/svn/repos
        <Location /svn/repos>
                DAV svn
                SVNPath /var/svn/repos
      AuthType Basic
      AuthName "Subversion Repository"
      AuthUserFile /etc/apache2/passwords
      Require valid-user
        </Location>

</VirtualHost>

在“wiki”中我有

<VirtualHost -myserverIP-:80>
        ServerAdmin webmaster@localhost
        ServerName wiki
        ServerAlias -myserverIP-

        DocumentRoot /home/www/wiki/html
        <Directory /home/www/wiki/html>
                AllowOverride None
                Options -Indexes -MultiViews -SymLinksIfOwnerMatch +FollowSymLinks
                Order allow,deny
                allow from all
        </Directory>

        <Location /wiki>
        </Location>

        <DirectoryMatch "^/home/www/wiki/html/(data|conf|bin|inc)/">
            Order allow,deny
            Deny from all
            Satisfy All
        </DirectoryMatch>

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

        ErrorLog /home/www/wiki/logs/error.log
        CustomLog /home/www/wiki/logs/access.log combined


</VirtualHost>

但是现在,当我浏览到服务器的IP地址时,我得到了/ var / svn / repos目录的内容,当我刚拿到维基页面时,我得到了维基索引页面。我实际上可以转到-IPaddress- / svn / repos并查看SVN存储库,但-IPaddress- / wiki不起作用。

感谢您的提示

2 个答案:

答案 0 :(得分:2)

您的虚拟主机都位于同一台计算机上的端口80上。 Apache只能猜测你想要使用哪一个。它正在猜测subversion并浏览指定的DocumentRoot。 您需要区分虚拟主机,或使用服务器名称而不是IP浏览到服务器。

相反,您可以在其他虚拟主机中设置SVN位置。

还可以考虑使用/etc/apache2/mods-available/dav_svn.conf,具体取决于您的操作系统。

答案 1 :(得分:0)

  

但是现在,当我浏览到服务器的IP地址时,我得到了/ var / svn / repos目录的内容,当我刚拿到维基页面时,我得到了维基索引页面。我实际上可以转到-IPaddress- / svn / repos并查看SVN存储库,但-IPaddress- / wiki不起作用。

当您向apache发出请求并且您使用的主机名未由任何vhost中的任何ServerNameServerAlias定义时,apache将返回 default < / em> vhost,它始终是文件中的第一个vhost(或者名称是最小的词典顺序的文件,例如00-default_vhosts.conf)。在您的情况下,您的SVN虚拟主机是第一个,因此它是“默认”虚拟主机。如果你将2换成另一个,那么就是“默认”vhost。