配置文件
php.ini : 对于服务器模块版本的PHP,仅在web服务器启动时读取一次,对于CGI和CLI版本,每次调用都会读取。
CGI :“公共网关接口”(Common Gateway Interface),HTTP服务器与你的或其它机器上的程序进行“交谈”的一种工具,
其程序须运行在网络服务器上。以CGI方式运行时,webserver将用户请求 以消息的方式转交给PHP独立进程,
PHP与web服务之间无从属关系。纯粹调用--返回结果的形式通讯。而模块方式,则是将PHP做为web-server的子进程控制,两者有从属关系
最明显的例子就是在CGI模式下,如果修改了PHP.INI的配置文件,不用重启web服务便可生效,而模块模式下则需要重启web服务。
CLI :“ 命令行界面”(Command Line Interface),可在用户提示符下键入可执行指令的界面。CLI则是命令行接口,用于在操作系统
命令行模式下执行PHP,比如可以直接在win的cmd或Linux的shell模式下直接输入 php a.php 来得到结果。它与CGI模式最大的不同的
地方在于既不会输出HTTP头信息(CGI模式除了输出用户能看到的结果外,还会输出用户不能直接看到的HTTP 头信息),抛出的信息也直接以
文本方式而不以 HTML方式给出,比如新建一个 test.php,写入内容 <?php phpinfo();?>在浏览器中可以看到以HTML表格描述的信息,
而在命令行输入 phptest.php则会直接看到纯文本的输出。
.user.ini:自PHP5.3开始。PHP支持基于每个目录的.htaccess风格的INI文件,此类文件仅被CGI/FastCGI SAPI处理。此功能是PECL的htaccess扩展作废。如果使用Apache,则用.htaccess文件有同样效果。可以再httpd.conf中覆盖php.ini的值。
复制代码
配置命令
directive = value
启用全局变量: register_globals=off
启动为ON,php会讲$_POST,$_GET,$_COOKLE,$_ENV,$SESSION数组中的$key=>$value直接注册为变量,比如$_POST['USEname'] 则会注册为$USEname。
新版本废弃,安全问题:变量之间互相覆盖,引起不必要的麻烦。
短标签:short_open_tag=on
允许用缩写的方式写php ,这个设置主要是决定是否允许使用PHP代码开始标志的缩写形式(<??>)。如果禁用了,必须使用PHP代码开始的标志的完整形式(<?php ?>)
也影响到缩写形式<?= 这个和<?echo 等价 因此避免文件上传分析特征<?php ?>被绕过关闭此函数
安全模式:safe_mode=off
被移除。5.4.0,之前版本可以使用
禁用类/函数
disable_classes=,disable_functions=,disable_functions=opendir,readdir,scandir,fopen,unlink
禁用某些类,进制某些函数,接受逗号分隔函数名列表作为参数。只能再php.ini配置
上传文件 :file_uploads=on
上传文件大小:upload_max_filesize=8m
文件上传临时目录:upload_tmp_dir=
用户访问目录限制:open_basedir=.:/tmp/
设置此选项可以控制php脚本只能访问只能目录,这样避免访问不应被访问的目录,一定程度限制了phps
hell危害。我们一般可以设置只能访问网站目录(php脚本文件所在目录和/tmp/目录),表示允许访问 目录。
防止php木马跨站运行。
错误信息控制:display_error=on
是否将错误信息作为输出的一部分,站点发布后应该关闭这项功能,以免暴露信息。调试的时候打开
设置错误报告级别:error_reporting=E_ALL
这个设置将错误级别设置为最高,可以显示所有问题。方便查错。
错误日志:error_log=
错误日志的位置。不定义写到web服务器的错误日志中去
log_errors=on
将错误日志输出到文件而不是前端。
log_errors_max_length=1024
错误日志关联信息的最大长度。设为0表示无限长度
魔术引号:magic_quotes_gpc=on
magic_quotes_runtime=off
为GPC(GET/POST/Cookie)操作设置magic_quotes状态。当magic_quotes为on,所有的'"\和null被一个反斜杠自动转义"
是否允许打开远程文件:allow_url_fopen=on
是否允许包含远程文件:allow_url_include=off复制代码