为高性能优化 PHP-FPM PHP优质外文翻译 PHP 技术论坛
原文链接:https://learnku.com/php/t/34358 摘要:PHP是无处不在的,可以说是互联网 Web 应用上使用最广泛的语言。 然而,它的高性能并不为人所知,尤其是在涉及到高并发系统时。这就是为什么对于这样特殊的用例,正在被 Node (是的,我知道,它不是一种语言)、Go 和... 微信登录 为高性能优化 PHP-FPM PHP 是无处不在的,可以说是互联网 Web 应用上使用最广泛的语言。 然而,它的高性能并不为人所知,尤其是在涉及到高并发系统时。这就是为什么对于这样特殊的用例,正在被 Node (是的,我知道,它不是一种语言)、Go 和 Elixir 等语言接管。 也就是说,您可以做很多事情来改进服务器上的 PHP 性能。本文主要关注 php-fpm 方面的内容,如果您使用 Nginx,这是在服务器上的默认配置。 如果你知道 php-fpm 是什么,请直接跳到优化部分。 什么是 php-fpm? 许多开发人员对 DevOps 方面的知识不太感兴趣,即使是那些对此感兴趣的开发人员,也极少有人知道它的底层原理。有趣的是,当浏览器发送一个请求到运行 PHP 的服务器上时,PHP 也不是最先进行处理请求的服务;而是,HTTP 服务器,Apache 和 Nginx 是其中最主要的两个。「web 服务器」决定如何与 PHP 进行通信,然后传递请求的类型,数据和头部信息到 PHP 进程。 上图是 PHP 项目的请求 - 响应生命周期(图片来源: ProinerTech) 在现代 PHP 应用中,「find file」部分即为 index.php 文件,它是在服务器配置文件中配置的用于处理所有请求的代理。 如今,Web 服务器究竟如何连接 PHP 正在进化,如果我们要深入研究所有细节,这篇文章的长度将激增。但粗略来说,在 Apache 作为 Web 服务器首选的时间段,PHP 是作为包含在服务器内部的模块。 所以每当一个请求被接收,服务器将开启一个新的进程,它将自动包含 PHP 和执行请求。这个方法被称作 mod_php ,“PHP 作为一个模块” 的缩写。这种方法有其局限性,而 Nginx 和 php-fpm 克服了它。 ...