LinuxSir.cn,穿越时空的Linuxsir!

 找回密码
 注册
搜索
热搜: shell linux mysql
查看: 4363|回复: 16

再请kevin老师看一下 这个apache的题目,马上考试了,麻烦您了。

[复制链接]
发表于 2005-5-27 00:22:58 | 显示全部楼层 |阅读模式
请看这个虚拟主机的设置

<VirtualHost 192.168.100.102>
    ServerAdmin webmaster@dummy-host.example.com
    DocumentRoot /var/www/html_aaron
    ServerName aaron.you.com
    <Directory /var/www/html_aaron>                  ******主要是这里有问题****
    Options Indexes
    </Directory>
    ErrorLog logs/dummy-host.example.com-error_log
    CustomLog logs/dummy-host.example.com-access_log common
</VirtualHost>

在我打***的地方,我对这个目录做了设置   允许列出目录列表。但执行结果是
[error] [client 192.168.100.102] Directory index forbidden by rule: /var/www/html/


我注意到设置不成功的目录 是我这个虚拟主机的 DocumentRoot目录,把上面的修改为



<VirtualHost 192.168.100.102>
    ServerAdmin webmaster@dummy-host.example.com
    DocumentRoot /var/www/html_aaron
    ServerName aaron.you.com
    <Directory /var/www/html_aaron/abc>                  ******修改的地方****
    Options Indexes
    </Directory>
    ErrorLog logs/dummy-host.example.com-error_log
    CustomLog logs/dummy-host.example.com-access_log common
</VirtualHost>

则可以显示目录列表。

怎么样让DocumentRoot目录可以显示目录列表??????

而且这个问题,即使不是虚拟主机 也有遇到。请指点
发表于 2005-5-27 09:28:30 | 显示全部楼层
Directory index forbidden by rule: /var/www/html/   ?
根本不是你的虚拟主机 DocumentRoot  !
估计是你根本没有访问到你的虚拟主机,或没有通过域名访问到正常的虚拟主机
NameVirtualHost是否正常配置了?


请从基础学起,不要好高务远!
回复 支持 反对

使用道具 举报

 楼主| 发表于 2005-5-27 10:38:06 | 显示全部楼层
唉,是我把出错信息出错了。
应该是“[Thu May 26 12:16:51 2005] [error] [client 192.168.0.3] Directory index forbidden by rule: /var/www/html_aaron/”

虚拟主机是没问题的。
请看
cat  /var/www/html_aaron/index.html   
echo "html_aaron"

测试
wget http://aaron.you.com/
--12:22:18--  http://aaron.you.com/
           => `index.html'
Resolving aaron.you.com... done.
Connecting to aaron.you.com[192.168.0.253]:80... connected.
HTTP request sent, awaiting response... 200 OK
Length: 18 [text/html]

100%[===================================================================>] 18            17.58K/s    ETA 00:00

12:22:18 (17.58 KB/s) - `index.html' saved [18/18]

[root@you /]# cat index.html            
echo "html_aaron"


然后我把index.html文件改名为index来测试 目录options Indexes,就出现我上面说的问题,
我的系统信息
uname -a
Linux you.com 2.4.21-20.EL.c0 #1 Thu Sep 9 02:07:03 EDT 2004 i686 i686 i386 GNU/Linux
cat /etc/issue
CentOS release 3.3 (final)
Kernel \r on an \m
回复 支持 反对

使用道具 举报

发表于 2005-5-27 11:09:06 | 显示全部楼层
什么呀?
你的虚拟主机是192.168.100.102, 你访问的是192.168.0.253 !
你做什么修改都没有用的!
回复 支持 反对

使用道具 举报

 楼主| 发表于 2005-5-27 11:26:51 | 显示全部楼层
唉,乱了,乱了,
192.168.100.102, 是我在家里测试的IP,192.168.0.253   是在单位测试的IP,配置文件我弄成一样了。

两边我都做了同样目的的测试。
回复 支持 反对

使用道具 举报

 楼主| 发表于 2005-5-27 11:36:43 | 显示全部楼层
都不知道这个问题怎么表达了。

其实这个问题不知道 您有没有注意到。如果我们不管前面说的所有配置,全部重新来、!!!
我现在重新配置一个http服务,没有任何修改!!没有任何虚拟主机!!


安装好后。httpd.conf文件不做任何修改,他的配置文件 原样如下:

<Directory "/var/www/html">

#
# Possible values for the Options directive are "None", "All",
# or any combination of:
#   Indexes Includes FollowSymLinks SymLinksifOwnerMatch ExecCGI MultiViews
#
# Note that "MultiViews" must be named *explicitly* --- "Options All"
# doesn't give it to you.
#
# The Options directive is both complicated and important.  Please see
# http://httpd.apache.org/docs-2.0/mod/core.html#options
# for more information.
#
    Options Indexes FollowSymLinks
----------——————————————————————————————————
上面这一段 是不是应该让/var/www/html下的内容列出来?但是报的错误 也是“[Thu May 26 12:43:39 2005] [error] [client 192.168.0.3] Directory index forbidden by rule: /var/www/html/”(如果我在/var/www/html/下加上 index.html 就可以访问。)
——————————————————————————————————————

