温馨提示×

温馨提示×

您好,登录后才能下订单哦!

密码登录×
登录注册×
其他方式登录
点击 登录注册 即表示同意《亿速云用户服务条款》

Hyperf中PHP-FPM和Cli有什么区别

发布时间:2021-02-23 14:13:53 来源:亿速云 阅读:808 作者:小新 栏目:编程语言

这篇文章主要介绍了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有什么区别”这篇文章对大家有帮助,同时也希望大家多多支持亿速云,关注亿速云行业资讯频道,更多相关知识等着你来学习!

向AI问一下细节

免责声明:本站发布的内容(图片、视频和文字)以原创、转载和分享为主,文章观点不代表本网站立场,如果涉及侵权请联系站长邮箱:is@yisu.com进行举报,并提供相关证据,一经查实,将立刻删除涉嫌侵权内容。

AI