use*_*747 8 virtualhost apache-2.2
好的,这是我的问题:我已经为自己设置了一个具有适当服务器名称的虚拟主机。例如,我还在同一台机器上安装了 Squirrelmail 和 SVN。我想通过输入 http://mydomain 进入默认页面,通过输入 http://mydomain/mail 进入我的邮件前端,通过输入 http://mydomain.no-ip.org/svn 进入我的 svn。
这是我的虚拟主机定义:
<VirtualHost *:80>
ServerName mydomain.no-ip.org
#Default site, accessible by http :// mydomain.no-ip.org/
<Location />
DocumentRoot "/var/www/alias"
DirectoryIndex index.php
</Location>
#Squirrelmail, accessible by http :// mydomain.no-ip.org /mail
<Location /mail>
DocumentRoot /usr/share/squrrelmail
Options FollowSymLinks
<IfModule mod_php5.c>
php_flag register_globals off
</IfModule>
<IfModule mod_dir.c>
DirectoryIndex index.php
</IfModule>
<Files configtest.php>
order deny,allow
deny from all
allow from 127.0.0.1
</Files>
</Location>
#SVN, accessible by http :// mydomain.no-ip.org /svn
<Location /svn>
DAV svn
SVNParentPath "/svnrepo"
SVNListParentPath On
AuthType Basic
AuthName "My SVN Repo"
AuthUserFile "/svnrepo/htpasswd"
Require valid-user
</Location>
Run Code Online (Sandbox Code Playgroud)
但是,那个有问题。尝试重新启动 apache 时,它说您不能DocumentRoot
在Location
. 因此,我做错了一些事情,但我还不知道究竟是什么。
在浏览 serverfault 以查找是否有人遇到类似问题时,我找到了一个指向 Apache 的 vhost 示例的链接:http ://httpd.apache.org/docs/2.0/vhosts/examples.html,但是,我想不通哪个例子是最好的例子。
老实说,我也不精通 apache 和它的方法,所以我知道我刚刚写的东西对你来说可能充其量是荒谬的。
所以,有人知道如何解决我的问题吗?任何帮助将不胜感激!
Sha*_*den 15
事实上,你不能有另一个DocumentRoot
;你会想要一个Alias
。
DocumentRoot
从<Location>
块中删除,并将其替换为这个(必须在<Location>
块之外):
Alias /mail /usr/share/squrrelmail
Run Code Online (Sandbox Code Playgroud)
让我们将这些 SquirrelMail 设置应用于目录而不是位置;只需交换块顶部和底部的定义:
<Directory /usr/share/squrrelmail>
Options FollowSymLinks
<IfModule mod_php5.c>
php_flag register_globals off
</IfModule>
# etc
</Directory>
Run Code Online (Sandbox Code Playgroud)
此外,不太可能有适用于 SquirrelMail 目录的任何权限设置。您可能需要在该<Directory /usr/share/squrrelmail>
部分中使用此或类似内容:
Order Allow,Deny
Allow from all
Run Code Online (Sandbox Code Playgroud)
归档时间: |
|
查看次数: |
28628 次 |
最近记录: |