我正在尝试在同一个网站上托管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不起作用。
感谢您的提示
答案 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中的任何ServerName
或ServerAlias
定义时,apache将返回 default < / em> vhost,它始终是文件中的第一个vhost(或者名称是最小的词典顺序的文件,例如00-default_vhosts.conf
)。在您的情况下,您的SVN虚拟主机是第一个,因此它是“默认”虚拟主机。如果你将2换成另一个,那么就是“默认”vhost。