zoukankan      html  css  js  c++  java
  • Apache2.4常用编译参数

    转载文章,亲试

    Apache2.4以后的版本编译依赖apr,所以,编译之前需要先安装apr及apr-util。

         编译参数只是一个参考作用,这个参数是我平常使用的,具体工作中的需求还是要区别对待的

    一些注解:
            --enable-so  启动模块动态装卸载
            --enable-ssl 编译ssl模块
            --enable-cgi 支持cgi机制(能够让静态web服务器能够解析动态请求的一个协议)
            --enable-rewrite  支持url重写     
            --with-zlib  支持zlib压缩     
            --with-pcre  支持正则表达式
            --with-apr=/usr/local/apr  指明依赖的apr所在目录
            --with-apr-util=/usr/local/apr-util/  指明依赖的apr-util所在的目录
            --enable-mpms-shared=all   以共享方式编译的模块
            --with-mpm=prefork         指明httpd的工作方式为prefork

    --with-mpm=<MPM> 先择Apache多路处理模块,<MPM>={beos|event|worker|prefork|mpmt_os2},prefork为 Unix系统下默认处理模块,它将运行一个非线程型的、预派生的Web服务器,适合于没有线程安全库,需要避免线程兼容性问题的系统,它是要求将每个请求相互独立的情况下最好的MPM,这样若一个请求出现问题就不会影响到其他请求。worker为支持混合的多线程多进程的多路处理模块,由于使用线程来处理请求,所以可以处理海量请求,而系统资源的开销小于基于进程的MPM,同时,它也使用了多进程,每个进程又有多个线程,以获得基于进程的MPM的稳定性。如果你的系统是基于线程安全的,那么笔者建议使用worker替代prefork,它将使得你的系统得到实际的性能改善。

    --enable-so 指明编译动态加载模块(DSO)支持到httpd二进制文件,此模块使得Apache的各功能模块可以与核心分开编译、运行时动态加载。有了DSO支持,升级和增加模块时只需编译相关的模块即可,不必重新编译整个系统。最新版本的Apache缺省编译此模块到httpd二进制文件,如果你在使用早期版本的 apache并且需要DSO支持,可能要明确指出此选项。

    ---------------------

    httpd.conf配置文件详解

    如果该虚拟目录下没有 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 将目录结构列表出来。

    要想列出上述虚拟目录的目录结构,前提是需要开启下面的模块功能,否则重启httpd服务报错,

    而且如果在ifModule模块中的内容前面加#号不表示注释,需要放到要执行参数之后,否则也无

    法列出虚拟目录的目录结构。

    <IfModule dir_module>
      DirectoryIndex index.html
      #DirectoryIndex index.html index.php
    </IfModule>

  • 相关阅读:
    数据库——Oracle(7)
    数据库——Oracle(6)
    数据库——Oracle(5)
    数据库——Oracle(4)
    数据库——Oracle(3)
    数据库——Oracle(2)
    Java 学习笔记之 Synchronized锁对象
    Java 学习笔记之 线程安全
    Java 学习笔记之 实例变量非线程安全
    Java 学习笔记之 方法内的临时变量是线程安全
  • 原文地址:https://www.cnblogs.com/xiaofeng666/p/10940842.html
Copyright © 2011-2022 走看看