這篇文章主要介紹了Hyperf中PHP-FPM和Cli有什么區(qū)別,具有一定借鑒價(jià)值,感興趣的朋友可以參考下,希望大家閱讀完這篇文章之后大有收獲,下面讓小編帶著大家一起了解一下。
成都創(chuàng)新互聯(lián)公司專注于企業(yè)成都營(yíng)銷網(wǎng)站建設(shè)、網(wǎng)站重做改版、華寧網(wǎng)站定制設(shè)計(jì)、自適應(yīng)品牌網(wǎng)站建設(shè)、HTML5建站、成都商城網(wǎng)站開(kāi)發(fā)、集團(tuán)公司官網(wǎng)建設(shè)、成都外貿(mào)網(wǎng)站建設(shè)公司、高端網(wǎng)站制作、響應(yīng)式網(wǎng)頁(yè)設(shè)計(jì)等建站業(yè)務(wù),價(jià)格優(yōu)惠性價(jià)比高,為華寧等各大城市提供網(wǎng)站開(kāi)發(fā)制作服務(wù)。
Hyperf的官方介紹:
Hyperf 是基于 Swoole 4.5+ 實(shí)現(xiàn)的高性能、高靈活性的 PHP 協(xié)程框架,內(nèi)置協(xié)程服務(wù)器及大量常用的組件,性能較傳統(tǒng)基于 PHP-FPM 的框架有質(zhì)的提升,提供超高性能的同時(shí),也保持著極其靈活的可擴(kuò)展性,標(biāo)準(zhǔn)組件均基于 PSR 標(biāo)準(zhǔn) 實(shí)現(xiàn),基于強(qiáng)大的依賴注入設(shè)計(jì),保證了絕大部分組件或類都是 可替換 與 可復(fù)用 的。
Hyperf 是命令行Cli模式運(yùn)行,PHP-FPM模式就是我們常用的模式,其中ThinkPHP,Laravle,Ci等框架都是此種模式,最新版的TP和Laravle也支持了Cli模式!
兩種模式最大區(qū)別就是:
PHP-FPM是:每次響應(yīng)請(qǐng)求,都要從入口文件開(kāi)始初始化框架,經(jīng)過(guò)路由轉(zhuǎn)發(fā)到控制器執(zhí)行得到結(jié)果并返回響應(yīng)!
Cli是:?jiǎn)?dòng)框架之后,框架會(huì)常駐內(nèi)存,啟動(dòng)一次他會(huì)注冊(cè)服務(wù)到系統(tǒng),監(jiān)聽(tīng)我們的web端口(80或者9501等可以自定義端口),然后每次響應(yīng)請(qǐng)求都不需要在加載框架的文件,直接路由識(shí)別到控制器給你執(zhí)行邏輯代碼返回結(jié)果!
所以Hyperf框架的性能是遠(yuǎn)高于TP等傳統(tǒng)框架的。一個(gè)只需要加載一次,他就一直在樓下等你。一個(gè)是你每次找他,他每次加載一次從樓上下來(lái)見(jiàn)你。
Hyperf環(huán)境要求:
Hyperf僅可運(yùn)行于 Linux 和 Mac 環(huán)境下,也就是說(shuō)我們的Windos電腦不支持,但是在Windows下可以使用Docker for Windows 來(lái)作為運(yùn)行環(huán)境。
運(yùn)行環(huán)境的要求:
PHP >= 7.3
Swoole PHP 擴(kuò)展 >= 4.5,并關(guān)閉了 Short Name
OpenSSL PHP 擴(kuò)展
JSON PHP 擴(kuò)展
PDO PHP 擴(kuò)展 (如需要使用到 MySQL 客戶端)
redis PHP 擴(kuò)展 (如需要使用到 Redis 客戶端)
Protobuf PHP 擴(kuò)展 (如需要使用到 gRPC 服務(wù)端或客戶端)
Hyperf的安裝:
需要使用composer,如果您的composer是用的是國(guó)外鏡像,那就非常慢,這里分享一個(gè)速度很快的鏡像地址:
composer鏡像地址
composer config -g repo.packagist composer https://mirrors.aliyun.com/composer
Hyperf的安裝composer命令
在安裝過(guò)程中有一系列的詢問(wèn),直接回車跳過(guò)即可,他都是問(wèn)你是否安裝各種組件,我們都可以跳過(guò),以后需要用什么在根據(jù)文檔的命令安裝即可!
composer create-project hyperf/hyperf-skeleton
至此Hyperf框架就安裝結(jié)束了,但是這里還有一個(gè)坑需要注意,必須關(guān)閉swoole的Short Name!
在extension = swoole.so下面加上swoole.use_shortname = off 即可,示例如下:
[swoole] extension = swoole.so swoole.use_shortname = off
啟動(dòng)項(xiàng)目:
啟動(dòng)項(xiàng)目需要在框架根目錄中找到bin目錄,里面有一個(gè) hyperf.php 文件
在框架bin目錄下執(zhí)行命令:
php hyperf.php start
若在框架根目錄就需要帶bin路徑:
php bin/hyperf.php start
由于 Hyperf 是持久化的 CLI 框架,當(dāng)您修改完您的代碼后,通過(guò) CTRL + C 終止當(dāng)前啟動(dòng)的進(jìn)程實(shí)例,并重新執(zhí)行 php bin/hyperf.php start 啟動(dòng)命令即可。
端口被占用怎么辦?
若是啟動(dòng)過(guò)之后,后面在此啟動(dòng)發(fā)現(xiàn)端口被占用,那就查詢一下端口進(jìn)程id,殺死進(jìn)程就可以再次啟動(dòng)!
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端口的進(jìn)程
kill 15893 是殺死15893進(jìn)程
框架啟動(dòng)之后測(cè)試訪問(wèn):http://ip:端口
假設(shè)服務(wù)器Ip是:47.33.112.136
假設(shè)端口是:9501
那么訪問(wèn)地址就是:http://47.33.112.136:9501
到此,我們就把框架的安裝,啟動(dòng),訪問(wèn)完成了!
感謝你能夠認(rèn)真閱讀完這篇文章,希望小編分享的“Hyperf中PHP-FPM和Cli有什么區(qū)別”這篇文章對(duì)大家有幫助,同時(shí)也希望大家多多支持創(chuàng)新互聯(lián),關(guān)注創(chuàng)新互聯(lián)行業(yè)資訊頻道,更多相關(guān)知識(shí)等著你來(lái)學(xué)習(xí)!