<服务优化>PHP配置优化

时间:Dec. 18, 2016 分类:

目录:

PHP安全模式

PHP安全模式是重要的PHP内嵌安全机制,能控制一些PHP中的函数执行,例如system(),同时把很多文件的操作函数进行了权限控制。 - safe_mode = On 默认为Off 当safe_mode =On时,safe_mode_gid将会被关闭

关闭危险函数

如果打开了安全模式,那么函数禁止是不需要的,不过为了安全起见,还是需要禁止一些重要的函数,例如system()等能够执行php的函数,或者能够查看php信息的phpinfo()等 - disable_functions = system,passthru,exec,shell_exec,popen,phpinfo

其他对文件处理函数:chdir,chroot,dir,get,getcwd,opendir,readdir,scandir,fopen,unlink,delete,copy,mkdir,rmdir,rename,file,file_get_contents,fputs,fwrite,chgrp,chmod,chown等,当然这些配置需要与开放人员进行核对,尽可能抵制phpshell

关闭PHP版本信息在http头中的泄露

防止别人获取服务器中的php版本信息,可以关闭防止在http头中泄露 - expose_php = Off默认为On

关闭全局变量

  • register_globals = Off 默认也为Off 在php6中已经删除了这个指令,一般都需要跟开发交流和沟通好

    防止SQL注入

  • magic_quotes_gpc = On 默认值为Off 可以对提交的SQL查询进行转义,例如"'"可以转义为"\'"

    错误信息控制

  • display_errors = Off php5.3.27默认为Off 是否将错误作为输出的一部分显示给终端用户,一般我们都是关闭此功能并以错误日志代替

  • error_reporting = E_WARNING & E_ERROR

    错误日志

  • log_errors = On 然后配置error_log并且确保apache用户有写入权限

  • error_log = php_errors.log

    部分资源限制参数优化

设置每个脚本运行的最长时间

  • max_execution_time = 30 这个时间只是脚本本身的运行时间,脚本之外运行的时间都是不算在内的,例如一些函数的使用,数据库查询,文件上传等都不算在内,可以防止劣质脚本无休止的占用服务器资源,0表示没有限制。

    每个脚本使用最大内存

  • memory_limit = 128M 单位一般为K或M,要在编译的过程中制定--enable-mem ory-limit参数,-1表示取消内存限制

    每个脚本等待输入数据的最长时间

  • max_input_time = 60 默认值为-1

    每个进程处理的请求数

  • max_request = 10240 一般根据请求量和占用内存的大小进行调整,占用内存量大并且请求数量较小的可以把这个值调整为300~1000

    上载文件的最大许可大小

  • upload_max_filesize = 2M 可以根据业务需求进行修改 包扩max_file_uploads = 20每次上传的文件数

    安全参数

禁止打开远程地址

  • allow_url_fopen = Off 以前的php include漏洞就是因为这个参数没有进行关闭

    防止nginx文件类型解析错误漏洞

  • cgi.fix_pathinfo = 0

    session信息存放配置

  • session.save_handler = files 存储和索引与会话关联的数据的处理器名字,默认为files,如果使用自定义处理器可以用user,设置为memcache则可以使用memcache作为会话处理器,不过需要编译--enable-memcache作为编译选项 session.save_path = "/tmp"

我们一般使用memcache,配置如下

session.save_handler = memcache
session.save_path = "tcp://192.168.0.210:11211"

需要安装memcache的客户端和服务端,以及libevent驱动 这个192.168.0.210:11211为memcache数据库IP及端口