热门标签 | HotTags
当前位置:  开发笔记 > 编程语言 > 正文

Apache配置文件管理

1.Apache配置系统从整体来看apache的配置系统包括三个部分:(1)配置文件:比如httpd.conf.htaccess(2)配置指令:在配置文件httpd.conf.ht

1. Apache配置系统

从整体来看apache的配置系统包括三个部分:

(1) 配置文件:比如 httpd.conf   .htaccess

(2) 配置指令:在配置文件 httpd.conf  .htaccess 里面的任意一行都是一个配置指令

(3) 配置信息的保存和读取:配置信息配置完成后会在Apache里面按照一定的数据结构进行保存,在Apache的运行过程中,任何需要配置信息的时候就去读取并执行。

2. Apache的配置文件

(1) httpd.conf:是Apache的主配置文件,通常位于$ServerRoot 目录下的conf目录中;httpd.conf文件修改后只有在httpd重启后才重新读取,所以修改httpd.conf必须要重启Apache才有效。

(2) .htaccess:http.conf 文件通常用于Apache 控制全局的配置信息,httpd.conf 提供了对某一个或多个目录控制,但是当目录增加到很多时,httpd.conf会急剧膨胀,也会吃不消的;所以,可用用.htaccess 文件对指定的目录进行命令控制。.htaccess 文件位于想要控制的目录中,可以对此目录以及所有子目录设置授权、目录索引(?)、过滤器及其他的控制命令。  注:可以用 AccessFileName 对 .htaccess 进行重新命名, AccessFileName .direaccess   ,但一般情况下不要修改。

(3) access.conf  srm.conf :在apache1.3 以前的版本存在这两个文件,在apache2.0以后就删了。

注:httpd.conf  access.conf srm.conf 是在Apache启动或重启时候就读取并执行里面的配置命令,但.htaccess 在apache运行过程中需要的时候才读取里面的配置命令。

3. Apache配置指令相关概念

(1) 指令概述

Apache的配置指令可以分为两类:简单指令和配置段指令

简单指令就是单行是一个指令:ServerLimit  200  表示Apache最大启动进程数量是 200

配置段指令:<...>  ......

[html] view plaincopy
 
  1. <Directory "/usr/local/test">  
  2.   Options  Indexs  
  3.   ......  
  4.   ......  
  5. Directory>  

这就是一个配置段命令,这里面的配置命令只对 /usr/local/test  有效。

(2) 指令参数

  • URL:http://www.example.com/path/to/file.html    http-->协议  www.example.com  是 hostname, path/to/file.html 请求文件网络路径
  • URL-path:URL中主机名之后的部分  /path/to/file.html 注:这个是表示请求资源在网络空间中的路径,映射到web服务器对应资源的物理路径
  • file-path:指文件在web服务器文件系统中的决定路径    /usr/local/apach/htdocs/path/to/file.html  ,如果不是以 / 开始,则ServerRoot为根目录
  • directory-path:木在文件系统中的决定路径
  • filename:文件名   file.html
  • extension:指 filename中最后一个 . 后面的部分  比如: file.html.en   则,html  en 都是 extension(后缀)
  • MIME-type:描述文件的类型    比如:text/html    img/jpeg 等

(3) 指令上下文:

配置文件中的各个配置指令具有不同的作用范围,根据作用范围不同可以分为 主配置、虚拟主机配置、局部配置和条件配置。

  • 主配置:httpd.conf (access.conf  srm.conf )中的非配置段指令
  • 虚拟主机指令:   ......  里面的配置指令集就是虚拟主机指令
  • 局部指令:局部指令可以分为两类,一种是配置段指令,一种是通过 .htaccess 配置的指令,指对某一个目录有效
  • 条件指令:在特定的条件下才会生效,比如: ....  等

注:常见的配置段指令是针对指定的文件系统和网络空间来设置指令的;文件系统:就是web服务器本机实实在在存在的物理路径 /usr/local/test ;而 网络空间是 client请求网页的  最后一部分内容    http://www.taobao.com/huodong/youhuai/test.html      中 /huodong/youhuai/test.html  只是一个路径,可能在 HTTP请求处理中对次路径进行 转换 或这 rewrite 操作转到别的url,所以并不一定映射到 文件系统对应的文档。

 (4)文件系统容器

    是对web服务器上特定的文件目录进行对应的设置

