php配置参数调优

参数解释

php配置文件参数解释

安全模式

safe_mode = on|off
启用safe_mode指令将对在共享环境中使用PHP时可能有危险的语言特性有所限制。可以将safe_mode是指为布尔值on来启用,或者设置为 off禁用。它会比较执行脚本UID(用户ID)和脚本尝试访问的文件的UID,以此作为限制机制的基础。如果UID相同,则执行脚本;否则,脚本失败。
具体地,当启用安全模式时,一些限制将生效。

  1. 所有输入输出函数(例如fopen()、file()和require())的适用会受到限制,只能用于与调用这些函数的脚本有相同拥有者的文件。例如,假定启用了安全模式,如果Mary拥有的脚本调用fopen(),尝试打开由Jonhn拥有的一个文件,则将失败。但是,如果Mary不仅拥有调用 fopen()的脚本,还拥有fopen()所调用的文件,就会成功。
  2. 如果试图通过函数popen()、system()或exec()等执行脚本,只有当脚本位于safe_mode_exec_dir配置指令指定的目录才可能
  3. HTTP验证得到进一步加强,因为验证脚本用于者的UID划入验证领域范围内。此外,当启用安全模式时,不会设置PHP_AUTH
  4. 如果适用MySQL数据库服务器,链接MySQL服务器所用的用户名必须与调用mysql_connect()的文件拥有者用

另外,由于启用了安全模式后,由于会对比文件的拥有者和文件的执行者是否是一个人,所以会减慢执行效率。

用户组安全

safe_mode_gid = off

关闭危险函数

disable_functions = system,passthru,exec,shell_exec,popen,phpinfo

关闭php版本信息在http头中的泄漏

expose_php = On
是否暴露php被安装在服务器上的事实(在http头重加上其签名)
它不会有安全上的直接威胁,但它使得客户端知道服务器上安装了php.
建议设置为 on

关闭注册全局变量

register_globals = Off|On
在php中提交的变量,包括使用post或get提交的变量,都将自动注册为全局变量,能够直接访问,这是对服务器非常不安全的,所以我们不能让它注册为全局变量,就把注册全局变量选项关闭:
默认配置:register_globals = Off

打开magic_quotes_gpc来防止SQl注入

magic_quotes_pgc = Off //这个默认是关闭的,如果它打开后将自动把用户提交对sql的查询进行转换,比如把’转义为’等,这对防止sql注入有重大作用,所以我们推荐设置为:magic_quotes_pgc = On

错误信息控制

一般php在没有连接到数据库或者其他情况下会有提示错误,一般错误信息中会包含php脚本当前的路径信息或者查询的SQL语句等信息,这类信息提供给黑客后,是不安全的,所以一般服务器建议禁止错误提示。 display_errors = Off

错误日志

建议在关闭dispaly_errors后能够把错误信息记录下来,便于查找服务器运行的原因:
log_errors = On
error_log = /app/logs/php_error.log

资源限制参数优化

  1. 设置每个脚本运行的最长时间
    max_execution_time = 30
    每个脚本最大允许执行时间(秒),0表示没有限制。这个参数有助于阻止劣质脚本无休止的占用服务器资源。在安全模式下,你不能用ini_set()在运行时改变这个设置。当无法上传交大的文件或者后台设备数据经常超时,可根据情况进行配置

  2. 内存
    memory_limit = 128M
    每个php脚本能使用内存的最大值,这有助于防止劣质脚本消耗完服务器上的所有内存。如果要取消内存限制,则必须将其设为-1。

  3. 每个脚本等待输入数据最长时间
    max_input_time = -1 每个脚本解析输入数据(POST,GET,upload)的最大允许时间(秒),-1表示不限制,一般设置为max_input_time = 60

  4. 上传文件的最大许可大小
    upload_max_filesize = 2M

session配置

session.save_path=’/data/tmp/session’;
//用文件做介质时,session存储路径; 用memcache做介质时用作服务器连接串:session.save_path = “tcp://127.0.0.1:11211”

session.save_handler = “files”;
//可选files、memcach、user。如果想要自定义处理器来存取session数据,比如database、redis,就用"user"

session.name = “PHP_SESSID”
//当做cookie name来使用的session标识名

session.cookie_domain = “a.com
//cookie有效作用域名

session.use_cookies = 1
//是否使用cookies在客户端保存会话sessionid,默认为采用cookies

session.auto_start = 0
//是否自动启动session,默认不启动。在使用session功能时,在每个php脚本头部都会通过session_start()函数来启动session

session.cookie_lifetime = 0
//传递sessionid的Cookie有效期(秒),0表示仅在浏览器打开期间有效

session.gc_maxlifetime = 1440 //过期时间 默认24分钟
//设定保存的session文件生存期,超过此参数设定秒数后,保存的数据将被视为’垃圾’并由垃圾回收程序清理。

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值