Apache详解

 

Apache 目录结构

       Bin                    apache执行文件所在目录。apachectl控制服务开启或停止;htpasswd 密码保护文件
         cgi-bin               预设给一些cgi网页程序存放的目录
         error                  默认错误应答文件目录
         htdocs              默认web文档根目录
         icons                  提供apache预设的一些小图标
         logs                    apache日志文件放置位置,访问日志access_log,错误日志error.log
         man                   apache服务器配置文件帮助手册所在目录
         modules           apache服务器所支持的动态加载模块所在位置
         /etc/httpd/     源码安装时指定主配置文件http.conf存放目录(默认是conf 目录)
         /etc/httpd/extra/  apache辅助配置文件存放目录
        
 

 

检查配置文件语法错误

/usr/local/apache2/bin/apachectl –t

/usr/local/apache2/bin/apachectl  configtest
 

主配置文件httpd.conf全局参数 

       ServerRoot “/usr/local/apache2”       服务器目录的绝对路径

    license 192.168.0.111:80                  服务器接受改ip地址上的80端口请求

 

         Loadmodule 指令

 
                            语法: LoadModule 模块名称模块文件路径全名
                            LoadModule deflate_module modules/mod_deflate.so    加载此模块后服务器在将输出内容发送到客户端以前进行压缩以节约带宽

                            LoadModule expires_module modules/mod_expires.so 加载此模块后服务器允许通过配置文件控制HTTP”Expires:” “Cache-Control头内容

                            LoadModule rewrite_modulej modules/mod_rewrite.so 加载此模块后服务器要给予一定规则实时重写URL请求

                            LoadModule php5_module modules/libphp5.so 加载此模块后服务器将用户请求的PHP内容是用PHP模块处理

         User daemon           设置apahce进程所属的用户
         Group daemon       用户组
         ServerAdmin  [email protected]         设置管理员邮箱
         DocumentRoot “/usr/local/apache2/htdocs”   设置网站文档根目录

         DirectoryIndex index.php index.html                     直接访问目录时,将返回index.php / index.html页面

 

                            DirectoryIndex /yang/error.php           当访问的页面不存在时,将返回error.php页面       

 
 

附件配置文件httpd-default.conf全局参数 

       /etc/httpd/extra/httpd-default.conf

 

 

 

附件配置文件httpd-mpm.conf全局参数     

 

              详情细说Php.pdf 90

 

所以linux 选择 prefirk MPM

 

 

MPM worker 详细设置请看细说Php.pdf 91

 
 

 

Apache服务器中使用配置段(容器)

 

文件系统容器

 

   Alias/dir/  “/var/www/html/”    #设置别名目录 /dir/ 对应的真实目录

 

   <Directory“/var/www/html/”>

 

Options IndexesFollowSymLinks   #Indexes允许目录被索引

 
#FollowSymLink允许访问Ln链接文件

 

         Order allow,deny         #顺序是先充许后被拒绝

 

         allowfrom all

 

   </Directory>

 

   

 

<Files "hellow.html">

 

        Order deny,allow

 

        Deny from all           拒绝apache中所有hellow.html被访问,嵌套在<Directory “/var/www/html/”>中使用,只拒绝/var/www/html/目录下的hellow.html

 

</Files>

 
正则表达式版本
 
<DirectoryMatch>和<FilesMatch>
 
    <FilesMatch \. (gif|jpe?g|png)$>
 
           Order Deny,Allow

 

Deny from all     拒绝访问以gif,jpg,jpeg,png结尾的文件

 
    </FilesMatch>

 

网络空间容器

 

   <Location /pri>

 

      Deny from all      URL中以/pri开头的地址都会被拒绝            

 

   </location>                         

 

 

分布式配置文件 .htaccess

 

   .htaccess虽然可以针对每个目录改变配置,但是启用.htaccess会导致性能下降或一些不安全因素

 

   针对每个目录改变配置,量比较大,可以再每个目录中创建 .htaccess文件,然后管理此目录的人直接在改文件中写权限(deny,allow ..)即可

 

AccessFileName .htaccess 主配置文件中开启该功能,默认在httpd-default.conf配置文件中已经开启

 
<Directory “/home/aa/”>

 

           AllowOverride ALL/none    all允许该目录使用.htaccess文件

 
    </Directory>

 

设置虚拟主机

 

基于主机名的虚拟主机

 
主配置文件中开启专门设置虚拟主主机的辅助配置文件,这样可以直接在辅助配置文件中设置虚拟主机,当然也可以直接在主配置文件中设置
 

 

1.使用bind 服务创建2个不同的域名,或者更改hosts文件

 

2.创建1个放置网页的目录,并给该目录的o 有rx 权限,或者更改为所属daemon用户(通过ps –aux |grep httpd 可知)

 
3.更改虚拟主机配置文件
 
[root@localhost extra]# vi httpd-vhosts.conf
 
 
 
 
 
         
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章