PHP引擎php.ini参数优化

参数以外常见的PHP优化方法手段

1)php引擎缓存加速优化

#xcache、ZendOpcache、eaccelerator
#http://www.lichengbing.cn/archivers/270.html

2) 使用tmpfs作为缓存加速缓存的文件目录

tmpfs,基于内存的文件系统,加快转存暂存文件的速度

[[email protected] ~]# mount -t tmpfs tmpfs /dev/shm -o size=256m
[[email protected] ~]# mount -t tmpfs tmpfs /dev/shm /tmp/eaccelerator #上传图片缩略图临时处理目录和缓存目录

3) 防止PHP程序上传文件到图片附件目录

#Nginx防御 http://www.lichengbing.cn/archivers/279.html

php.ini参数调优

php.ini配置文件

[[email protected] php-5.5.32]# ll php.ini-*
-rw-r--r--. 1 1001 1001 69236 Feb  2  2016 php.ini-development #开发环境
-rw-r--r--. 1 1001 1001 69266 Feb  2  2016 php.ini-production #生产环境(关闭日志或者输出到文件中)

1) 打开php的安全模式

php安全模式是个非常重要的php内嵌的安全机制,能够控制一些php的函数执行,比如system()调用系统命令函数

safe_mode = on

2)用户组安全

safe_mode_gid = off #防止php程序对脚本执行有权限

3)关闭危险函数

如果打开了安全模式,那么函数禁止是可以不需要的,但是我们为了安全还是可以关闭的,特别是phpinfo()

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

如果要禁止任何文件和目录的操作,那么可以关闭很多文件操作

disable_functions = chdir,chroot,dir,getcwd,opendir,readdir,scandie,fopen,unlink,delete,copy,mkdir,rmdir,rename,file,file_getcontents,fputs,fwrite,chgrp,chmod,chown

4)关闭PHP版本信息在http头中的泄漏

expose_php = off

5)关闭注册全局变量

在PHP中提交的变量,包括使用POST或者GET提交的变量,都将自动注册为全局变量,能够直接访问,这是对服务非常不安全的

register_globals = off #推荐使用预定义的超全局变量:$_ENV,$_GET,$_POST,$_COOKIE,$_SERVER
#该指令收variables_order指令的影响,5.5自动关闭了

6)打开magic_quotes_gpc来防止SQL注入

SQL注入是非常危险的问题,轻则网站后台被入侵,重则整个服务器沦陷

magic_quotes_gpc = off

这个默认是关闭的,如果它打开将自动把用户提交对sql的查询进行转换,比如把 ‘ 转换为 \‘ 这对防止sql注入有重大作用,所以推荐设置为

magic_quotes_gpc = on

SQL注入防范:

Apache 中的mod_security和mod_evasive

Nginx lua waf

7)错误信息控制

一般php在没有连接到数据库或者其他情况下会提示错误,一般信息都会包含php脚本当前的路径信息或者查询的SQL语句信息,这类信息提供给黑客后市不安全的,建议关闭错误提示

display_errors = off #正式环境不要给用户报错

8)错误日志

log_errors = on #打开日志开关
error_log = /application/logs/php_error.log #设置路径

部分资源限制参数优化

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

但无法上传较大的文件或者后台备份数据经常超时时,此时需要调整如下设置

max_execution_time = 30
#每个脚本允许的最大执行时间,0表示没有限制
#这个参数有助于阻止恶劣脚本无休止的占用服务器资源

2)每个脚本使用的最大内存

memory_limit = 128m

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

max_input_time = 60;   #(-1表示不限制)

4)上传文件的最大许可

upload_mx_filesize = 2M;

部分安全参数优化

1)禁止打开远程地址

记得最近出的php include的那个安全漏洞吧!就是在一个php程序中的include了变量,那么入侵者就可以利用这个控制服务器在本地执行远程的一个php程序,例如phpshell

allow_url_fopen = off

2)设定防止Nginx文件解析错误漏洞

cgi.fix_path = 0

3)调整php sesson会话共享信息存放位置

session.save_handler = memcache
session.save_path = "tcp://10.0.0.8:1211"
#首先搭建好memcache环境
时间: 2024-10-08 23:52:40

PHP引擎php.ini参数优化的相关文章

MySQL配置文件mysql.ini参数详解、MySQL性能优化

MySQL配置文件mysql.ini参数详解.MySQL性能优化 my.ini(Linux系统下是my.cnf),当mysql服务器启动时它会读取这个文件,设置相关的运行环境参数. my.ini分为两块:Client Section和Server Section.   Client Section用来配置MySQL客户端参数.   要查看配置参数可以用下面的命令: show variables like '%innodb%'; # 查看innodb相关配置参数 show status like

