首頁 後端開發 php教程 php-fpm(PHP-FPM是一个PHPFastCGI管理器)

php-fpm(PHP-FPM是一个PHPFastCGI管理器)

Jun 23, 2016 pm 01:55 PM
php-fpm 管理器

简介

PHP-FPM其实是PHP源代码的一个补丁,旨在将FastCGI进程管理整合进PHP包中。必须将它patch到你的PHP源代码中,在编译安装PHP后才可以使用。

现在我们可以在最新的PHP 5.3.2的源码树里下载得到直接整合了PHP-FPM的分支,据说下个版本会融合进PHP的主分支去。相对Spawn-FCGI,PHP-FPM在CPU和内存方面的控制都更胜一筹,而且前者很容易崩溃,必须用crontab进行监控,而PHP-FPM则没有这种烦恼。

PHP5.3.3已经集成 php-fpm了,不再是第三方的包了。PHP-FPM提供了更好的PHP 进程管理方式,可以有效控制 内存和 进程、可以平滑 重载PHP配置,比spawn-fcgi具有更多优点,所以被PHP官方收录了。在./configure的时候带 ?enable-fpm参数即可开启PHP-FPM。

使用PHP-FPM来控制PHP-CGI的FastCGI进程

/usr/local/ php/sbin/ php-fpm{start|stop|quit|restart|reload| logrotate}

--start 启动 php的 fastcgi进程

--stop 强制终止 php的 fastcgi进程

--quit 平滑终止 php的 fastcgi进程

--restart 重启 php的 fastcgi进程

--reload 重新平滑加载 php的 php.ini

--logrotate 重新启用log文件

特色功能

所有这些特性都是“不打断”的方式实现的。也就是说,如果你不使用它们,它们的存在不会影响 php的功能性??他们都是“透明”的。

Error header

范围: php.ini 选项

分类:便利性

默认情况下,如果被访问的 php脚本包含语法错误,用户会收到一个空的“200 ok”页。这是不方便的。Error header 这个 php.ini 选项允许在这种情况下产生一个 HTTP 错误码,比如“HTTP/1.0 550 Server Made Big Boo”,从而中断web server请求并显示一个正确的错误页。

如果要实现这样的功能,需要在 php.ini 中添加一条 fastcgi.error_header = "HTTP/1.0 550 Server Made Big Boo"

在 php-5.2.4 中添加了类似,但不相同的功能:如果被访问的php脚本包含语法错误,并且 display_errors = off,会立刻返回“HTTP/1.0 500 Internal Server Error”。

如果你需要设定一个 503 错误,或者想要使这个行为独立于 display_errors 的设置,那么可以使用 fastcgi.error_header。如果你在 php-5.2.5 或以上版本上启用 php-fpm,那么 fastcgi.error_header的优先级更高。

优化的上传支持

实质:web server 支持

类型:优化

这个特性正如名字那样,可以加速对大 POST 请求的处理速度,包括文件上传。优化是通过将请求体已写入一个临时文件,然后 fastcgi协议传递文件名而不是请求体到来实现的。目前就我所知,只有 nginx0.5.9 以上才支持这个功能。显然,这种模式只在 php和 web server 在一台机器上的时候才能用。

nginx 样例配置:

location ~ \. php$ {

fastcgi_pass_request_body off;

client_body_in_file_only clean;

fastcgi_param REQUEST_BODY_FILE $request_body_file;

...

fastcgi_pass ...;

}

在 php中不需要配置任何东西。如果 php收到了参数REQUEST_BODY_FILE,就读取其中的请求体,如果没有,就自行从 fastcgi协议中读取请求体。

结合这个特性,可以考虑对 临时文件使用内存文件系统,例如tmpfs(linux):

client_body_temp_path /dev/shm/client_body_temp;

fastcgi_finish_request()

范围: php函数

类型:优化

