添加链接
link之家
链接快照平台
  • 输入网页链接,自动生成快照
  • 标签化管理网页链接
WIN10 Docker 环境下安装Hyperf,高性能PHP协程框架

WIN10 Docker 环境下安装Hyperf,高性能PHP协程框架

最近换了一份工作,接触到了有关PHP的容器和协程技术,真是有点意思,之前一直觉得PHP已经穷途末路了,所以一直在搞Python,现在才发现PHP原来真的这么强大而且简单实用。自己虽然不是很熟悉这些东西但是却非常感兴趣。安装了解花了几天时间,现在总结一下吧,纯新手总结,如有错误请多谅解并渴望指出。

网上也没有找到类似的安装教程,先说说我对Hyperf这个框架的理解吧,Hyperf这个框架有点像很多东西都非常像Laeavel,从两个文档里面可以看出来,当然Laeavel我也不是很熟悉,我只会TP框架,Laeavel只看过一部分的文档,和TP框架最大的不同是Laeavel的路由和composer这两块。Laeavel更加安全,TP更为简单,到了Hyperf框架我觉得这里性能和复杂性远超了这两个框架,Hyperf是一个基于Swoole协程的框架,Swoole是C++写的,最初在我的印象中协程这个词是在Go语言里面的,因为Go语言的协程效率和性能非常高把Go语言推向了风口浪尖,好多PHP程序员都转向了Go,关于PHP的协程的详细描述可以在Hyperf文档里面可以看看,Hyperf的文档我觉得写的非常得不错,文档一开始讲协程的时候就把旧的基于PHP-FPM架构的框架拿出来对比,把阻塞等待的抢占式多线程模型在高并发环境下的情况拿出来和协作式的微型协程来对比,落差非常大,最让我觉得震撼的是文档里面hyperf默认的最大协程数是10W个,Swoole默认是3000个,传统的FPM架构的线程数是CPU核心数的两倍,通常才寥寥几个。可见其性能是多么的夸张。

接下来说说容器技术,就是Docker,Docker是基于Go的容器引擎,很多开源的项目框架都支持Docker部署,非常简单方便快捷,解决了很多繁琐的环境安装的问题。粗俗的话来讲就是高性能的虚拟机,Hyperf的安装文档直接指出 Hyperf 对系统环境有一些要求,仅可运行于 Linux 和 Mac 环境下, win10用户想玩只能用docker了,当然Docker有些简单的东西是需要我们了解的,例如镜像容器,容器端口和容器文件映射。安装Hyperf文档也有说明,但是完全没有了解过Docker的人很是蒙的,接下来我就开始说说每一条命令的意思吧。

假设已经安装了Docker,Docker的安装网上有很多教程,这里就不赘述了,我们要对官方文档安装进行一定的修改以方便进行开发,以下是官方文档的安装的第一条命令。

# 下载并运行 hyperf/hyperf 镜像,并将镜像内的项目目录绑定到宿主机的 /tmp/skeleton 目录
docker run -v /tmp/skeleton:/hyperf-skeleton -p 9501:9501 -it --entrypoint /bin/sh hyperf/hyperf:latest

-v 后面就是Docker容器文件映射的命令,冒号前面/tmp/skeleton是宿主机的路径,就是WIN10电脑的文件路径,冒号后面/hyperf-skeleton是容器的文件路径,这个不用管,这里我们要对文件映射进行修改,win10系统有盘符,我来一个 D\DockerFile\test ,这里要设置一下Docker 的File sharing,增加一个 D:\DockerFile的路径,不然会报错的。

还要给这个容器起一个别名叫test-hyperf 加一个--name就行了

需要把框架默认的端口9501映射到宿主机端口9501,就是-p

学习一下docker的基本常用参数:

-i: 交互式启动

-t: 终端 (exit退出终端)

-d: 不进入容器
hyperf/hyperf:latest 这个就是框架的镜像,latest就是最新的版本,在本地找不到会自动下载。
最终修改如下:

docker run   -it --name test-hyperf -v /D/DockerFile/test:/hyperf-skeleton -p 9501:9501 hyperf/hyperf:latest

进入cmd执行命令,第一次会自动下载镜像,有点慢,我们可以在Docker设置一个国内的镜像加速域名,具体可以百度。

没有-d参数会直接进入容器

进入容器之后应该是直接进入了容器里面的微小的Linux系统,接下来可以按照官方教程来了
下载安装composer

# 镜像容器运行后,在容器内安装 Composer
wget https://github.com/composer/composer/releases/download/1.8.6/composer.phar
chmod u+x composer.phar
mv composer.phar /usr/local/bin/composer
# 将 Composer 镜像设置为阿里云镜像,加速国内下载速度
composer config -g repo.packagist composer https://mirrors.aliyun.com/composer