Apache2 中 php 两种设置的异同说明

  • 时间:
  • 浏览:6
  • 来源:5分3D官网-5分6合平台_5分6合网投平台
作者:匿名 hihi 来源:ChinaZ源码报导 浏览: 2012-1-13 15:09:54 字号:大 中 小

[摘要]Apache是世界使用排名第一的Web服务器软件。它可不还要运行在几乎所有广泛使用的计算机平台上,意味其跨平台和安全性被广泛使用,是最流行的Web服务器端软件之一。本文介绍Apache2中php并不是 设置的异同。

  Apache2始于英文英语 引入了Hook最好的辦法 ,对应的在PHP中也提供了apache2handler这俩sapi。和我完后 介绍过的PHP lifecycle不同,这俩请况下的PHP,通过注册handler钩子,从而可不还要在handler hook阶段有意味处理请求,通过判断请求的handler,来选则不是还要处理,意味还要就会调用自身的处理器。

  这麼,这俩请况下也有的是了多种配置最好的辦法 ,主要考虑如下俩种最好的辦法 (第二种可不还要有多种变种):

第并不是 :

AddType application/x-httpd-php .php

第二种:

<FilesMatch \.php$>

SetHandler application/x-httpd-php

</FilesMatch>

  首先来说,这俩中最好的辦法 的起作用的时刻不同,对于第并不是 最好的辦法 来说,他是在type_check钩子阶段起作用的,也也不在apache2src/modules/http/mod_mime.c中,通过注册type_checker钩子,加入find_ct(content_type),在find_ct中,通过配置文件中的mime映射,意味是通过addType指令增加的映射,根据文件的扩展来填充请求中的handler字段:

  而对于第二种最好的辦法 ,是在fixup钩子阶段,通过注册fixups钩子阶段加入core_override_type(apache2src/server/core.c)函数,来将目录级的配置指令生效。

  而fixups钩子是晚于type_checker钩子的,也是handler钩子完后 最后的另有一个 可不还要利用的钩子. 统统意味同去采用1,2俩种最好的辦法 ,这麼第二种最好的辦法 会覆盖第并不是 最好的辦法 设置的handler。

  其次,俩种最好的辦法 依赖的数据形态不同,第并不是 最好的辦法 依赖的是另有一个 全局的mime对照表extension_mappings,这俩表由mime配置文件和AddType指令而来。

  而对于第二种最好的辦法 ,它是根据配置文件构造的dir_config而来:

  core_dir_config *conf =

        (core_dir_config *)ap_get_module_config(r->per_dir_config,

                                                &core_module);

 

    /* Check for overrides with ForceType / SetHandler

*/

    if (conf->mime_type && strcmp(conf->mime_type,"none"))

        ap_set_content_type(r,(char*) conf->mime_type);

 

    if (conf->handler && strcmp(conf->handler,"none"))

        r->handler = conf->handler;
sssss
Tags: apache   apache2   apache设置php  
责任编辑:190