apache 的配置段说明及PHP配置

来源:互联网 发布:js禁止页面后退 编辑:程序博客网 时间:2024/06/06 02:38

apache配置段

1、<IfDefine> 只有在用httpd命令行启动服务器时(最好不要直接使用httpd,用apachectl代替),使用了-D参数定义了相应参数时才生效。如服务器用apachectl –D test启动时,<IfDefine test>配置段生效。

2、<IfVersion> 例如:<IfVersion >= 2.0.55> 当Apache版本不低于2.0.55时生效。

3、<IfModule> 服务器启用了指定的模块后才生效。这是最常用的。例如<IfModule mod_mine_magic.c>

4、<Directory> 用于封装一组指令,使之对某个目录和下属的子目录有效。

[plain] view plaincopy
  1. <Directory />  
  2.     Options FollowSymLinks Indexes  
  3.     AllowOverride None  
  4.     Order Deny,Allow  
  5.     Deny from All  
  6.     Allow from example.com  
  7. </Directory>  
该配置段对整个根目录树有效。

一、Options 常用选项:FollowSymlinks允许在此目录中使用符号链接;Indexes允许目录列表,即在该目录没有默认页时服务器返回该目录的列表给客户机;SymLinksIfOwnerMatch只有符号链接与其目的目录或文件属于同一用户时才有效。
注意:对同一目录,只有一行Options有效,如果定义某个目录的Options同时要继承上级目录的定义,可以这样:Options +Indexes。如果这样:Options +Indexes –FollowSymLinks,这将为本级目录增加Indexes,取消FollowSymLinks。
二、AllowOverride 常用选项:None 不允许使用.htaccess;All允许在.htaccess中使用所有的指令。一般不必使用.htaccess,而且为了安全和效率起见,设置为None比较好。
三、Order 访问控制,控制条件由Deny行和Allow行定义。Order指令常用选项:Deny,Allow 除了符合条件的外,其它的也允许访问;Allow,Deny 除了符合条件的外,其它的不允许访问。
Deny from All是拒绝所有的访问,Allow from example.com是允许example.com域访问该目录(意思是如果该服务器上有多个虚拟主机的话,只有example.com可以访问该目录)。三行合起来的意思就是只允许example.com域访问根目录。当然这只是个例子,应该禁止所有域对根目录的访问。注意:Deny,Allow指令生效的顺序取决于Order中Deny和Allow的顺序。

注意<Directory>不能嵌套。

这样为了安全起见常常需要设置:

#拒绝对所有目录的访问,注意这里的/是指操作系统的根目录,而非DocumentRoot目录。

[plain] view plaincopy
  1. <Directory />  
  2.     Options –Indexes -FollowSymLinks  
  3.     AllowOverride None  
  4.     Order Allow,Deny  
  5. </Directory>  
#允许所有对/var/htdocs的访问,允许对/var/htdocs的文件列表。

[plain] view plaincopy
  1. <Directory /var/htdocs>  
  2.     Options +Indexes  
  3.     Order Deny,Allow  
  4. </Directory>  
5、<Files>和<Directory>类似,不过它定义的是对文件的访问控制。它们都可以接受正则表达式为参数,格式如<Files ~ "\.(gif|jpe?g|png)$">或者<FilesMatch "\.(gif|jpe?g|png)$">。

6、<Location>与<Files>和<Directory>同,不过它定义的是对URL的访问控制。

PHP配置

1、加载php模块:LoadModule php5_module modules/libphp5.so

2、AddModule mod_php5.c (不是必须的)

3、哪种后缀的文件作为php脚本来解析:AddType application/x-httpd-php .php (这是必须的,但是可以用下面的配置代替):
<Files *.php>
SetOutputFilter PHP
SetInputFilter PHP
</Files>
这种方法还可以为.php文件专门设置更多的配置。

4、哪种后缀的文件是php源文件:Addtype application/x-httpd-php-source .phps (不是必须的)

5、添加index.php为目录首页:DirectoryIndex index.php(视情况而定)

6、ScriptAlias /php/ /usr/local/php/ 对类似http://example/php/abc.php的请求将引导执行/usr/local/php/abc.php脚本。 (一些所谓配置指南里有,事实上完全没有这个必要。并且ScriptAlias这个指令是针对CGI脚本的。他会把php脚本也当作已定义的cgi脚本处理)。

7、Action application/x-httpd-php "C:/PHP/php.exe" 所有application/x-httpd-php类型的文件都由C:/PHP/php.exe来处理,注意application/x-httpd-php必须是已经定义的文件类型。 (只有在windows中以CGI模式安装PHP时才有用)。

8、事实上,必要的配置只有这么两条:

[plain] view plaincopy
  1. LoadModule php5_module modules/libphp5.so  
  2. AddType application/x-httpd-php .php  
0 0