Linux服务器配置多台虚拟主机

  2016年11月4日15:59:12

LAMP环境 参考:http://blog.itblood.com/nginx-same-ip-multi-domain-configuration.html   

在httpd/conf/httpd.conf里按照如下配置:

 

  • symlink attack 符号连结攻击
  • Creating symlink for sourcetitles 创建节目源链接
  • symlink 创建符号链接,建立符号连接,符号链接

Windows 添加虚拟主机之后,重启不了Apache ,最后发现  Options Indexs FollowSymlinks 这句话的“Indexs”去掉,就神奇的重启成功了!!!不知道原因~~~~~


##<VirtualHost *:80>

## ServerAdmin fudesign@163.com
## DocumentRoot "F:wwwhtml"
## ServerName weixin.sjwl.com
## ServerAlias weixin.sjwl.com
## ErrorLog "logs/htmlf.log"
## CustomLog "logs/htmlf.log" combined

#####如果是Linux 服务器,就将Directory标签目录中的反斜线(“”)改为斜线(“/”),输入正确的目录####

## <Directory "F:wwwhtml"> 


Options Indexes FollowSymLinks ExecCGI Includes

## Options Indexes FollowSymLinks
## AllowOverride All
## Order allow,deny
## Allow from all
# Require all granted
## </Directory>
##
##</VirtualHost>、

http://blog.sina.com.cn/s/blog_a03d702f0101133h.html

禁止显示Apache目录列表-Indexes FollowSymLinks
如何修改目录的配置以禁止显示 Apache 目录列表。
缺省情况下如果你在浏览器输入地址:

http://localhost:8080/
如果你的文件根目录里有 index.html,浏览器就会显示 index.html的内容,如果没有 index.html,浏览器就会显示文件根目录的目录列表,目录列表包括文件根目录下的文件和子目录。

同样你输入一个虚拟目录的地址:

http://localhost:8080/b/
如果该虚拟目录下没有 index.html,浏览器也会显示该虚拟目录的目录结构,列出该虚拟目录下的文件和子目录。

如何禁止 Apache 显示目录列表呢?

要禁止 Apache 显示目录结构列表,只需将 Option 中的 Indexes 去掉即可。

比如我们看看一个目录的目录配置:

<Directory "D:/Apa/blabla">
 Options Indexes FollowSymLinks #---------->Options FollowSymLinks
 AllowOverride None
 Order allow,deny
 Allow from all
</Directory>
你只需要将上面代码中的 Indexes 去掉,就可以禁止 Apache 显示该目录结构。用户就不会看到该目录下的文件和子目录列表了。

Indexes 的作用就是当该目录下没有 index.html 文件时,就显示目录结构,去掉 Indexes,Apache 就不会显示该目录的列表了。

第二种方法
解决办法:
        1、编辑httpd.conf文件
            vi ./conf/httpd.conf

  找到如下内容:
          ?BR>          <Directory “C:/Program Files/Apache2.2/htdocs”>
              #
              # 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
              #
              AllowOverride None

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

          </Directory>
          ……

  在Options Indexes FollowSymLinks在Indexes前面加上 – 符号。
        即: Options -Indexes FollowSymLinks
  【备注:在Indexes前,加 + 代表允许目录浏览;加 – 代表禁止目录浏览。】

    这样的话就属于整个Apache禁止目录浏览了。

    如果是在虚拟主机中,只要增加如下信息就行:
          <Directory “D:test”>
            Options -Indexes FollowSymLinks
            AllowOverride None
            Order deny,allow
            Allow from all
        </Directory>
    这样的话就禁止在test工程下进行目录浏览。

备注: 切记莫把“Allow from all”改成 “Deny from all”,否则,整个网站都不能被打开。
  <Finished>

 还有一种方法:

可以在根目录的 .htaccess 文件中输入

<Files *>
Options -Indexes
</Files>
就可以阻止Apache 将目录结构列表出来。

AllowOverride参数就是指明Apache服务器是否去找.htaccess文件作为配置文件,如果设置为none,那么服务器将忽略.htacess文件,如果设置为All,那么所有在.htaccess文件里有的指令都将被重写。对于AllowOverride,还可以对它指定如下一些能被重写的指令类型. 



通常利用Apache的rewrite模块对 URL 进行重写的时候, rewrite规则会写在 .htaccess 文件里。但要使 apache 能够正常的读取.htaccess 文件的内容,就必须对.htaccess 所在目录进行配置。从安全性考虑,根目录的AllowOverride属性一般都配置成不允许任何Override ,即 




代码如下: 
<Directory /> 
AllowOverride None 
</Directory>






在 AllowOverride 设置为 None 时, .htaccess 文件将被完全忽略。当此指令设置为 All 时,所有具有 ".htaccess" 作用域的指令都允许出现在 .htaccess 文件中。 



而对于 URL rewrite 来说,至少需要把目录设置为 




代码如下: 
< Directory /myblogroot/> 
AllowOverride FileInfo 
< /Directory>






2.在要支持url rewirte的目录启用 Options FollowSymLinks和AllowOverride All 




代码如下: 
Alias /php "c:/web/php/" 
<Directory "c:/web/php/"> 
Options Indexes FollowSymLinks 
AllowOverride All 
Order allow,deny 
Allow from all 
</Directory>






这样通过http://localhost:8080/php/访问时,/php/和其下面的子目录将支持url rewrite




1 AuthConfig 允许使用所有的权限指令,他们包括AuthDBMGroupFile AuthDBMUserFile AuthGroupFile AuthName AuthTypeAuthUserFile和Require 


2 FileInfo 允许使用文件控制类型的指令。它们包括AddEncoding AddLanguage AddType DEfaultType ErrorDocument LanguagePriority 


3 Indexes 允许使用目录控制类型的指令。它们包括AddDescription AddIcon AddIconByEncoding AddIconByType DefaultIcon DirectoryIndex FancyIndexing HeaderName IndexIgnore IndexOptions ReadmeName 


4 Limit 允许使用权限控制指令。它们包括Allow Deny和Order 


5 Options 允许使用控制目录特征的指令.他们包括Options 和XBitHack 


Options 


1 All 准许以下除MultiViews以外所有功能 


2 MultiViews 允许多重内容被浏览,如果你的目录下有一个叫做foo.txt的文件,那么你可以通过/foo来访问到它,这对于一个多语言内容的站点比较有用 


3 Indexes 若该目录下无index文件,则准许显示该目录下的文件以供选择 


4 IncludesNOEXEC 准许SSI,但不可使用#exec和#include功能 


5 Includes 准许SSI 


6 FollowSymLinks 在该目录中,服务器将跟踪符号链接。注意,即使服务器跟踪符号链接,它也不会改变用来匹配不同区域的路径名,如果在<Local>;标记内设置,该选项会被忽略 


7 SymLinksIfOwnerMatch 在该目录中仅仅跟踪本站点内的链接 


8 ExecCGI 在该目录下准许使用CGI 

原文地址:https://www.cnblogs.com/942267027wzmblog/p/6030649.html