MySQL参数优化

目前针对MySQL数据库进行了一些参数优化,具体如下: my.ini / my.cnf 参数说明 #使用查询缓存 query_cache_size=100M                     #设置MySQL查询缓存的大小,如果MySQL收到同样的查询语句且数据未发生变化,则直接返回缓存中的数据 query_cache_type=1                        #1:开启缓存,0:关闭 innodb_buffer_pool_size=128M              #

MySQL缓存参数优化(转)

MySQL 数据库性能优化之缓存参数优化 数据库属于 IO 密集型的应用程序,其主要职责就是数据的管理及存储工作.而我们知道,从内存中读取一个数据库的时间是微秒级别,而从一块普通硬盘上读取一个IO是在毫秒级别,二者相差3个数量级.所以,要优化数据库,首先第一步需要优化的就是 IO,尽可能将磁盘IO转化为内存IO.本文先从 MySQL 数据库IO相关参数(缓存参数)的角度来看看可以通过哪些参数进行IO优化. query_cache_size/query_cache_type (global) Qu

php.ini参数调优

目录 1.打开php的安全模式 1 2.用户组安全 1 3.关闭危险函数 1 4.关闭php版本信息在http头中的泄漏 1 5.关闭注册全局变量 1 6.打开magic_quotes_gpc来防止SQl注入 1 7.错误信息控制 2 8.错误日志 2 9.部分资源限制参数优化 2 10.部分安全参数优化 2 11.调整php sesson信息存放类型和位置 2 无论是apache还是nginx,php.ini都是适合的.而php-fpm.conf适合nginx+fcgi的配置 首先选择产品环境

MySQL配置文件my.cnf参数优化和中文详解

Mysql参数优化对于新手来讲,是比较难懂的东西,其实这个参数优化,是个很复杂的东西,对于不同的网站,及其在线量,访问量,帖子数量,网络情况,以及机器硬件配置都有关系,优化不可能一次性完成,需要不断的观察以及调试,才有可能得到最佳效果. [client]port = 3306socket = /tmp/mysql.sock [mysqld]port = 3306socket = /tmp/mysql.sock basedir = /usr/local/mysqldatadir = /data/m

mysql参数优化辅助工具之mysqltuner

Mysqltuner.sql 的使用和安装. Mysqltuner 是一个mysql参数优化辅助工具,它可以对mysql进行全面的体检,然后给出针对性的体检报告 1.mysqltuner 下载 mysqltuner 官网:http://mysqltuner.com/ 可以下载最新版本的. 2.mysqltuner 的安装和使用. Mysqltuner  就是一套perl脚本,不需要任何的安装,将下载下来的tar安装包解压下就行了. [[email protected] software]# ta

Mysql性能优化之缓存参数优化

数据库属于 IO 密集型的应用程序,其主要职责就是数据的管理及存储工作.而我们知道,从内存中读取一个数据库的时间是微秒级别,而从一块普通硬盘上读取一个IO是在毫秒级别,二者相差3个数量级.所以,要优化数据库,首先第一步需要优化的就是 IO,尽可能将磁盘IO转化为内存IO.本文先从 MySQL 数据库IO相关参数(缓存参数)的角度来进行IO优化: 一.query_cache_size/query_cache_type (global)    Query cache 作用于整个 MySQL Inst

MySQL详解(21)------------缓存参数优化

数据库属于 IO 密集型的应用程序,其主要职责就是数据的管理及存储工作.而我们知道,从内存中读取一个数据库的时间是微秒级别,而从一块普通硬盘上读取一个IO是在毫秒级别,二者相差3个数量级.所以,要优化数据库,首先第一步需要优化的就是 IO,尽可能将磁盘IO转化为内存IO.本文先从 MySQL 数据库IO相关参数(缓存参数)的角度来看看可以通过哪些参数进行IO优化: query_cache_size/query_cache_type (global) Query cache 作用于整个 MySQL

Linux中MySQL配置文件my.cnf参数优化

MySQL参数优化这东西不好好研究还是比较难懂的,其实不光是MySQL,大部分程序的参数优化,是很复杂的.MySQL的参数优化也不例外,对于不同的需求,还有硬件的配置,优化不可能又最优选择,只能慢慢的进行优化,需要不断的调试,才能达到不同环境的最优选择. 首先介绍一下MySQL配置文件中不同模块 [client] MySQL客户端应用模块,只有MySQL附带的客户端应用程序保证可以读取此模块下的内容. [mysqld] MySQL服务端应用模块 [client] port = 3306 sock