这个特性可以提高一些 php请求的处理速度。如果有些处理可以在页面生成完后进行,就可以使用这种优化。比如,在 memcached 中保存 session 就可以在页面交给 web server 后进行。 fastcgi_finisth_request() ,这一特性可以结束响应输出,web server 可以立即开始交给等不及的客户端,而此刻, php可以在请求的上下文环境中处理许多事情。比如保存session,转换上传的视频,处理统计等等。

fastcgi_finisth_request() 会触发 shutdown 函数运行。

request_slowlog_timeout

范围: php-fpm.conf 选项

分类: 方便

这个选项能让你跟踪执行缓慢的脚本并把他们连同调用栈一起记录再日志文件中。例如如下设置:

5s

logs/slow.log

正如你再例子中看到的,脚本运行了 5 秒以上,并很可能是由于 mysql 响应慢造成的(top backtrace)。


本網站聲明
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn

熱AI工具

Undresser.AI Undress

Undresser.AI Undress

人工智慧驅動的應用程序,用於創建逼真的裸體照片

AI Clothes Remover

AI Clothes Remover

用於從照片中去除衣服的線上人工智慧工具。

Undress AI Tool

Undress AI Tool

免費脫衣圖片

Clothoff.io

Clothoff.io

AI脫衣器

Video Face Swap

Video Face Swap

使用我們完全免費的人工智慧換臉工具,輕鬆在任何影片中換臉!

熱工具

記事本++7.3.1

記事本++7.3.1

好用且免費的程式碼編輯器

SublimeText3漢化版

SublimeText3漢化版

中文版,非常好用

禪工作室 13.0.1

禪工作室 13.0.1

強大的PHP整合開發環境

Dreamweaver CS6

Dreamweaver CS6

視覺化網頁開發工具

SublimeText3 Mac版

SublimeText3 Mac版

神級程式碼編輯軟體(SublimeText3)

熱門話題

Java教學
1655
14
CakePHP 教程
1413
52
Laravel 教程
1306
25
PHP教程
1252
29
C# 教程
1226
24
如何在 Windows 11 上清理重複的磁碟機號 如何在 Windows 11 上清理重複的磁碟機號 Sep 26, 2023 pm 11:33 PM

雖然Windows11仍然是上一次迭代的重大升級,但有些問題似乎沒有得到Microsoft的完善。一個常見的問題是Windows11中的重複磁碟機號,即同一磁碟機列出兩次,您需要刪除多餘的條目。例如,它將列在「這台電腦」下,然後在導覽窗格中再次列出為可移動磁碟機。雖然這不會轉化為儲存空間消耗的增加,但這肯定會使Windows資源管理器混亂。為什麼我的驅動器在Windows11中顯示兩次?預設情況下,Windows在導覽窗格中顯示外部磁碟機兩次。這就是它的發展方式。但是,衝突的驅動器號或損壞的系

Windows 11中的功能存取管理器服務的高CPU使用率 Windows 11中的功能存取管理器服務的高CPU使用率 Feb 19, 2024 pm 03:06 PM

一些PC使用者和遊戲玩家在使用Windows11或Windows10時,可能會遇到CPU使用率異常高的問題,尤其在執行某些應用程式或遊戲時。這篇文章提供了一些建議,幫助使用者緩解這個問題。一些受影響的PC用戶指出,在遇到這個問題時,他們觀察到任務管理器顯示其他應用程式僅使用0%至5%的CPU,而服務主機:能力存取管理器服務的使用率卻高達80 %至100%。什麼是服務主機:功能存取管理器服務?功能存取管理器服務的作用是確認應用程式是否有權限存取攝影機和麥克風,並授權必要權限。它方便管理UWP應用程式對功

如何使用php-fpm進行高效能調優 如何使用php-fpm進行高效能調優 Jul 08, 2023 am 11:30 AM

如何使用php-fpm進行高效能調優PHP是一種非常流行的伺服器端腳本語言,廣泛用於開發網頁應用程式和動態網站。然而,隨著訪問量的增加,PHP應用程式的效能可能會受到影響。為了解決這個問題,我們可以使用php-fpm(FastCGIProcessManager)來進行高效能調優。本文將介紹如何使用php-fpm來提升PHP應用程式的效能,並提供程式碼範例。一、

