PHP简介及配置文件解析

PHP是什么


PHP Hypertext Preprocessor 超文本预处理器的缩写,是一种广泛使用的服务器端编程语言,用于开发动态网页,是目前动态网页开发中使用最为广泛的语言之一。


简单的说,PHP是一种Web服务器端开发语言,用于快速进行动态网页开发。

其特点包括:

(1)开源、跨平台、独立于架构;

(2)解释型、面向对象、数据库支持;

(3)快速、简单易学、健壮、安全、性能优越。

 

类似的开发语言有ASPJSP

PHP与ASP、JSP语言以其优异的性能、强大的数据库操作功能迅速成为主流的Web服务器端开发语言。

PHP+Apache+MySQL的组合(三者都是开源的)是一个完全免费、性能优异的Web服务器应用开发组合,已成为绝大多数中小型网站的应用解决方案。

 

早期的Web应用服务器端程序是用PerlC语言直接编写CGI(common Gateway Interface,公共网关接口)程序,或者利用Web服务器自带的API,或者采用第三方解决方案,这些方法均有各自的强项,但在运行速度、数据库操作方面均不能满足Web应用不断增长的需求。

 

PHP主要用于以下3个应用领域:

1)服务器端脚本程序

2)命令行脚本程序

3)桌面应用程序

使用PHP编写服务器端脚本程序是PHP 最常用的应用领域。

PHP程序的工作流程