[html] view plaincopy
 
  1. <Directory /var/web/dir>  
  2.    Options +Indexes  
  3. Directory>  


目录 /var/web/dir 及其子目录允许进行目录索引。

[html] view plaincopy
 
  1. <Directory /var/web/dir>  
  2.    <Files private.html>  
  3.           order allow,deny  
  4.           Allow from IP1~IP2  
  5.           Deny from all  
  6.     Files>  
  7. Directory>  

设置目录 /var/web/dir  以及子目录中的 private.html 文件的访问权限。

(5) 网络空间荣器

  设置特定的网络空间

[html] view plaincopy
 
  1. <Location /private>  
  2.    Order allow,deny  
  3. Location>  

对 网络空间中以 private 开头的URL进行设置访问权限

比如: http://www.example.com/private  http://www.example.com/private1123 http://www.example.com/private/test/file.html  这些网络空间设置访问权限

注:在设置存在的文件系统时候就用文件系统容器,如果设置不存在的文件目录就用网络空间容器(须有数据库生成的动态网页)

上面这些指令都有对应的适用范围(特定的目录),把这些设置指令使用范围的语句(指令)叫上下文  (配置段就是上下文的一种)

上下文,我们说了有5种: Directory   Files  Limit(allow、deny) Location   VirtualHost  .htaccess ,他们之间可以进行嵌套:

VirtualHost里面可以放 Driectory  Files Location  Limit   ;Directory  里面可以有 Files  Limit    Files 可以放Limit   .htaccess 可以放 Files  Limit  Locaton  里面什么也不能放

(5) 指令位置:一些指令只能出现在对应的上下文环境中,我们把控制指令能出现的位置叫指令位置控制,如果发现指令出现在不应该出现的位置,apache会报错。

普通文件的配置选项:

  • ACCESS_CONF:允许指令出现这Directiory Location 区间以内的顶级命令区,一般是用来设置特定文的指令控制
  • RSRC_CONF: 允许指令出现在 Directiory Location 区间以外的顶级命令区

Apache执行指令的过程:Apache会先读取对应的配置文件,把所有的配置指令读取到一个配置树,Apache才会遍历并处理所有的指令,然后一步一步的执行指令。

4. 目录级别位置选项

(1) .htaccess 文件指令的控制:对于任何一个文件系统 /var/web/dir   都可以用一个 .htaccess 文件来完成对这个文件目录及其子目录的设置,而且这个设置可以热启动,即:用修改后不用重新启动httpd 服务就能起作用,httpd服务会实时更新.htaccess 文件并执行新的指令;但是.htaccess 指令相当于 变相的修改 httpd.conf 主配置文件中的 文件的设置,所以必须设置在 .htaccess文件可以修改的指令,控制其权限;这样就必须在httpd.conf 文件中对 特定的目录 (比如:/var/web/dir) 的.htaccess 进行指令权限设置,具体设置在 httpd.conf 中设置:

[html] view plaincopy
 
  1. <Directory  /var/web/dir>  
  2.     AllowOverride  None/ALL/ Indexs   AuthConfig  
  3.     Options ALL/Indexes  FollowSymLinks  
  4. Directory>  

上面的  AllowOverride (允许修复改写权限设置),就是对 /var/web/dir 里面的.htaccess 文件能用的指令进行设置,AllowOverride 选项(参数)如下:

  • None:在.htaccess 文件中不能使用任何指令来修复 httpd.conf 中的配置文件,就是通过.htaccess 文件不能实现当前目录的设置修改(.htaccess 完全失效)
  • ALL:.htaccess 文件中所有的指令都可以修复 httpd.conf 文件,实现对当前目录的设置
  • AuthConfig:允许在 .htaccess 文件中使用与认证授权相关的指令,可以实现对特定网页用户和密码的复写
  • Indexes:允许在 .htaccess 文件中使用控制目录索引的指令
  • Limit:允许在 .htaccess 文件中使用控制主机访问的指令(allow  deny order等)