了解您的電腦是否有Windows 11中的神經處理單元(NPU) 了解您的電腦是否有Windows 11中的神經處理單元(NPU) Mar 16, 2024 pm 06:34 PM

NPU是神經處理單元的縮寫,是一種專門用於執行機器學習演算法等計算的處理器。簡單來說,它是專門設計用於加速與人工智慧相關任務的處理器。本文將介紹如何檢查Windows11PC是否配備有神經處理單元(NPU)。了解您的電腦是否有Windows11中的神經處理單元(NPU)以下方法將幫助您確定您的PC是否在Windows11中安裝了神經處理單元(NPU)。透過任務管理器透過裝置管理員透過造訪官方網站下面,我們已經詳細解釋了所有這些方法。 1]使用任務管理器檢查您的PC是否有NPUWindows11PC上

如何使用PHP-FPM優化來提升PrestaShop應用程式的效能 如何使用PHP-FPM優化來提升PrestaShop應用程式的效能 Oct 05, 2023 pm 12:33 PM

如何使用PHP-FPM優化來提高PrestaShop應用程式的效能隨著電子商務產業的快速發展,PrestaShop成為了許多商家選擇的電子商務平台。然而,隨著商店規模的擴大和訪問量的增加,PrestaShop應用程式可能會遇到效能瓶頸。為了提高PrestaShop應用的效能,常見的方法是使用PHP-FPM來最佳化和改善應用的處理能力。 PHP-FPM(FastCGI

如何在 Windows 11 上隱藏和取消隱藏資料夾 [3 種方式] 如何在 Windows 11 上隱藏和取消隱藏資料夾 [3 種方式] Sep 23, 2023 am 08:37 AM

隱藏資料夾是保持桌面井井有條的好方法。也許您想讓您的個人文件或一些客戶詳細資料遠離窺探。不管是什麼,在必要時將它們收起來並取消隱藏的能力是一個很大的節省。簡而言之,這些隱藏檔案不會顯示在主選單中,但它們仍然可以存取。這非常簡單,不應該花費您太多時間。如何在Windows11中隱藏資料夾? 1.使用檔案總管打+鍵開啟檔案總管。 WindowsE找到要隱藏的資料夾,右鍵點選它,然後選擇屬性。導覽至常規選項卡,選取隱藏框,按一下應用,然後按一下確定。在下一個對話方塊中,選取將變更套用至此資料夾,子文

如何使用PHP-FPM最佳化提升WooCommerce應用的效能 如何使用PHP-FPM最佳化提升WooCommerce應用的效能 Oct 05, 2023 am 08:24 AM

如何使用PHP-FPM優化提高WooCommerce應用的效能概述WooCommerce是一個非常流行的電子商務插件,用於在WordPress網站上建立和管理線上商店。然而,隨著商店的成長和流量的增加,WooCommerce應用可能會變得緩慢且不穩定。為了解決這個問題,我們可以使用PHP-FPM來優化和提升WooCommerce應用的效能。什麼是PHP-FP

realtek高清晰音訊管理器如何設定麥克風 realtek高清晰音訊管理器如何設定麥克風 Jan 02, 2024 am 09:33 AM

win10系統是一款可以進行各種設定與調節的系統,今天小編為大家帶來的就是realtek高清晰音訊管理器怎麼設定麥克風的解決方法!有興趣的話就快來看看。 realtek高清晰音訊管理器怎麼設定麥克風:1、在桌面左下角的顯示隱藏圖示中找到「realtek高清晰音訊管理員」圖示。 2.點擊進入介面中,首先看到的是“揚聲器頁面”,這個介面可以透過喇叭組態調整喇叭的聲音。 3.接著是音效,你可以選擇自己想要的音效的環境以及「均衡器,流行、搖滾、俱樂部」等等。 4.接著是室內矯正音質,室內空間矯正只能夠矯正“

See all articles