Apache2–httpd.conf

  • Post author:
  • Post category:其他


第一部分:容器

1.<IfModule>容器
<IfModule>容器作用于模块;他首先会判断模块是否载入,只有判断结果为真才会执行容器内的指令,结果为假,则会忽略;例如:
<IfModule mpm_netware_module>    #<IfModule>判断,如果载入mpm_netware_module模块则执行容器内的指令
<IfModule !mpm_winnt_module>        #<IfModule>判断,如果载入mpm_winnt_module模块则不执行容器内的指令
2.<Directory >容器和<DirectoryMatch>容器
<Directory>容器的作用是让封装的指令在指定的目录及对应的子目录中其作用。但是这个目录必须是一个完整的路径,当然也可以使用通配符“*”,“·”,“?”匹配目录,也可以使用“[]”来确定字符范围,不过无论是“*”,“?”,还是“[]”都不能匹配“/”。
3.


<Files> 与 <FilesMatch> 容器



与<Directory>容器作用于目录相对应,<Files>容器只作用于文件,和<Directory>容器一样,也可以使用通配符和”[]” 以及在正则表达式的前面加上”~” 来使用正则表达式进行文件匹配。


4.




<Location>与<LocationMatch>容器


<Location>与<LocationMatch>容器的作用是对URL进行访问控制。



5.


除此之外,还可以通过<Location>容器将URL请求映射到Apache模块处理器上,例如,使用Apache自带的 mod_status     模块:


<Location /server-status>

SetHandler server





status

</Location>

第二部分:httpd.conf参数


1.基本配置

ServerRoot “/usr/local/apache2”  #Apache的安装位置

Listen 80    #服务器监听端口

ServerAdmin


you@example.com


#管理员的邮箱地址

ServerName


www.example.com:80


#主站点名称(网站的主机名)

DocumentRoot “/usr/local/apache2/htdocs”    #主站点的网页存储位置

以下是对主站点的目录进行访问控制

<Directory “/usr/local/nagios/share”>

Options FollowSymLinks

AllowOverride None

Order deny,allow

Deny from all

</Directory>

Options : 配置在特定目录使用那些特性,常用的值和基本含义:

ExecCGI:在该目录下允许执行CGI脚本

FollolSymLinks:在该目录下允许文件系统使用符号连接。



Indexes: 当用户访问该目录时,如果用户找不到DirectoryIndex指定的主页文件(例如index.html),则返回该目录下的文件列表给用户。


SymLinksIfOwnerMatch: 当使用符号连接时,只有当符号连接的文件拥有者与实际文件的拥有者相同时才可以访问。


AllowOverride:允许存在于

.htaccess文件中的指令类型(.htaccess文件名是可以改变的,其文件名由AccessFileName指令决定):
None: 当AllowOverride被设置为None时。不搜索该目录下的.htaccess文件(可以减小服务器开销)。

All: 在.htaccess文件中可以使用所有的指令。

Order:控制Allow和Deny两个访问的前后

Deny:拒绝访问的主机列表。


allowoverride authconfig


allowoverride authconfig一行表示允许对”/usr/local/nagios/share”目录下的文件进行用户认证。


在限制访问的目录”/usr/local/nagios/share”下建立一个文件.htaccess (其实是一个隐藏文件),其内容如下:

AuthName “这里的文字会显示在浏览器弹出的提示登录窗口中”

AuthType basic

AuthUserFile /usr/local/nagios/share/valid.txt #这里放用户名和密码文件,不能放在可以下载的地方

require valid-user

说明:文件.htaccess中常用的配置命令有以下几个:

1) AuthName命令:指定认证区域名称。区域名称是在提示要求认证的对话框中显示给用户的。

2) AuthType命令:指定认证类型。在HTTP1.0中,只有一种认证类型:basic。在HTTP1.1中有几种认证类型,如:MD5。

3) AuthUserFile命令:指定一个包含用户名和密码的文本文件,每行一对。

4) AuthGroupFile命令:指定包含用户组清单和这些组的成员清单的文本文件。组的成员之间用空格分开,如:

managers:user1 user2

5) require命令:指定哪些用户或组才能被授权访问。如:

require user user1 user2(只有用户user1和user2可以访问)

requires groups managers (只有组managers中成员可以访问)

require valid-user (在AuthUserFile指定的文件中任何用户都可以访问)

ScriptAlias:

ScriptAlias指令使Apache允许执行一个特定目录中的CGI程序。当客户端请求此特定目录中的资源时,Apache假定其中文件都是CGI程序并试图运行。
ScriptAlias /cgi-bin/ /usr/local/apache/cgi-bin/

ScriptAlias指令定义了映射到一个特定目录的URL前缀,与Alias指令非常相似,两者一般都用于指定位于DocumentRoot目录以外的目录,其区别是ScriptAlias又多了一层含义,即其URL前缀中任何文件都被视为CGI程序。所以,上述例子会指示Apache,/cgi-bin/应该指向/usr/local/apache/cgi-bin/目录,且视之为CGI程序。


2.安装PHP,在http.conf配置配合配合

LoadModule php5_module        modules/libphp5.so    #在编译PHP时,编译参数 –with-apxs2=/usr/local/apache2/bin/apxs生成



版权声明:本文为an1415原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。