(下图来自网络                                                          

Web服务器:一般选择开源的Apache或Nginx

数据库:一般选择开源的MySQL

PHP解释器:PHP软件包

常见的是部署在Linux和Windows平台。

有对应的集成安装包,如Windows平台的WAMP,Linux平台的LAMP、LNMP。



PHP配置文件解析

PHP配置文件php.ini在PHP启动时被读取。

对于作为Web服务器模块版本的PHP,仅在Web服务器启动时读取一次。

Windows环境下php.ini的搜索路径如下(按顺序):

(1)Apache配置文件httpd.confPHPIniDir指定的路径

(2)HKEY_LOCAL_MACHINE\SOFTWARE\PHP\IniFilePath  (即Windows注册表位置)

(3)PHPRC环境变量

(4)Web服务器目录或者PHP所在目录(Windows下其它情况)

(5)Windows目录(c:\windowsc:\winnt

可以通过info.php的输出页面中Loaded Configuration File项的值来判断服务器当前读取的PHP配置文件是哪一个。如下图所示:             

 


需要关注的参数:

extension_dir

PHP搜索扩展库的位置。PHP扩展库一般放在PHP目录下面的ext文件夹内,是一组.DLL动态链接库文件。

 

short_open_tag(Boolean)

决定是否允许使用PHP代码中开始标志的缩写形式()。

如果要和XML结合使用,可以禁用此选项以便于嵌入使用

不禁用的话可以通过PHP来输出,例如:<!--?php echo '

如果禁用了,必须使用PHP代码开始标志的完整形式()。

注意:此参数也会影响到缩写形式<!--?=,它和<? echo等价。使用此缩写需要short_open_tag的值为on。

 

memory_limit(integer)

这个参数设定了一个脚本所能够申请到的最大内存字节数。这有助于防止写得不好的脚本消耗光服务器上的可用内存。要使用此参数必须在编译的时候激活(如果是源码编译安装的话,即在configure一行中应该加上参数:--enable-memory-limit)。如果不需要任何内存上的限制,必须设置次参数值为-1

PHP4.3.2版起,当激活了memory_limit,PHP函数memory_get_usage()便可以使用了。当使用integer类型时,其值以字节为度量单位。

 

track_vars(boolean)

如果激活,则环境变量GETPOSTCookieServer都能够分别在全局关联数组中找到:

$_ENV、$_GET、$_POST、$_COOKIE和$_SERVER

注意:自PHP4.0.3版起,track_vars总是打开的。

 

arg_separator.output(string)

表示PHP所产生的URL中用来分隔参数的分隔符。

 

arg_separator.input(string)

表示PHP用来将URL解析为变量的分隔符列表(注意:这里的每个字符都会被当成分隔符!)

 

variables_order(string)

设定EGPCSEnvironmentGETPOSTCookieServer)变量解析的顺序,默认设定为“EGPCS”。

如果设置为“GP”,会导致PHP完全忽略环境变量(ENV)、Cookie和Server变量,并用GET方法的变量覆盖POST方法的同名变量。

 

auto_globals_jit(boolean)

启用后,SERVERENV变量在它们第一次使用后便被创建,而不是等到脚本开始运行时。

如果这些变量没有在脚本中使用,启用这个参数会提高服务器性能。

注意:要使此选项有效,PHP配置选项register_globals、register_long_arrays和register_argc_argv必须禁用。

 

register_long_arrays(boolean)

设定PHP是否注册过时的$HTTP_*_VARS之类的预定义变量。

默认为on(启用),此时类似$HTTP_GET_VARS的PHP变量会被注册。

如果不使用,为性能考虑建议关闭此选项,而使用超全局数组例如$_GET替代。

此参数自PHP5.0.0版本起可用。

 

post_max_size(integer)

设定POST数据所允许的最大大小。字节为单位。

此设定也影响到文件上传。要上传大文件,此参数的值必须大于upload_max_filesize。

如果配置脚本中激活了内存限制memory_limit,也会影响文件上传。

通常memory_limit应该比post_max_size要大。

如果POST数据尺寸大于post_max_size,$_POST和$_FILES superglobals便会为空。

 

gpc_order(string)

设定GET/POST/COOKIE三个变量解析的顺序,默认为“GPC”。

如果设置为“GP”,会导致PHP完全忽略Cookie变量,并用GET方法的变量覆盖POST方法的同名变量。

注意:本选项不能用与PHP4中,可用variables_order替代之。

 

include_path(string)

指定一组目录用于require()include()fopen_with_path()函数来寻找文件。格式和系统的PATH环境变量类似:一族目录的列表。

注意:目录列表在Linux/Unix系统下用冒号:分隔,在Windows系统下用分号;分隔。

 

doc_root(string)

PHP在服务器上的根目录。仅在非空是使用。

如果PHP被配置为安全模式,则此目录之外的文件一概不解析。

如果PHP编译时没有指定FORCE_REDIRECT,并且在任何Web服务器(除了IIS)中以CGI方式运行PHP,则应该设定doc_root。另一种替代方案是使用cgi.force_redirect配置选项。

 

user_dir(string)

在用户目录之下使用PHP文件的基本目录名,例如public_html

 

extension_dir(string)

PHP用来寻找动态链接扩展库的目录。

 

enable_dl(boolean)

此选项只有在PHP作为Apache模块方式运行的时候才是有用的。

设置为on时,可以在PHP脚本运行的过程中通过PHP內建函数dl()来动态加载PHP扩展库。

这个配置选项对安全性有一定的影响,所以在安全模式下,是不能使用dl()函数的。

 

extension(string)

PHP启动时所加载的动态链接扩展库。

 

file_uploads(boolean)

是否允许HTTP文件上传。

 

upload_tmp_dir(string)

文件上传时存放文件的临时目录。必须是PHP进程所有者用户可写的目录。如果未指定则使用系统默认值。

 

upload_max_filesize(integer)

所上传文件的最大大小。字节为单位。


参考:
1、 《PHP5与MySQL5从入门到精通》一书
2、 PHP程序的工作流程图来自网络                              


来自 “ ITPUB博客 ” ,链接:http://blog.itpub.net/29734436/viewspace-2144363/,如需转载,请注明出处,否则将追究法律责任。

转载于:http://blog.itpub.net/29734436/viewspace-2144363/

  • 1
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值