php.ini优化,,,php-fpm
无论是apache还是nginx,php.ini都是合适的。而php-fpm.conf适合nginx+fcgi的配置。
1)打开PHP的安全模式
PHP的安全模式是个非常重要的PHP内嵌的安全机制,能够控制一些PHP中的函数执行,
比如system(),同时把很多文件操作的函数进行了权限的控制。 safe_mode = Off
打开时,PHP将检查当前脚本的拥有者是否和被操作的文件的拥有者相同
safe_mode = On
2)用户组安全
当safe_mode打开时,safe_mode_gid被关闭,那么php脚本能够对文件进行访问,而且相同组的用户也能够对文件进行访问。建议设置为:safe_mode_gid = Off
如果不进行设置,可能我们无法对我们服务器网站目录下的文件进行操作了,比如我们需要对文件进行操作的时候。php5.3.27默认为Off
3)关闭危险函数
如果打开了安全模式,那么函数禁止是可以不需要的,但是我们为了安全考虑,,比如,我们觉得不希望执行包括system()等在那的能够执行命令的PHP函数,或者能够查看PHP
信息的phpinfo()等函数,那么我们可以禁止它们:
disable_functions = system,passthru,exec,shell_exec,popen,phpinfo
4)关闭PHP版本信息在http头中的泄漏
expose_php = On
建议设置为:safe_mode_gid
expose_php = Off
5)关闭注册全局变量
在php中提交的变量,包括使用post或者get提交的变量,都将自动注册为全局变量,能够直接访问,这是对服务器非常不安全的
register_globals = Off
6)防止sql注入
magic_quotes_gpc = Off
这个默认是关闭的,如果它打开后将自动把用户提交对sql的查询进行转换,比如把'转为\'等,这对防止sql注入有重大作用
magic_quotes_gpc = On
7)错误信息控制
display_errors = Off
如果你确实是要显示错误信息,一定要设置显示错误的级别,比如只显示警告以上的信息
error_reporting
8)错误日志
建议在关闭display_errors后能够把错误信息记录下来,便于查找服务器运行的原因
log_errors = On
同时也要设置错误日志存放的目录,建议跟apache的日志存放在一起
error_log = /app/logs/php_error.log
文件必须允许apache用户的和组具有写的权限。
9)部分资源限制参数优化
9.1)设置每个脚本运行的最长时间
当无法上传较大的文件或者后台备份数据经常超时:
max_execution_time = 30
每个脚本最大允许执行时间(秒),0表示没有限制。
这个参数有助于阻止劣质脚本无休止的占用服务器资源。
该指令仅影响脚本本身的运行时间,任何其他花费在脚本运行之外的时间。
如用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)部分安全参数优化
10.1)禁止打开远程地址,php include的那个漏洞,就是在一个php程序中include了变量
,那么入侵者就可以利用这个控制服务器在本地执行远程的一个php程序,例如phpshell
所以要关闭
allow_url_fopen = Off
10.2)防止Nginx文件类型错误解析漏洞
cgi.fix_pathinfo=0
11)调整php sesson信息存放类型和位置
session.save_handler = files
存储和检索与会话关联的数据的处理器名字。默认为文件“files”
如果想要使用自定义的处理器(如基于数据库的处理器),可用"user"
设为“memcache”则可以使用memcache作为会话处理器(需要指定“--enable-memcache-session”)
session.save_path="/tmp"
传递给存储处理器的参数。对于files处理器,此值是创建会话数据文件的路径
Web集群session共享存储设置:
默认php.ini中session的类型和配置路径:
#session.save_handler = files
#session.save_path = "/tmp"
修改成如下配置:
session.save_handler = memcache
session.save_path = "tcp://192.168.1.1:1234"
提示:
1)192.168.1.1:1234为memcached数据库缓存的ip及端口。
2)上述适合lnmp,lamp环境。
3)memcached服务器也可以是多台通过hash调度。
关于php-fpm的参数调优,可以查看本机里面的文件。
pid = /app/logs/php-fpm.pid
error_log = /app/logs/php-fpm.log
log_level = error
rlimit_files = 32768
events.mechanism = epoll
listen.owner = nginx
listen.group = nginx
pm.max_children = 1024
pm.start_servers = 16
pm.min_spare_servers = 5
pm.max_spare_servers = 20
pm.process_idle_timeout = 15s;
pm.max_requests = 2048
;access.format = %R - %u %t "%m %r%Q%q" %s %f %{mili}d %{kilo}M %C%%
slowlog = /app/logs/$pool.log.slow
request_slowlog_timeout = 10
php_admin_value[sendmail_path] = /usr/sbin/sendmail -t -i -f 88888888@qq.com
php.ini
opcache.memory_consumption=128
opcache.interned_strings_buffer=8
opcache.max_accelerated_files=4000
opcache.revalidate_freq=60
opcache.fast_shutdown=1
opcache.enable_cli=1
php.ini优化,,,php-fpm的更多相关文章
- mysql for windows之my.ini优化
修改配置文件 C:\ProgramData\MySQL\MySQL Server 5.6\my.ini 并重新启动. 1, 查看MySQL服务器配置信息 mysql> show variabl ...
- mysql配置文件my.ini优化详解
mysql 5.5.13参数说明:[client]character-set-server = utf8port = 3306socket = /data/mysql/3306/mysql.sock[ ...
- php引擎文件php.ini优化参数
无论是Apache环境还是nginx环境,php.ini都适合,php-fpm.conf适合nginx+fcgi的配置. 生产环境php.ini(php.ini-production) php.ini ...
- my.ini优化mysql数据库性能的十个参数(推荐)
(1).max_connections:允许的同时客户的数量.增加该值增加 mysqld 要求的文件描述符的数量.这个数字应该增加,否则,你将经常看到 too many connections 错误. ...
- eclipse提速02 - eclipse.ini优化
给eclipse执行jvm.它可以让你使用自己的jdk,而不是系统环境变量所指定的jdk -vm /path/to/your/java 使用最新的jdk来运行eclipse.使用最新的jdk要好很多. ...
- linux 查找php.ini 文件
sudo find /* -name 'php.ini' /etc/php5/fpm/php.ini
- ubuntu php.ini文件位置
mc@XJ > locate php.ini/etc/php5/cli/php.ini/etc/php5/fpm/php.ini
- mySQL内存及虚拟内存优化设置
为了装mysql环境测试,装上后发现启动后mysql占用了很大的虚拟内存,达8百多兆.网上搜索了一下,得到高人指点my.ini.再也没见再详细的了..只好打开my.ini逐行的啃,虽然英文差了点,不过 ...
- CentOS6编译LAMP基于FPM模式的应用wordpress
CentOS6编译LAMP基于FPM模式的应用wordpress 引言:其实我们可以直接使用yum安装LAMP(Linux+Apache[httpd]+Mysql+PHP),比手动编译安装LAMP要简 ...
随机推荐
- MyBatis常用对象SqlSessionFactory和SqlSession介绍和运用
学习框架一个比较好的路径阅读源码.本文介绍的SqlSessionFactory和SqlSession.可以通过了解SqlSessionFactory接口和SqlSession接口以及两个的实现类入手, ...
- 在Swing的组件中,基本上都是在AWT组件的名称前面加“J”
在Swing的组件中,基本上都是在AWT组件的名称前面加“J”. 一般情况下,除了Choise等组件: import javax.swing.*;好要加上:import java.awt.*以及imp ...
- 模拟form表单请求上传文件
发请求 public string CameraFileUpload(string url,string path,string serverPath,string uploadfileName) { ...
- vector使用注意事项
1. 需要保存若干同类数据项时,用vector比较方便.不用管理下标,直接push_back即可. 2. 当程序重复执行一段代码时,之前保存数据用的vector需要清空.因为不是按照下标保存的数据,不 ...
- SQL语句:语法错误(操作符丢失)在查询表达式中
所谓操作符丢失,应该是你在拼接SQL语句是少了关键词或者分隔符,导致系统无法识别SQL语句.建议:1.监控SQL语句,看看哪里出现问题:断点看下最后的sql到底是什么样子就知道了,另外你可以把这段sq ...
- 转:解决Python2.7的UnicodeEncodeError: ‘ascii’ codec can’t encode异常错误
操作SQL数据库,Python使用的是版本2.7,但是在运行的时候出现了异常错误UnicodeEncodeError:'ascii' codec can't encode characters in ...
- iOS开发之--去除按钮的点击效果
Button.adjustsImageWhenHighlighted = NO; 去除按钮的点击效果,用这句代码就可以了!
- swift - SQLite数据库的使用(引用)
SQLite轻量级数据库在移动应用中使用非常普遍,但是目前的库是C编写的,为了方便使用,对SQLite相关的操作用Swift进行了封装.这个封装代码使用了一个开源项目SQLiteDB,地址是:http ...
- ios 自定义UITableView中分组的标题sectionview
//Section的标题栏高度 -(CGFloat)tableView:(UITableView *)tableView heightForHeaderInSection:(NSInteger)sec ...
- SaltStack自动化安装zabbix-server
使用SaltStack自动化安装zabbix-server 1,设置ntp时间同步 2,安装zabbix-agent 3,安装zabbix-server 4,安装及配置mariadb(mariadb与 ...