中午开发小哥跑来找我,给我一个网站地址,我点开后显示的是目录格式,把网站的目录结构全部显示出来了。开发小哥说这个显示结果不正确,不应该让用户看到我们的目录结构,问我怎么解决。
我第一反应是目录权限的问题,查看了一下网站目录的权限,发现权限是777,随后我把权限改为755,结果这个页面的确不能访问了,但是上级页面也跟着爆掉了,要知道,这可是线上环境啊,我当时那个汗就下来了,赶紧恢复了777的权限,上级页面又正常了,看来不是权限的问题(又长见识了)。
这个时候我意识到可能是配置文件的问题了,然后正好公司运维主管过来,我问了一下,他说apache配置文件里有一项可以禁止显示网站目录的配置项,禁止掉就好了(然后用一脸鄙视的神情看了我一下)。我查了一下,原来在apache的主配置文件中对于网站根目录的配置中有一项:
<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.2/mod/core.html#options
# for more information.
#
Options Indexes FollowSymLinks (就是这一行配置)
#
# 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
上述红色字体即表示允许以目录的形式列出网站目录下的子文件以及子目录,只要将配置中的Indexes删掉就可以禁止列出目录了。删完一看果然成功了。
可能有的大神看到我发的博客会觉得幼稚低级,原谅我刚入行运维不久,经验啥的太缺乏了。对于这些服务的了解也还比较浅,平时都主要关注服务怎么搭建起来,怎么正常工作,这些细节的配置关注的很少。看来运维不是一件容易干的工作啊,经验果然是重要中的重要,所以赶紧来写下这篇博客,也为自己积累一点东西吧。
另外:欢迎大家到我的博客来,欢迎评论,有什么不对的地方欢迎大家指出,相互学习。