天天看点

PHP参数调优一 基础简介二 php.ini 参数调优二 php-fpm

一 基础简介

PHP.ini 适合于nginx和apache,如php-fpm适合于nginx+fastcgi的配置

php.ini PHP引擎 php.fpm PHP的进程

PHP的配置文件由两个,一个是development,另一个是production

两个的区别:

生产场景php.ini的日志都是关闭或者输出到文件中的,所以我们在生产环境中把非程序上的输出都关闭或隐藏

二 php.ini 参数调优

日志的关闭与隐藏就是PHP的基本调优

1 打开PHP的安全模式

PHP的安全模式是PHP内嵌的安全机制,能够控制一些PHP中的函数执行,同时把很多文件操作的函数进行权限控制,如果通过PHP来调用rm而删除一些服务器资源,则安全不复存在
PHP参数调优一 基础简介二 php.ini 参数调优二 php-fpm
PHP参数调优一 基础简介二 php.ini 参数调优二 php-fpm

2 用户组安全

当safe_mode 打开时,safe_mode_gid被关闭,那么PHP脚本能够对文件进行访问,而且相同组的用户也能对文件进行访问,建议设置为:safe_mode_gid=off

如果不设置,则有可能我发对服务器网站目录下的文件进行操作

PHP参数调优一 基础简介二 php.ini 参数调优二 php-fpm

3 关闭危险函数

例如可以通过phpinfo()查看PHP的版本和基础信息,进而对系统有一个了解

PHP参数调优一 基础简介二 php.ini 参数调优二 php-fpm

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

PHP参数调优一 基础简介二 php.ini 参数调优二 php-fpm

5 关闭注册全局变量

在PHP中提交的变量,包括使用POST或者GET提交的变量,都将自动注册为全局变量,能够直接访问,这对服务器是非常不安全的,所有我们不能让他注册为全局变量,就把注册全局变量的选项关闭,此处涉及到程序开发
PHP参数调优一 基础简介二 php.ini 参数调优二 php-fpm

6 打开magic_quotes_gpc 来防止SQL注入

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

PHP参数调优一 基础简介二 php.ini 参数调优二 php-fpm

SQL注入防范:

apache中mod_security和mod_enasive

nginx 中 nginx lua vaf

7 错误信息控制

一般的PHP在没有连接到数据库或者其他情况下会有提示错误,一般错误信息中会包含PHP脚本当前的路径信息或者查询的SQL语句等信息,这样不安全
PHP参数调优一 基础简介二 php.ini 参数调优二 php-fpm

如果自己想看日志,则首先需要设置日志的级别

PHP参数调优一 基础简介二 php.ini 参数调优二 php-fpm

设置日志打开并提供一个路径

PHP参数调优一 基础简介二 php.ini 参数调优二 php-fpm

8 部分资源参数限制优化

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

当无法上传较大的文件或者后台备份数据经常超时,需要调整,此参数是默认

PHP参数调优一 基础简介二 php.ini 参数调优二 php-fpm

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

PHP参数调优一 基础简介二 php.ini 参数调优二 php-fpm

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

PHP参数调优一 基础简介二 php.ini 参数调优二 php-fpm

其中-1表示无限制

4 上载文件的最大许可大小

PHP参数调优一 基础简介二 php.ini 参数调优二 php-fpm
PHP参数调优一 基础简介二 php.ini 参数调优二 php-fpm

9 部分安全参数优化

1 禁止打开远程地址

PHP参数调优一 基础简介二 php.ini 参数调优二 php-fpm

2 设定 cgi.fix_pathinfo=0放置nginx文件类型错误解析漏洞

PHP参数调优一 基础简介二 php.ini 参数调优二 php-fpm

10 调整PHP session 信息存放类型和位置

默认位置

PHP参数调优一 基础简介二 php.ini 参数调优二 php-fpm

一般的,在数据进行再次访问如果会话存放在本地,访问被调用到另一台设备上,则会导致重新需要再次进行会话的保存

其默认的保存方式是文件,一般需要将文件修改为memcached

PHP参数调优一 基础简介二 php.ini 参数调优二 php-fpm

搭建memcached

PHP参数调优一 基础简介二 php.ini 参数调优二 php-fpm
PHP参数调优一 基础简介二 php.ini 参数调优二 php-fpm

路径修改为memcached服务器的地址

PHP参数调优一 基础简介二 php.ini 参数调优二 php-fpm
PHP参数调优一 基础简介二 php.ini 参数调优二 php-fpm

重启服务

PHP参数调优一 基础简介二 php.ini 参数调优二 php-fpm

查看info是否存在

PHP参数调优一 基础简介二 php.ini 参数调优二 php-fpm

二 php-fpm

1 pid

PHP参数调优一 基础简介二 php.ini 参数调优二 php-fpm

打开pid 通过pid进行管理

2 开启错误日志

PHP参数调优一 基础简介二 php.ini 参数调优二 php-fpm

3 开启日志级别

PHP参数调优一 基础简介二 php.ini 参数调优二 php-fpm

4 最大的FPM fork 进程的数量。如果并发比较大,可以开大一点

PHP参数调优一 基础简介二 php.ini 参数调优二 php-fpm

5 调整最大打开文件数量

PHP参数调优一 基础简介二 php.ini 参数调优二 php-fpm

6 用户和组,要和nginx的用户和组相同

PHP参数调优一 基础简介二 php.ini 参数调优二 php-fpm

7 修改监听别的端口和IP地址

PHP参数调优一 基础简介二 php.ini 参数调优二 php-fpm

8 进程相关

1 默认

最大的进程数量

PHP参数调优一 基础简介二 php.ini 参数调优二 php-fpm

启动服务进程数量

PHP参数调优一 基础简介二 php.ini 参数调优二 php-fpm

服务最小进程数量,当没有流量时的服务数量

PHP参数调优一 基础简介二 php.ini 参数调优二 php-fpm

最大空间数

PHP参数调优一 基础简介二 php.ini 参数调优二 php-fpm

2 修改

9 PHP的访问日志

10 慢查询相关日志开启