php有哪些運行環境

王林
發布: 2023-02-26 08:54:01
原創
4031 人瀏覽過

php有哪些運行環境

1、nginx swoole

swoole是一個非同步、並行、高效能的網路通訊引擎,使用純C語言編寫,提供了php語言的異步多執行緒伺服器。 swoole內建了http/websocket伺服器端和客戶端,http2.0伺服器端,支援類似Go語言的協程,可以使用同步程式碼實現一步程式。

swoole採用I/O多路復用非同步阻塞的Reactor模型,採用多執行緒Reactor 多執行緒Worker實作非同步I/O。 Reactor基於Epoll,每個Reactor可以處理無數個連接請求,因而可以輕鬆處理高並發。

Nginx swoole模式下,nginx作為前端存取層轉送機,swoole作為應用程式伺服器建構高並發web服務。

2、nginx php-fpm

FastCGI是一個中立的技術標準,php-fpm是php語言的FastCGI進程管理器。

CGI的fork-and-execute模式有很多缺點,每接收一個請求就要fork一個進程處理,只能接收一個請求做出一個回應;每一個web請求PHP都必須重新解析php. ini文件,重新載入全部擴充並初始化全部資料結構。

FastCGI會事先啟動起來,解析php.ini文件,載入擴展,初始化資料結構都只會在啟動時完成,作為一個CGI管理伺服器存在,使用進程/線程池預先啟動一系列的子進程來等待處理。然後web伺服器寄過來請求,一旦FastCGI接收到請求就交給子進程處理,不需要在接收到請求後啟動CGI,會快很多。 Web伺服器透過一個socket長連線請求FastCGI進程管理器。

FastCGI進程像是常駐CGI,在請求到達時,FastCGI進程管理器選擇並連接一個PHP-CGI解釋器去接收web伺服器發送過來的環境變數和標準輸入,請求處理完成後將標準輸出或錯誤從相同連線傳回web伺服器,該PHP-CGI解釋器子進程等待處理來自FastCGI進程管理器的下一個連線。

3、apache mod_php

mod_php模式運行php,表示php是作為apache的一個模組來啟動。只有在apache啟動的時候會讀取php.ini設定檔並載入擴充模組,在apache運作期間是不會再去讀取和載入擴充模組的。 Apache出於穩定性和安全性考慮,通常使用預設的prefork模式運行php程式。在prefork模式下,一個單獨的控制進程負責產生子進程,這些子進程用於監聽請求並作出回應。

Apache總是試圖保持一些備用或空閒的子程序來迎接即將到來的請求,這樣客戶端就不需要在得到服務前等候子程序的產生。但是,一旦連線數多了,apache必須要產生更多的進程來回應請求,CPU對於進程的切換就很頻繁,很耗事件和資源,導致apache效能下降;同時,apache在同步阻塞I/O模型下,select遍歷多個連接句柄才能知道句柄是否有事件通知,因此效率非常低。

推薦教學:PHP影片教學

#

以上是php有哪些運行環境的詳細內容。更多資訊請關注PHP中文網其他相關文章!

相關標籤:
來源:php.cn
本網站聲明
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn
熱門教學
更多>
最新下載
更多>
網站特效
網站源碼
網站素材
前端模板
關於我們 免責聲明 Sitemap
PHP中文網:公益線上PHP培訓,幫助PHP學習者快速成長!