(2) Options 是指定在特定的目录 /var/web/dir 将使用服务器的相关特性,就是这个目录/var/web/dir内能进行的操作,就是对此目录进行权限设置

     Options选项如下:

  •    ALL:出 多重视图(MultiViews之外的所有特性)
  • ExecCGI:允许使用 mod_cgi 执行CGI脚本
  • FollowSymLinks:允许使用符号链接
  • Includes:允许使用 mod_include 提供的 SSI (Server-Side Include) 功能,发送给服务器的一些指示
  • IncludesNOEXEC  (???)
  • Indexes:如果clietn请求一个首页,但是在指定的目录 /var/web/dir 中没有这个首页,就会在client线上一个文件列表,类似:ftp站点的文件列表

注:Options 还有 + — ,具体的含义就是要对当前目录的特性进行新增和删除

[html] view plaincopy
 
  1. <Directory /var/web/dir>  
  2.    Options +Indexes -FollowSymLinks  
  3. Directory>  

这样就是对 /var/web/dir 新增 Indexes特性,删除 FollowSymLinks 特性。


 

  For example:借助.htaccess 实现对指定网页进行密码访问

  a) 在httpd.conf 中设置网页所在目录可以使用 .htaccess 设置权限  AuthConfig

[html] view plaincopy
 
  1. <Directory /var/www/html/protect>  
  2.       AllowOverride  AuthConfig  
  3.       Options  Indexes  
  4. Directory>  


b) 在 /var/www/html/protect 目录中新建 .htaccess 文件并进行网页访问权限设置

 cd  /var/www/html/protect

 vi .htaccess

[html] view plaincopy
 
  1. <Directory>  
[html] view plaincopy
 
  1. AuthName "Protect webpage by .htaccess  
  2. Authtype  Basic  
  3. AuthUserFile  /var/www/apache.passwd  
  4. require  user shuming   
  5. Directory>  

AuthName:在出现输入帐号与密码的对话框中,线上此提示字符: Protect  webpage by .htaccess

Authtype:认证的类型,basic是指 Apache默认的类型

AuthUserFile:保护目录所使用的帐号密码的设置文件,就是当我们输入帐号和密码时通过此文件里面的帐号和密码进行验证

require :指定可以访问网页的帐号  shuming   test  test1 .....

c) 建立 .htaccess 里面需要的密码文件并设置能访问此网页的 帐号和密码:

  直接用指令来完成:

  htpasswd -c  /var/www/html/apache.passwd  shuming

  New password: 111111

  Re-type new password:111111

然后查看文件:

cat  /var/www/html/apache.passwd    ------>  shuming:Fiquw/....is4 ;在 设置密码时候会自动对密码进行加密

技术分享

借助这个例子可以重复理解,httpd.conf   .htaccess  直接的关系,以及对二者的应用。


 

Apache 配置文件管理


