<服务优化>PHP配置优化
目录:
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及端口