在Fedora上运行Apache。
我的虚拟主机configuration如下所示:
NameVirtualHost 184.106.108.173:80 <VirtualHost 184.106.108.173:80> ServerName www.sandboxmadness.com DocumentRoot /var/www/admin/public <Directory "/var/www/admin/public"> Options Indexes FollowSymLinks AllowOverride All Order allow,deny Allow from all </Directory> </VirtualHost> <VirtualHost 184.106.108.173:80> ServerAlias www.meatball-parm.us DocumentRoot /var/www/meatball ServerName www.meatball-parm.us DirectoryIndex index.html </VirtualHost>
第一个虚拟主机像冠军一样工作。 当我parsing肉丸地址时,浏览器打开正确的文件夹,但显示目录列表,而不是打开索引文件。
find了。 。 。 在conf文件中还有另一个DirectoryIndex指令,它被设置为index.php。 显然,虚拟主机中指定的指令不会覆盖“主configuration”中指定的指令。
你能检查你的日志吗? 你可能会看到一个错误(文件不可打开,目录不可读…)。 如果您以index.html结尾inputurl,是否正常工作? 你的索引不是PHP或其他东西?
今天我们在Apache 2.2的SLES 11 SP4服务器上发现了一个非常奇怪的行为。
Apache完全“忽略”我们的vhosts.conf中的DirectoryIndex index.html,当不是由Apaches服务帐户拥有的htdocs文件(在我们的例子中是wwwrun.www)时,尽pipe文件权限足够通过OTHERS(R + X )。 我们可以在没有任何问题的情况下访问index.html,如果我们明确地在url上解决它,但是当没有在URL上提及时失败。
但是当我们recursion地将htdocs所有权改回到SLES默认值(wwwrun.www)时,apache开始正常工作,并且DirectoryIndex给定文件再次被服务,而没有在URL上明确提及它。
在我的情况下,mod_dir.so文件被注释掉了:
LoadModule … mod_dir.so
取消注释,重新启动apache,一切开始工作!