您现在的位置是:群英 > 开发技术 > PHP语言
怎么配置php.ini?PHP性能调优的方法是什么?
Admin发表于 2022-07-26 17:44:52611 次浏览
这篇文章主要给大家介绍“怎么配置php.ini?PHP性能调优的方法是什么?”的相关知识,下文通过实际案例向大家展示操作过程,内容简单清晰,易于学习,有这方面学习需要的朋友可以参考,希望这篇“怎么配置php.ini?PHP性能调优的方法是什么?”文章能对大家有所帮助。

如何进行PHP性能调优?下面本篇文章给大家介绍一些配置php.ini的方法,看看怎样才是PHP性能最大优化?希望对大家有所帮助!

用于生产环境中的PHP需要对其进行优化,让PHP自身发挥更好的性能,除了写好PHP代码,还要配置好php.ini。下面我们就从内存、文件上传、会话缓冲输出、真实路径缓存这几个方面讲解php.ini的配置调优。

内存

默认设置

memory_limit = 128M

单个进程可使用的内存最大值,这个值的设定可以从以下几点考虑:

  • 应用的类型。如果是内存集中型应用,可增加该值;

  • 单个 PHP 进程平均消耗的内存,该值可通过多次运行同一个脚本来计算平均值;

  • 能负担多少个 php-fpm 进程;该值等于分配的总内存除以单个 PHP 进程平均消耗的内存

文件上传

默认设置

file_uploads = On
max_file_uploads = 20
upload_max_filesize = 2M
max_execution_time = 30 值 为 0 代表没有限制
  • 设置max_file_uploads来决定同时允许多少个文件上传;

  • 设置upload_max_filesize来决定每个文件上传的最大值;

  • 如果是长时间任务,尽量使用队列来处理,因此,可适当缩短max_execution_time的值;

注意, Web 服务器也可以设置文件上传大小及超时时间,不能仅仅以 php.ini 的设置为准;

会话

PHP 的会话默认是保存在硬盘中

session.save_handler = files

在实际应用中,应当将会话保存在内存中。可使用 Memcached 或者 Redis。这样做主要有两个好处:

  • 提高速度;

  • 有助于后期的扩展,如果会话数据存储在硬盘中,不便于增加额外的服务器,如果把会话数据存放在 Memcached 或 Redis 里,任何一台分布式 PHP-FPM 服务器都能访问会话数据。

可通过 PECL 安装memcached扩展并设置默认的save_handler为memcached

session.save_handler = 'memcached'
session.save_path = '127.0.0.1:11211'

缓冲输出

默认值

output_buffering = 4096

在较少的片段中把内容传递给访问者的浏览器,能减少 HTTP 请求总数。因此,我们要让 PHP 缓冲输出,默认情况下,PHP 已经启用了输出缓冲功能,PHP 缓冲 4096 字节的输出之后才会把内容发送给 Web 服务器。

注:如果想要修改输出缓冲区的大小,确保使用的值是 4(32 位系统)或 8(64 位系统)的倍数。

真实路径缓存

默认值

realpath_cache_size = 4M
realpath_cache_ttl = 120

PHP 会缓存应用使用的文件路径,这样每次包含或导入文件时就无需不断搜索包含路径了,这个缓存叫真实路径缓存(realpath cache),如果运行的是大型的 PHP 文件(如 Composer 组件),使用了大量文件,增加 PHP 真实路径缓存的大小能得到更好的性能。



关于“怎么配置php.ini?PHP性能调优的方法是什么?”的内容就介绍到这,感谢各位的阅读,相信大家对怎么配置php.ini?PHP性能调优的方法是什么?已经有了进一步的了解。大家如果还想学习更多知识,欢迎关注群英网络,小编将为大家输出更多高质量的实用文章!

免责声明:本站发布的内容(图片、视频和文字)以原创、转载和分享为主,文章观点不代表本网站立场,如果涉及侵权请联系站长邮箱:mmqy2019@163.com进行举报,并提供相关证据,查实之后,将立刻删除涉嫌侵权内容。

标签: php.ini
相关信息推荐
2022-11-19 17:50:32 
摘要:watch函数与watchEffect函数都是监听器,在写法和用法上有一定区别,是同一功能的两种不同形态,底层都是一样的。
2022-05-31 17:49:01 
摘要:java中get请求乱码办法:1、使用【java.net.URLDecoder】中的【decode("变量","UTF-8")】解码;解决2、使用【java.net.URLEncoder】中的【encode("中文","UTF-8"】转码。
2022-09-06 17:50:51 
摘要:怎么利用Object()函数创建对象?下面本篇文章给大家介绍一下Object()构造函数创建对象的方法(附其他三种创建对象的方法),希望对大家有所帮助!
群英网络助力开启安全的云计算之旅
立即注册,领取新人大礼包
  • 联系我们
  • 24小时售后:4006784567
  • 24小时TEL :0668-2555666
  • 售前咨询TEL:400-678-4567

  • 官方微信

    官方微信
Copyright  ©  QY  Network  Company  Ltd. All  Rights  Reserved. 2003-2019  群英网络  版权所有   茂名市群英网络有限公司
增值电信经营许可证 : B1.B2-20140078   粤ICP备09006778号
免费拨打  400-678-4567
免费拨打  400-678-4567 免费拨打 400-678-4567 或 0668-2555555
微信公众号
返回顶部
返回顶部 返回顶部