PHP优化详解_PHP算法

PHP优化详解_PHP算法php-fpm优化 1.通常情况我们修改/etc/php.ini文件,仅会修改错误日志与文件上传 #;;;;;;;;;;;;;;;;; # Error logging ; #;;;;;;;;;;;;…

PHP优化详解

#;;;;;;;;;;;;;;;;;
# Error logging ;
#;;;;;;;;;;;;;;;;;
expose_php = Off # 关闭php版本信息
display_error = Off # 屏幕不显示错误日志
error_reporting = E_WARNING & E_ERROR # 记录php错误日志至后台
log_errors = On # 开启日志
error_log = /var/log/php_error.log # 错误日志记录的位置
date.timezone = PRC # 时区调整,默认PRC, 建议调整为Asia/Shanghai

#;;;;;;;;;;;;;;;
# File Uploads ;
#;;;;;;;;;;;;;;;
file_uploads = On # 开启文件上传功能,默认启动
upload_max_filesize = 300M # 允许上传文件的最大大小
post_max_size = 300M # 允许客户端单个POST请求发送的最大数据
max_file_uploads = 20 # 允许同时上传的文件的最大数量
memory_limit = 128M # 每个脚本执行最大内存

#/etc/php.ini优化配置如下
sql.safe_mode = Off
post_max_size = 300M
upload_max_filesize = 300M
max_file_uploads = 20
memory_limit = 128M
date.timezone = Asia/Shanghai

expose_php = Off
display_error = Off
error_reporting = E_WARNING & E_ERROR
log_errors = On
error_log = /var/log/php_error.log

代码100分

2. php-fpm主配置文件/etc/php-fpm.conf调整

