配置文件
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复制代码