#
# AllowOverride controls what directives may be placed in .htaccess files.
# It can be "All", "None", or any combination of the keywords:
#   Options FileInfo AuthConfig Limit
#
    AllowOverride None

#
# Controls who can get stuff from this server.
#
    Order allow,deny
    Allow from all

</Directory>
回复 支持 反对

使用道具 举报

发表于 2005-5-27 11:51:26 | 显示全部楼层
look  /etc/httpd/conf.d/welcome.conf
回复 支持 反对

使用道具 举报

 楼主| 发表于 2005-5-27 12:52:05 | 显示全部楼层
对,一针见血,就是这个问题。有了这个配置,是当没有index.html时,会自动跳到welcome页面,logs显示拒绝!!


让您费心了。网络上也没有具体办法谢你,希望你能见面谢了。
回复 支持 反对

使用道具 举报

发表于 2005-6-1 12:54:22 | 显示全部楼层
Post by aaronyou
对,一针见血,就是这个问题。有了这个配置,是当没有index.html时,会自动跳到welcome页面,logs显示拒绝!!


让您费心了。网络上也没有具体办法谢你,希望你能见面谢了。


我这里又发现了一个问题。我配置了一个virtualhost,比如主站叫testlinux, virtualhost 叫 vhtestlinux, /etc/hosts中的IP-hostname 也都map好了。从http服务器的机子上看http://testlinux和http://vhtest ... 了主站的DocRoot. (比如,我的主站DocumentRoot为"/var/www/html", vh的为"/var/www/vh1/htdocs"). 很奇怪。请老师是否能解释一下。

附上部分的httpd.conf配置:
[PHP]
<Directory />
    Options FollowSymLinks
    AllowOverride None
    Order allow,deny
    Allow from 192.168.0.0/24
</Directory>

<Directory "/var/www/html">
   Options indexes FollowSymLinks
   AllowOverride None
   Order allow,deny
   Allow from All
</Directory>

NameVirtualHost vhtestlinux:80

<VirtualHost vhtestlinux:80>
    ServerAdmin webmaster@testLinux
    DocumentRoot /var/www/vh1/htdocs
    <Directory "/var/www/vh1/htdocs">
        Options indexes FollowSymLinks
        AllowOverride   None
        Order allow,deny
        Allow from All
    </Directory>
    ServerName vhtestLinux
    ErrorLog logs/vhtestLinux-error_log
    CustomLog logs/vhtestLinux_log common
</VirtualHost>
[/PHP]

还有一个很有意思的问题就是在<Directory "/var/www/html"> ... </Directory>这个directive块里,我必须用Allow from All而不是Allow from 192.168.0.0/24。不然从http服务器上的浏览器里无法浏览目录。error是forbidden.其他机子浏览没有问题。有趣的是,所有的机子都在192.168.0.0/24这个网段里。
回复 支持 反对

使用道具 举报

发表于 2005-6-1 12:58:02 | 显示全部楼层
不好意思,发现我写的http url被错误解析了。故此重发。

我这里又发现了一个问题。我配置了一个virtualhost,比如主站叫testlinux, virtualhost 叫 vhtestlinux, /etc/hosts中的IP-hostname 也都map好了。从http服务器的机子上看testlinux和vhtestlinux内容是不一样的。(这是我想要的,因为他们的DocumentRoot不一样)。可是如果从另外一台机子(在同一网段)浏览这两个站点,就全是virtualhost目录低下的内容了。怎么也去不了主站的DocRoot. (比如,我的主站DocumentRoot为"/var/www/html", vh的为"/var/www/vh1/htdocs"). 很奇怪。请老师是否能解释一下。

附上部分的httpd.conf配置:
[PHP]
<Directory />
    Options FollowSymLinks
    AllowOverride None
    Order allow,deny
    Allow from 192.168.0.0/24
</Directory>

<Directory "/var/www/html">
   Options indexes FollowSymLinks
   AllowOverride None
   Order allow,deny
   Allow from All
</Directory>

NameVirtualHost vhtestlinux:80

<VirtualHost vhtestlinux:80>
    ServerAdmin webmaster@testLinux
    DocumentRoot /var/www/vh1/htdocs
    <Directory "/var/www/vh1/htdocs">
        Options indexes FollowSymLinks
        AllowOverride   None
        Order allow,deny
        Allow from All
    </Directory>
    ServerName vhtestLinux
    ErrorLog logs/vhtestLinux-error_log
    CustomLog logs/vhtestLinux_log common
</VirtualHost>
[/PHP]

还有一个很有意思的问题就是在<Directory "/var/www/html"> ... </Directory>这个directive块里,我必须用Allow from All而不是Allow from 192.168.0.0/24。不然从http服务器上的浏览器里无法浏览目录。error是forbidden.其他机子浏览没有问题。有趣的是,所有的机子都在192.168.0.0/24这个网段里。
回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 登录 | 注册

本版积分规则

快速回复 返回顶部 返回列表