代码100分#第一部分,fpm配置
;include=etc/fpm.d/*.conf

#第二部分,全局配置
[global]
;pid = /var/log/php-fpm/php-fpm.pid #pid文件存放的位置
;error_log = /var/log/php-fpm/php-fpm.log #错误日志存放的位置
;log_level = error #日志级别, alert, error, warning, notice, debug
rlimit_files = 65535 #php-fpm进程能打开的文件数
events.mechanism = epoll #使用epoll事件模型处理请求

#第三部分,进程池定义
[www] #池名称
user = www #进程运行的用户
group = www #进程运行的组
;listen = /dev/shm/php-fpm.sock #监听在本地socket文件
listen = 127.0.0.1:9000 #监听在本地tcp的9000端口
;listen.allowed_clients = 127.0.0.1 #允许访问FastCGI进程的IP,any不限制

; Choose how the process manager will control the number of child processes.
; Possible Values:
; static - a fixed number (pm.max_children) of child processes;
; dynamic - the number of child processes are set dynamically based on the
; following directives:
; pm.max_children - the maximum number of children that can
; be alive at the same time.
; pm.start_servers - the number of children created on startup.
; pm.min_spare_servers - the minimum number of children in "idle"
; state (waiting to process). If the number
; of "idle" processes is less than this
; number then some children will be created.
; pm.max_spare_servers - the maximum number of children in "idle"
; state (waiting to process). If the number
; of "idle" processes is greater than this
; number then some children will be killed.
; Note: This value is mandatory.

pm = dynamic #
pm.max_children = 512 #最大启动的php-fpm进程数
pm.start_servers = 32 #初始启动的php-fpm进程数
pm.min_spare_servers = 32 #最少的空闲php-fpm进程数
pm.max_spare_servers = 64 #最大的空闲php-fpm进程数
pm.max_requests = 1500 #每一个进程能响应的请求数
pm.process_idle_timeout = 15s;

# 错误日志
php_flag[display_errors] = off
php_admin_value[error_log] = /soft/log/php/php-www_error.log
php_admin_flag[log_errors] = on

# 将查询超过5s的连接记录至慢查询日志中
request_slowlog_timeout = 5s
slowlog = /var/log/php/slow.log

3. php-fpm状态模块,用于监控php-fpm状态使用

[root@nginx ~]# vim /etc/php-fpm.d/www.conf
# 开启php的状态页面
pm.status_path = /phpfpm_status

#
[root@nginx conf.d]# cat /etc/nginx/conf.d/fpm.conf
server {
listen 80;
server_name php.qls.com;
location / {
root /code;
index index.php;
}
location /phpfpm_status {
fastcgi_pass 127.0.0.1:9000;
fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;
include fastcgi_params;
}
location ~ .php$ {
fastcgi_pass 127.0.0.1:9000;
fastcgi_index index.php;
fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;
include fastcgi_params;
}
}

4. 访问测试phpfpm_status状态页面

代码100分[root@nginx ~]# curl http://127.0.0.1/phpfpm_status
pool: www
process manager: dynamic
start time: 05/Jul/2016:15:30:56 +0800
start since: 409
accepted conn: 22
listen queue: 0
max listen queue: 0
listen queue len: 128
idle processes: 4
active processes: 1
total processes: 5
max active processes: 2
max children reached: 0

#PHP-FPM状态解释:
pool #fpm池名称,大多数为www
process manager #进程管理方式dynamic或者static
start time #启动日志,如果reload了fpm,时间会更新
start since #运行时间
accepted conn #当前池接受的请求数
listen queue #请求等待队列,如果这个值不为0,那么需要增加FPM的进程数量
max listen queue #请求等待队列最高的数量
listen queue len #socket等待队列长度
idle processes #空闲进程数量
active processes #活跃进程数量
total processes #总进程数量
max active processes #最大的活跃进程数量(FPM启动开始计算)
max children reached #程最大数量限制的次数,如果这个数量不为0,那说明你的最大进程数量过小,可以适当调整。

5. PHP-FPM配置文件

[root@nginx ~]# cat /etc/php-fpm.d/www.conf
[global]
pid = /var/run/php-fpm.pid

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
pm.start_servers = 10
pm.min_spare_servers = 10
pm.max_spare_servers = 30
pm.process_idle_timeout = 15s;
pm.max_requests = 2048
pm.status_path = /phpfpm_status

#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

 

PHP优化详解_PHP算法

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 举报,一经查实,本站将立刻删除。
转载请注明出处: https://daima100.com/8684.html

(0)
上一篇 2023-02-23
下一篇 2023-02-23

相关推荐

  • 罗景:连接效率优化实践[亲测有效]

    罗景:连接效率优化实践[亲测有效]分享嘉宾:罗景 58同城 高级架构师 编辑整理:洪鹏飞 内容来源:DataFun AI Talk《连接效率优化实践》 出品社区:DataFun **导读:**本次分享由以下几个部分构成—— 58的业务

    2023-05-22
    99
  • sqlserver发送邮件给多人_sql server登录

    sqlserver发送邮件给多人_sql server登录– BI EMAIL declare @CC varchar(10),@MAIL varchar(500), @str varchar(800),@year varchar(4),@month va

    2022-12-28
    105
  • greenplum分布键的hash值计算分析「建议收藏」

    greenplum分布键的hash值计算分析「建议收藏」greenplum 数据分布策略 greenplum 是一个 MPP 架构的数据库,由一个 master 和多个 segment 组成(还可选配置一个 standby master),其数据会根据设置

    2023-04-26
    93
  • 优化网站布局:Python Grid Span的灵活运用

    优化网站布局:Python Grid Span的灵活运用随着网站页面越来越复杂和多样化,设计师需要更多更灵活的布局方式,以便将不同的元素合理地组合在一起。Python Grid Span是一种非常强大的工具,使得在网站布局中实现跨行和跨列变得轻而易举,并且它适用于所有网站布局,包括响应式布局。

    2024-01-05
    60
  • Spyder是Python工程师必备的IDE之一

    Spyder是Python工程师必备的IDE之一Python语言的发展,使得越来越多的程序员选择Python作为自己工作中的主要语言,而IDE也成为了Python工程师们必备的工具之一。Spyder就是其中一个值得推荐的Python集成开发环境。Spyder是一个源自于Anaconda发行版的开源工具,主要是为数据科学家和工程师量身定制的,特别适用于大型Python项目开发,包括科学计算、数据分析、数据可视化、机器学习等领域。

    2024-04-15
    43
  • 什么叫做数据库_数据库DBMS

    什么叫做数据库_数据库DBMS摘要:GaussDB(for Influx)是一款基于计算存储分离架构,完全兼容 InfluxDB 生态的云原生时序数据库。 本文分享自华为云社区《云数据库 GaussDB(for Influx) 解

    2023-06-13
    100
  • 1、基本概念[通俗易懂]

    1、基本概念[通俗易懂]1、数据库概念 数据库就是用来存储和管理数据的仓库。我们所说的数据库泛指“关系型数据库管理系统”,即“数据库服务器”。MySQL就是典型的关系型数据库。 数据库存储数据的优点: 可存储大量数据; 方…

    2023-04-12
    111
  • 腾讯新闻增长运营_从阿里巴巴的爆发式增长看网络营销

    腾讯新闻增长运营_从阿里巴巴的爆发式增长看网络营销导读: 随着信息化时代的来临,信息呈现出爆炸式的增长。尤其是在移动互联网的推动下,每天大量信息涌入让人们应接不暇,腾讯新闻客户端的出现,就是以帮助用户寻找有用信息而出现。这时,面对海量的数据、繁多的业

    2023-05-18
    99

发表回复

您的电子邮箱地址不会被公开。 必填项已用*标注