Press "Enter" to skip to content

【Hyperf 学习手记】1、Windows 搭建 Hyperf 的 Docker 开发环境

Hyperf 是一个渐进式的 PHP 协程框架。当使用 Swoole 网络引擎驱动时,仅可运行在 Linux 和 Mac 环境下。

但是大多数的 PHP 开发者,可能更倾向于在 Windows 下进行开发(没错,正是在下)。因此,如果我们想在 Windows 下愉快的使用 Hyperf 框架的话,需要通过 Hyperf 官方提供的 Hyperf 镜像来搭建相应的开发环境。

Hyperf 官方 Docker 镜像地址:https://hub.docker.com/r/hyperf/hyperf

1、拉取镜像

首先我们启动 Docker Desktop ,然后在命令行中输入如下命令拉取官方镜像:

docker pull hyperf/hyperf

 

执行完该命令,会将官方的镜像最新版本拉取到我们本地。可以通过执行以下命令查看:

docker images

 

可以看到镜像已经拉取到我们本地:

01

2、创建宿主机对应的映射目录

根据实际情况,映射到宿主机对应的目录,比如 E:/PhpProjects/hyperf 。

3、创建 Hyperf 容器

我们可以通过以下命令创建一个 Hyperf 容器:

docker run --name hyperf -v E:/PhpProjects/hyperf:/data/project -p 9501:9501 -it --privileged -u root --entrypoint /bin/sh hyperf/hyperf
  • –name hyperf 用于指定创建的容器名称
  • -v E:/PhpProjects/hyperf:/data/project 用于指定宿主机和容器的目录映射
  • -p 9501:9501 用于指定宿主机和容器端口的映射
  • –privileged -u root 如果 docker 启动时开启了 selinux-enabled 选项,容器内访问宿主机资源就会受限,所以启动容器时可以增加 –privileged -u root 选项(来自 Hyperf 官方文档的解释)
  • hyperf/hyperf 最后的 hyperf/hyperf 参数用于指定我们基于哪个镜像创建这个容器。hyperf/hyperf 是我们在第一步拉取的官方镜像对应的镜像名称。

4、使用 Composer 创建项目

友情提示:如果因为某些原因导致国内下载速度较慢,可以通过以下命令先将 Composer 镜像设置为阿里云镜像:

composer config -g repo.packagist composer https://mirrors.aliyun.com/composer

 

进入 /data/project 目录,执行 Composer 命令创建项目:

cd /data/project
composer create-project hyperf/hyperf-skeleton

如果出现上面的提示,是因为 Composer 的版本太低,可以忽略,或者将 Composer 更新到最新版本,具体更新操作可以参考:Composer 切换版本

在安装时会让我们选择默认的组件,除了时区和数据库外,其他一律选择“n”,具体如下:


  What time zone do you want to setup ?
  [n] Default time zone for php.ini
Make your selection or type a time zone name, like Asia/Shanghai (n):
n

  Do you want to use Database (MySQL Client) ?
  [y] yes
  [n] None of the above
  Make your selection or type a composer package name and version (yes): y
  - Adding package hyperf/database (~2.0.0)
  - Adding package hyperf/db-connection (~2.0.0)

  Do you want to use Redis Client ?
  [y] yes
  [n] None of the above
  Make your selection or type a composer package name and version (yes): n

  Which RPC protocol do you want to use ?
  [1] JSON RPC with Service Governance
  [2] JSON RPC
  [3] gRPC
  [n] None of the above
  Make your selection or type a composer package name and version (n): n

  Which config center do you want to use ?
  [1] Apollo
  [2] Aliyun ACM
  [3] ETCD
  [n] None of the above
  Make your selection or type a composer package name and version (n): n

  Do you want to use hyperf/constants component ?
  [y] yes
  [n] None of the above
  Make your selection (n): n

  Do you want to use hyperf/async-queue component ? (A simple redis queue component)
  [y] yes
  [n] None of the above
  Make your selection or type a composer package name and version (n): n

  Do you want to use hyperf/amqp component ?
  [y] yes
  [n] None of the above
  Make your selection or type a composer package name and version (n): n

  Do you want to use hyperf/model-cache component ?
  [y] yes
  [n] None of the above
  Make your selection or type a composer package name and version (n): n

  Do you want to use hyperf/elasticsearch component ?
  [y] yes
  [n] None of the above
  Make your selection or type a composer package name and version (n): n

  Do you want to use hyperf/tracer component ? (An open tracing protocol component, adapte with Zipkin etc.)
  [y] yes
  [n] None of the above
  Make your selection or type a composer package name and version (n): n

 

其它的组件我们可以在后面需要的时候再自行添加。

5、启动项目

项目安装完成后,可以通过以下命令启动项目:

cd hyperf-skeleton
php bin/hyperf.php start

 

如果界面只有【INFO】和【DEBUG】这两种日志输入,证明项目启动成功了:

我们可以打开一个新的命令行窗口输入以下命令进入容器:

 docker exec -it hyperf /bin/sh

 

执行以下命令:

curl 127.0.0.1:9501

 

可以看到服务已经正常启动并且能响应我们的请求了。

此外,我们也可以直接在宿主机浏览器请求 127.0.0.1:9501 ,同样也能看到服务是正常响应的。

接下来,就可以在宿主机 E:/PhpProjects/hyperf 中看到安装好的代码了。

OK,到此为止,我们的 Hyperf Docker 开发环境就搭建好啦,Enjoy !

友情提示:由于 Hyperf 是持久化的 CLI 框架,因此我们修改完代码后,需要通过 CTRL + C 终止当前启动的进程实例,并重新执行 php bin/hyperf.php start 启动命令才可生效。

 

文章相关仓库:https://gitee.com/xiaohuakang/hyperf-study-record

 

本文部分内容参考自官方文档,来源地址:安装 Hyperf

发表评论

您的电子邮箱地址不会被公开。 必填项已用*标注