Хорошо, вот моя проблема: я создал себе виртуальный хост с подходящим именем сервера. У меня также, например, установлены Squirrelmail и SVN на одном компьютере. Я хочу перейти на страницу по умолчанию, набрав http: // mydomain, перейти к моему почтовому интерфейсу, набрав http: // mydomain / mail, и к моему svn, набрав http: // mydomain.no-ip.org / svn.
Вот мое определение vhost:
<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>
Однако с этим есть проблема; при попытке перезапустить apache он говорит, что вы не можете определить DocumentRoot
в пределах Location
. Поэтому я что-то делаю не так, но пока не знаю, что именно.
При просмотре serverfault, чтобы узнать, есть ли у кого-нибудь похожая проблема, я нашел ссылку на примеры Apache vhost: http://httpd.apache.org/docs/2.0/vhosts/examples.html , hovever, я не могу понять, какой из примеров будет лучшим.
Честно говоря, я также не разбираюсь в apache и его способах, поэтому я знаю, что то, что я только что написал, может быть для вас в лучшем случае бессмысленным.
Итак, кто-нибудь знает, как решить мою проблему, пожалуйста? Любая помощь будет принята с благодарностью!
Действительно, у вас не может быть другого DocumentRoot
; вы хотите Alias
вместо.
Отбросьте DocumentRoot
из <Location>
блок и замените его этим (который должен находиться за пределами <Location>
блок):
Alias /mail /usr/share/squrrelmail
И давайте применим эти настройки SquirrelMail к каталогу, а не к местоположению; просто поменяйте местами определения вверху и внизу блока:
<Directory /usr/share/squrrelmail>
Options FollowSymLinks
<IfModule mod_php5.c>
php_flag register_globals off
</IfModule>
# etc
</Directory>
Кроме того, маловероятно, что где-либо есть какие-либо настройки разрешений, применимые к каталогу SquirrelMail. Вам, вероятно, понадобится это или подобное в <Directory /usr/share/squrrelmail>
раздел:
Order Allow,Deny
Allow from all