您好,登錄后才能下訂單哦!
這篇文章主要介紹了Hyperf中PHP-FPM和Cli有什么區別,具有一定借鑒價值,感興趣的朋友可以參考下,希望大家閱讀完這篇文章之后大有收獲,下面讓小編帶著大家一起了解一下。
Hyperf的官方介紹:
Hyperf 是基于 Swoole 4.5+ 實現的高性能、高靈活性的 PHP 協程框架,內置協程服務器及大量常用的組件,性能較傳統基于 PHP-FPM 的框架有質的提升,提供超高性能的同時,也保持著極其靈活的可擴展性,標準組件均基于 PSR 標準 實現,基于強大的依賴注入設計,保證了絕大部分組件或類都是 可替換 與 可復用 的。
Hyperf 是命令行Cli模式運行,PHP-FPM模式就是我們常用的模式,其中ThinkPHP,Laravle,Ci等框架都是此種模式,最新版的TP和Laravle也支持了Cli模式!
兩種模式最大區別就是:
PHP-FPM是:每次響應請求,都要從入口文件開始初始化框架,經過路由轉發到控制器執行得到結果并返回響應!
Cli是:啟動框架之后,框架會常駐內存,啟動一次他會注冊服務到系統,監聽我們的web端口(80或者9501等可以自定義端口),然后每次響應請求都不需要在加載框架的文件,直接路由識別到控制器給你執行邏輯代碼返回結果!
所以Hyperf框架的性能是遠高于TP等傳統框架的。一個只需要加載一次,他就一直在樓下等你。一個是你每次找他,他每次加載一次從樓上下來見你。
Hyperf環境要求:
Hyperf僅可運行于 Linux 和 Mac 環境下,也就是說我們的Windos電腦不支持,但是在Windows下可以使用Docker for Windows 來作為運行環境。
運行環境的要求:
PHP >= 7.3
Swoole PHP 擴展 >= 4.5,并關閉了 Short Name
OpenSSL PHP 擴展
JSON PHP 擴展
PDO PHP 擴展 (如需要使用到 MySQL 客戶端)
Redis PHP 擴展 (如需要使用到 Redis 客戶端)
Protobuf PHP 擴展 (如需要使用到 gRPC 服務端或客戶端)
Hyperf的安裝:
需要使用composer,如果您的composer是用的是國外鏡像,那就非常慢,這里分享一個速度很快的鏡像地址:
composer鏡像地址
composer config -g repo.packagist composer https://mirrors.aliyun.com/composer
Hyperf的安裝composer命令
在安裝過程中有一系列的詢問,直接回車跳過即可,他都是問你是否安裝各種組件,我們都可以跳過,以后需要用什么在根據文檔的命令安裝即可!
composer create-project hyperf/hyperf-skeleton
至此Hyperf框架就安裝結束了,但是這里還有一個坑需要注意,必須關閉swoole的Short Name!
在extension = swoole.so下面加上swoole.use_shortname = off 即可,示例如下:
[swoole] extension = swoole.so swoole.use_shortname = off
啟動項目:
啟動項目需要在框架根目錄中找到bin目錄,里面有一個 hyperf.php 文件
在框架bin目錄下執行命令:
php hyperf.php start
若在框架根目錄就需要帶bin路徑:
php bin/hyperf.php start
由于 Hyperf 是持久化的 CLI 框架,當您修改完您的代碼后,通過 CTRL + C 終止當前啟動的進程實例,并重新執行 php bin/hyperf.php start 啟動命令即可。
端口被占用怎么辦?
若是啟動過之后,后面在此啟動發現端口被占用,那就查詢一下端口進程id,殺死進程就可以再次啟動!
netstat -tunlp | grep 9501
tcp 0 0 0.0.0.0:9501 0.0.0.0:* LISTEN 15893/skeleton.Mast
kill 15893
netstat -tunlp | grep 9501 是查詢9501端口的進程
kill 15893 是殺死15893進程
框架啟動之后測試訪問:http://ip:端口
假設服務器Ip是:47.33.112.136
假設端口是:9501
那么訪問地址就是:http://47.33.112.136:9501
到此,我們就把框架的安裝,啟動,訪問完成了!
感謝你能夠認真閱讀完這篇文章,希望小編分享的“Hyperf中PHP-FPM和Cli有什么區別”這篇文章對大家有幫助,同時也希望大家多多支持億速云,關注億速云行業資訊頻道,更多相關知識等著你來學習!
免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。