推荐阅读
  • 本文介绍了OC学习笔记中的@property和@synthesize,包括属性的定义和合成的使用方法。通过示例代码详细讲解了@property和@synthesize的作用和用法。 ... [详细]
  • HDU 2372 El Dorado(DP)的最长上升子序列长度求解方法
    本文介绍了解决HDU 2372 El Dorado问题的一种动态规划方法,通过循环k的方式求解最长上升子序列的长度。具体实现过程包括初始化dp数组、读取数列、计算最长上升子序列长度等步骤。 ... [详细]
  • 知识图谱——机器大脑中的知识库
    本文介绍了知识图谱在机器大脑中的应用,以及搜索引擎在知识图谱方面的发展。以谷歌知识图谱为例,说明了知识图谱的智能化特点。通过搜索引擎用户可以获取更加智能化的答案,如搜索关键词"Marie Curie",会得到居里夫人的详细信息以及与之相关的历史人物。知识图谱的出现引起了搜索引擎行业的变革,不仅美国的微软必应,中国的百度、搜狗等搜索引擎公司也纷纷推出了自己的知识图谱。 ... [详细]
  • 后台获取视图对应的字符串
    1.帮助类后台获取视图对应的字符串publicclassViewHelper{将View输出为字符串(注:不会执行对应的ac ... [详细]
  • 本文介绍了lua语言中闭包的特性及其在模式匹配、日期处理、编译和模块化等方面的应用。lua中的闭包是严格遵循词法定界的第一类值,函数可以作为变量自由传递,也可以作为参数传递给其他函数。这些特性使得lua语言具有极大的灵活性,为程序开发带来了便利。 ... [详细]
  • 基于layUI的图片上传前预览功能的2种实现方式
    本文介绍了基于layUI的图片上传前预览功能的两种实现方式:一种是使用blob+FileReader,另一种是使用layUI自带的参数。通过选择文件后点击文件名,在页面中间弹窗内预览图片。其中,layUI自带的参数实现了图片预览功能。该功能依赖于layUI的上传模块,并使用了blob和FileReader来读取本地文件并获取图像的base64编码。点击文件名时会执行See()函数。摘要长度为169字。 ... [详细]
  • 搭建Windows Server 2012 R2 IIS8.5+PHP(FastCGI)+MySQL环境的详细步骤
    本文详细介绍了搭建Windows Server 2012 R2 IIS8.5+PHP(FastCGI)+MySQL环境的步骤,包括环境说明、相关软件下载的地址以及所需的插件下载地址。 ... [详细]
  • Webpack5内置处理图片资源的配置方法
    本文介绍了在Webpack5中处理图片资源的配置方法。在Webpack4中,我们需要使用file-loader和url-loader来处理图片资源,但是在Webpack5中,这两个Loader的功能已经被内置到Webpack中,我们只需要简单配置即可实现图片资源的处理。本文还介绍了一些常用的配置方法,如匹配不同类型的图片文件、设置输出路径等。通过本文的学习,读者可以快速掌握Webpack5处理图片资源的方法。 ... [详细]
  • 本文介绍了C#中数据集DataSet对象的使用及相关方法详解,包括DataSet对象的概述、与数据关系对象的互联、Rows集合和Columns集合的组成,以及DataSet对象常用的方法之一——Merge方法的使用。通过本文的阅读,读者可以了解到DataSet对象在C#中的重要性和使用方法。 ... [详细]
  • 本文介绍了在SpringBoot中集成thymeleaf前端模版的配置步骤,包括在application.properties配置文件中添加thymeleaf的配置信息,引入thymeleaf的jar包,以及创建PageController并添加index方法。 ... [详细]
  • 本文详细介绍了Linux中进程控制块PCBtask_struct结构体的结构和作用,包括进程状态、进程号、待处理信号、进程地址空间、调度标志、锁深度、基本时间片、调度策略以及内存管理信息等方面的内容。阅读本文可以更加深入地了解Linux进程管理的原理和机制。 ... [详细]
  • 《数据结构》学习笔记3——串匹配算法性能评估
    本文主要讨论串匹配算法的性能评估,包括模式匹配、字符种类数量、算法复杂度等内容。通过借助C++中的头文件和库,可以实现对串的匹配操作。其中蛮力算法的复杂度为O(m*n),通过随机取出长度为m的子串作为模式P,在文本T中进行匹配,统计平均复杂度。对于成功和失败的匹配分别进行测试,分析其平均复杂度。详情请参考相关学习资源。 ... [详细]
  • Webmin远程命令执行漏洞复现及防护方法
    本文介绍了Webmin远程命令执行漏洞CVE-2019-15107的漏洞详情和复现方法,同时提供了防护方法。漏洞存在于Webmin的找回密码页面中,攻击者无需权限即可注入命令并执行任意系统命令。文章还提供了相关参考链接和搭建靶场的步骤。此外,还指出了参考链接中的数据包不准确的问题,并解释了漏洞触发的条件。最后,给出了防护方法以避免受到该漏洞的攻击。 ... [详细]
  • Java验证码——kaptcha的使用配置及样式
    本文介绍了如何使用kaptcha库来实现Java验证码的配置和样式设置,包括pom.xml的依赖配置和web.xml中servlet的配置。 ... [详细]
  • 本文介绍了通过ABAP开发往外网发邮件的需求,并提供了配置和代码整理的资料。其中包括了配置SAP邮件服务器的步骤和ABAP写发送邮件代码的过程。通过RZ10配置参数和icm/server_port_1的设定,可以实现向Sap User和外部邮件发送邮件的功能。希望对需要的开发人员有帮助。摘要长度:184字。 ... [详细]
author-avatar
卡布基诺2502934121
这个家伙很懒,什么也没留下!
PHP1.CN | 中国最专业的PHP中文社区 | DevBox开发工具箱 | json解析格式化 |PHP资讯 | PHP教程 | 数据库技术 | 服务器技术 | 前端开发技术 | PHP框架 | 开发工具 | 在线工具
Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved | 京公网安备 11010802041100号 | 京ICP备19059560号-4 | PHP1.CN 第一PHP社区 版权所有