返回顶部
首页 > 资讯 > 后端开发 > PHP编程 >PHP优化详解
  • 919
分享到

PHP优化详解

PHP优化详解 2017-08-28 17:08:01 919人浏览 绘本
摘要

#;;;;;;;;;;;;;;;;; # Error logging ; #;;;;;;;;;;;;;;;;; expose_PHP = Off # 关闭php版本信息 display_error = Off # 屏幕不显示错误日志

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

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

#第一部分,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状态页面

[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

 

--结束END--

本文标题: PHP优化详解

本文链接: https://lsjlt.com/news/5854.html(转载时请注明来源链接)

有问题或投稿请发送至: 邮箱/279061341@qq.com    QQ/279061341

猜你喜欢
  • PHP优化详解
    #;;;;;;;;;;;;;;;;; # Error logging ; #;;;;;;;;;;;;;;;;; expose_php = Off # 关闭php版本信息 display_error = Off # 屏幕不显示错误日志 ...
    99+
    2017-08-28
    PHP优化详解
  • PHP 性能优化:缓存机制详解
    php 缓存机制通过在内存中存储数据来提高网站性能,主要有三种类型:内存缓存(极快读取)、文件缓存(持久)、对象缓存(自定义序列化)。实战案例包括使用 apc 进行内存缓存、memcac...
    99+
    2024-05-10
    缓存 php redis
  • 详解Android性能优化之启动优化
    目录1、为什么要进行启动优化2、启动的分类2.1 冷启动2.2 热启动2.3 温启动3、优化方向4、启动时间的测量方式4.1 使用adb 命令方式(线下使用方便)4.2 手动打点方式...
    99+
    2024-04-02
  • Android性能优化之弱网优化详解
    目录弱网优化1、Serializable原理1.1 分析过程1.2 Serializable接口1.3 ObjectOutputStream1.4 序列化后二进制文件的一点解读1.5...
    99+
    2022-11-13
    Android 性能弱网优化 Android 弱网优化
  • 详解PHP优化巨量关键词的匹配
    目录问题由来原始 - grep设计代码进化 - 正则设计正则小坑代码觉醒 - 拆词设计代码结果终级 - Trie树trie树设计代码结果他径 - 多进程设计结果总结问题由来 前些天工...
    99+
    2024-04-02
  • 详解CocosCreator优化之DrawCall
    目录前言什么是 DrawCallDrawCall 是如何影响性能的呢?如何减少 DrawCall针对图片资源针对 Label必经之路–调整UI层级顺序总结前言 在游戏开发中,Draw...
    99+
    2024-04-02
  • MYSQL:SQL优化之Explain详解
    抛问题: Explain是什么? 目录 一、Explain 1.1 explain作用 1.2 explain列说明 id select_type table partiitons type select_type possible_k...
    99+
    2023-10-22
    mysql sql 数据库 面试
  • Android性能优化之Bitmap图片优化详解
    前言 在Android开发过程中,Bitmap往往会给开发者带来一些困扰,因为对Bitmap操作不慎,就容易造成OOM(Java.lang.OutofMemoryError -...
    99+
    2022-06-06
    bitmap 优化 Android
  • C++ 函数优化详解:优化原则和常见优化手法
    优化 c++++ 函数遵循原则:优化关键路径代码、关注热点函数、平衡性能与可读性。常见优化手法包括:内联函数消除函数调用开销;减少间接调用提高直接访问速度;优化循环提高效率;虚拟函数重写...
    99+
    2024-05-01
    优化 c++ 代码可读性
  • C++ 函数优化详解:如何优化调用栈?
    调用栈是函数调用的堆栈式记录,影响性能的主要因素包括上下文切换开销、栈溢出风险和缓存不命中。优化调用栈的技术包括减少调用深度、使用尾递归优化、使用内联函数、使用局部变量和使用智能指针。 ...
    99+
    2024-05-02
    c++ 函数优化
  • C++ 函数优化详解:如何优化元编程?
    元编程优化技巧:减少计算次数,避免不必要的计算。利用 sfinae 根据代码有效性进行选择,仅生成必要的代码。内联函数和类,消除函数调用开销。使用编译时 if constexprif 根...
    99+
    2024-05-04
    c++ 函数优化
  • MySQL索引优化Explain详解
    在日常工作中,我们会有时会开慢查询去记录一些执行时间比较久的SQL语句,找出这些SQL语句并不意味着完事了,些时我们常常用到explain这个命令来查看一个这些SQL语句的执行计划,查看该SQL语句有没有使用上了索引...
    99+
    2022-05-12
    MySQL索引优化 MySQL Explain
  • MySQL Group by的优化详解
    一个标准的 Group by 语句包含排序、分组、聚合函数,比如 select a,count(*) from t group by a ;  这个语句默认使用 a ...
    99+
    2022-05-15
    MySQL Group by MySQL Group by优化
  • Android Gradle同步优化详解
    目录背景方法论数据结构缓存最有意思但最难的问题动态修改gradle配置hook agp ProjectsServices方法签名检查是否存在support包总结背景 年初开始我们就开...
    99+
    2024-04-02
  • mysql 优化工具 EXPLAIN详解
    EXPLAIN 是 MySQL 中用于查看查询执行计划的关键字,通过 EXPLAIN 可以了解 MySQL 优化器是如何选择执行查询的。EXPLAIN 的输出信息包括了许多字段,其中一些关键的字段和类别如下: id: 查询的标识符...
    99+
    2024-01-21
    mysql 数据库
  • 解析Android开发优化之:对Bitmap的内存优化详解
    1) 要及时回收Bitmap的内存 Bitmap类有一个方法recycle(),从方法名可以看出意思是回收。这里就有疑问了,Android系统有自己的垃圾回收机制,可以不定期的...
    99+
    2022-06-06
    内存优化 bitmap android开发 优化 Android
  • C++ 函数优化详解:如何优化内存分配?
    优化 c++++ 内存分配:使用内存池: 预先分配特定大小的对象,减少创建和销毁开销。使用对象池: 存储已创建对象,便于重用,避免频繁分配。使用自定分配器: 优化标准库分配器的行为。避免...
    99+
    2024-05-03
    c++ 内存优化 标准库
  • C++ 函数优化详解:如何优化异常处理?
    c++++ 异常处理优化策略:避免抛出和捕获异常正确传播异常到更高层级使用 noexcept 规范声明不会抛出异常的函数只在需要时使用 try/catch 块使用异常规范指定函数可能抛出...
    99+
    2024-05-03
    c++ 函数优化
  • C++ 函数优化详解:如何优化模板代码?
    如何优化模板代码?内联展开:减少函数调用开销,提高性能。编译器优化:利用局部模板实例化、函数参数推导和内联常量。代码模板:提高代码可重用性,避免重复编写。避免不必要的类型转换:显式指定模...
    99+
    2024-05-01
    c++ 函数优化 隐式转换
  • C++ 函数优化详解:如何衡量优化效果?
    c++++ 函数优化效果衡量方法:使用性能分析工具生成执行时间报告。运行微基准测量特定函数或代码块的性能。分析函数算法复杂度以估计优化后提升。实战案例:优化斐波那契函数优化前:递归函数复...
    99+
    2024-05-02
    c++ 函数优化 linux
软考高级职称资格查询
编程网,编程工程师的家园,是目前国内优秀的开源技术社区之一,形成了由开源软件库、代码分享、资讯、协作翻译、讨论区和博客等几大频道内容,为IT开发者提供了一个发现、使用、并交流开源技术的平台。
  • 官方手机版

  • 微信公众号

  • 商务合作