centos7 php性能调优
php-ini优化
vi /etc/php.ini
打开php的安全模式,控制php执行危险函数, 默认是Off,改为On
sql.safe_mode = Off
关闭php头部信息, 隐藏版本号, 默认是On,该为Off
expose_php = On
错误信息输出控制
display_error = Off
error_reporting = E_WARNING & E_ERROR
记录错误日志至后台, 方便追溯
log_errors = On
error_log = /var/log/php_error.log
每个脚本时间最大内存
memory_limit = 128M
上传文件最大许可,默认2M, 建议调整为16,32M
upload_max_filesize = 2M
禁止远程执行phpshell,默认On, 建议Off
allow_url_fopen = On
时区调整,默认PRC, 建议调整为Asia/Shanghai
date.timezone = PRC
整体优化后配置文件
sql.safe_mode = Off
expose_php = Off
display_error = Off
error_reporting = E_WARNING & E_ERROR
log_errors = On
error_log = /var/log/php_error.log
upload_max_filesize = 50M
allow_url_fopen = Off
date.timezone = Asia/Shanghai
php-fpm优化
PHP-FPM配置文件 4核16G、8核16G
[root@nginx ~]# cat /etc/php-fpm.d/www.conf
[global]
pid = /var/run/php-fpm.pid
#php-fpm程序错误日志
error_log = /var/log/php/php-fpm.log
log_level = warning
rlimit_files = 655350
events.mechanism = epoll
用户权限优化
[www]
user = nginx
group = nginx
listen = 127.0.0.1:9000
listen.owner = www
listen.group = www
listen.mode = 0660
listen.allowed_clients = 127.0.0.1
进程数优化
pm = dynamic
pm.max_children = 512 #一般来说一台服务器正常情况下每一个php-cgi所耗费的内存在20M左右,因此我的”max_children”我 设置成40个,20M*40=800M也就是说在峰值的时候所有PHP-CGI所耗内存在800M以内,低于我的有效内存1Gb。
pm.start_servers = 10
pm.min_spare_servers = 10
pm.max_spare_servers = 30
pm.process_idle_timeout = 15s;
最大请求数优化
pm.max_requests = 2048
#php-www模块错误日志
php_flag[display_errors] = off
php_admin_value[error_log] = /var/log/php/php-www.log
php_admin_flag[log_errors] = on
#php慢查询日志
request_slowlog_timeout = 5s
slowlog = /var/log/php/php-slow.log
详细了解可以看看这个博客:https://www.cnblogs.com/kenshinobiy/p/7470635.html