热门标签 | HotTags
当前位置:  开发笔记 > 编程语言 > 正文

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

这篇文章主要介绍了Hyperf中PHP-FPM和Cli有什么区别,具有一定借鉴价值,感兴趣的朋友可以参考下,希望大家阅读完这篇文章之后大有收获,下面让小

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


推荐阅读
  • Skywalking系列博客1安装单机版 Skywalking的快速安装方法
    本文介绍了如何快速安装单机版的Skywalking,包括下载、环境需求和端口检查等步骤。同时提供了百度盘下载地址和查询端口是否被占用的命令。 ... [详细]
  • 知识图谱——机器大脑中的知识库
    本文介绍了知识图谱在机器大脑中的应用,以及搜索引擎在知识图谱方面的发展。以谷歌知识图谱为例,说明了知识图谱的智能化特点。通过搜索引擎用户可以获取更加智能化的答案,如搜索关键词"Marie Curie",会得到居里夫人的详细信息以及与之相关的历史人物。知识图谱的出现引起了搜索引擎行业的变革,不仅美国的微软必应,中国的百度、搜狗等搜索引擎公司也纷纷推出了自己的知识图谱。 ... [详细]
  • 本文介绍了在Mac上搭建php环境后无法使用localhost连接mysql的问题,并通过将localhost替换为127.0.0.1或本机IP解决了该问题。文章解释了localhost和127.0.0.1的区别,指出了使用socket方式连接导致连接失败的原因。此外,还提供了相关链接供读者深入了解。 ... [详细]
  • Webmin远程命令执行漏洞复现及防护方法
    本文介绍了Webmin远程命令执行漏洞CVE-2019-15107的漏洞详情和复现方法,同时提供了防护方法。漏洞存在于Webmin的找回密码页面中,攻击者无需权限即可注入命令并执行任意系统命令。文章还提供了相关参考链接和搭建靶场的步骤。此外,还指出了参考链接中的数据包不准确的问题,并解释了漏洞触发的条件。最后,给出了防护方法以避免受到该漏洞的攻击。 ... [详细]
  • 本文介绍了Linux系统中正则表达式的基础知识,包括正则表达式的简介、字符分类、普通字符和元字符的区别,以及在学习过程中需要注意的事项。同时提醒读者要注意正则表达式与通配符的区别,并给出了使用正则表达式时的一些建议。本文适合初学者了解Linux系统中的正则表达式,并提供了学习的参考资料。 ... [详细]
  • 本文介绍了在Windows环境下如何配置php+apache环境,包括下载php7和apache2.4、安装vc2015运行时环境、启动php7和apache2.4等步骤。希望对需要搭建php7环境的读者有一定的参考价值。摘要长度为169字。 ... [详细]
  • 面试经验分享:华为面试四轮电话面试、一轮笔试、一轮主管视频面试、一轮hr视频面试
    最近有朋友去华为面试,面试经历包括四轮电话面试、一轮笔试、一轮主管视频面试、一轮hr视频面试。80%的人都在第一轮电话面试中失败,因为缺乏基础知识。面试问题涉及 ... [详细]
  • 负载均衡_Nginx反向代理动静分离负载均衡及rewrite隐藏路径详解(Nginx Apache MySQL Redis)–第二部分
    nginx反向代理、动静分离、负载均衡及rewrite隐藏路径详解 ... [详细]
  • 第四讲ApacheLAMP服务器基本配置Apache的编译安装从Apache的官方网站下载源码包:http:httpd.apache.orgdownload.cgi今 ... [详细]
  • 进入配置文件目录:[rootlinuxidcresin-4.0.]#cdusrlocalresinconf查看都有哪些配置文件:[rootlinuxid ... [详细]
  • http头_http头部注入
    1、http头部注入分析1、原理 ... [详细]
  • 如何使用Java获取服务器硬件信息和磁盘负载率
    本文介绍了使用Java编程语言获取服务器硬件信息和磁盘负载率的方法。首先在远程服务器上搭建一个支持服务端语言的HTTP服务,并获取服务器的磁盘信息,并将结果输出。然后在本地使用JS编写一个AJAX脚本,远程请求服务端的程序,得到结果并展示给用户。其中还介绍了如何提取硬盘序列号的方法。 ... [详细]
  • flowable工作流 流程变量_信也科技工作流平台的技术实践
    1背景随着公司业务发展及内部业务流程诉求的增长,目前信息化系统不能够很好满足期望,主要体现如下:目前OA流程引擎无法满足企业特定业务流程需求,且移动端体 ... [详细]
  • 浅解XXE与Portswigger Web Sec
    XXE与PortswiggerWebSec​相关链接:​博客园​安全脉搏​FreeBuf​XML的全称为XML外部实体注入,在学习的过程中发现有回显的XXE并不多,而 ... [详细]
  • zuul 路由不生效_Zuul网关到底有何牛逼之处?竟然这么多人在用~
    作者:kosamino来源:cnblogs.comjing99p11696192.html哈喽,各位新来的小伙伴们,大家好& ... [详细]
author-avatar
龙龙玖号_367
这个家伙很懒,什么也没留下!
PHP1.CN | 中国最专业的PHP中文社区 | DevBox开发工具箱 | json解析格式化 |PHP资讯 | PHP教程 | 数据库技术 | 服务器技术 | 前端开发技术 | PHP框架 | 开发工具 | 在线工具
Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved | 京公网安备 11010802041100号 | 京ICP备19059560号-4 | PHP1.CN 第一PHP社区 版权所有