这个参数有助于阻止劣质脚本无休止的占用服务器资源。该指令仅影响脚本本身的运行时间,任何其他花费在脚本运行之外的时间都不包括。如用system()/sleep()函数的使用,数据库查询,文件上传等,都不包括在内。在安全模式下,你不能用ini_set()在运行时改变这个设置。
9.2、每个脚本使用的最大内存
memory_limit = 128m
一个脚本所能够申请到的最大内存字节数(可以使用K和M作为单位)。这有助于防止劣质脚本消耗完服务器上的所有内存。要能够使用该指令,必须在编译的时候使用”--enable-memory-limit”配置选项,如果要取消内存限制,则必须将其设置为-1,设置了该指令后,memory_get_usage()函数将变为可用。
9.3、每个脚本等待输入数据最长时间
默认设置如下:
max_input_time = -1
每个脚本解析输入数据(POST,GET,upload)的最大允许时间(秒),-1表示不限制。设置为:
max_input_time = 60;
9.4、上载文件的最大许可大小
当上传较大文件时,需要调整如下参数:
upload_max_filesize = 2M;
10、部分安全参数优化
1、禁止打开远程地址,最近出的php的include的漏洞,就是在一个php程序中include了变量,那么入侵者就可以利用这个控制服务器在本地执行远程的一个PHP程序,例如phpshell,所以我们要关闭这个。
allow_url_fopen = Off
2、设定:cgi.fix_pathinfo=0防止Nginx文件类型错误解析漏洞。
11、调整php的sesson信息存放类型和位置
11.1、默认参数优化
session.save_handler = files
存储和检索与会话关联的数据的处理器名字。默认为文件(“files”),如果想要使用自定义的处理器(如基于数据库的处理器),可用”user”,设为”memcache”则可以使用memcache作为会话处理器(需要指定”--enable-memcache-session”编译选项)。
session.save_path = “/tmp”
传递给存储处理器的参数。对于files处理器,此值是创建会话数据文件的路径。
11.2、优化实例
1、安装memcached服务端软件。
注意:memcached用libevent来做事件驱动,所以要先安装libevent。
2、安装memcache客户端件
3、真正配置的开始
修改php.ini配置文件,在全局设置。web集群session共享存储设置:
默认php.ini中session的类型和配置路径如下:
session.save_handler = files
session.save_path = “/tmp”
修改成如下配置:
session.save_handler = memcache
session.save_path = “tcp://192.168.115.110:11211”
提示:
(a)192.168.115.110:11211为memcached数据库缓存的IP及端口
(b)上述适合LNMP和LAMP环境。
(c)memcached服务器也可以是多台通过hash调度。
11.3、用memcached来存储session特点
优点:
1、读写速度上会比普通files时快很多。
2、可以解决多个服务器共用session的难题。
缺点:
1、session数据都保存在memory中,持久化方面有所欠缺,但对session数据来说不是问题
2、也可以用其他的持久化系统存储session,例如radis,ttserver。
3、高性能高并发场景,cookies的效率比session要好很多,因此很多大网站都会用cookies解决会话共享问题。
Linux公社的RSS地址:https://www.linuxidc.com/rssFeed.aspx