最新动态 > 详情

phpstorm windows环境下开发php swoole框架Hyperf的项目,基于docker desktop容器环境。

发布时间:2022-10-11 14:12:04

前言:

书接上回,请先完成phpstorm连接docker 的配置:windows IDEA开发工具连接linux服务器Docker,适用于Phpstorm配置,IntelliJ可作为参考。

 

hyperf官网文档:安装 (hyperf.wiki)

“
Docker 下开发假设您的本机环境并不能达到 Hyperf 的环境要求,或对于环境配置不是那么熟悉,那么您可以通过以下方法来运行及开发 Hyperf 项目:启动镜像可以根据实际情况,映射到宿主机对应的目录,以下以 /workspace/skeleton 为例如果 docker 启动时开启了 selinux-enabled 选项,容器内访问宿主机资源就会受限,所以启动容器时可以增加 --privileged -u root 选项docker run --name hyperf \
-v /workspace/skeleton:/data/project \
-p 9501:9501 -it \
--privileged -u root \
--entrypoint /bin/sh \
hyperf/hyperf:7.4-alpine-v3.11-swoole

”

 

 

根据hyperf的文档,结合自身情况,分为两种情况

 

一、phpstorm连接windows系统的 docker:已安装 desktop桌面版docker

1.我已安装docker桌面,并安装了官方推荐的redis容器

2.设置暴露2375端口

3.配置phpstorm

  • 点击右上角“Edit Configurations”,弹窗左侧点击“+”

 

  • 点击“server”项对应的三个“...”

 

  • 点击phpstorm左下角“Services”,连接“localhost”,双击“Images”,可以看到容器列表有桌面docker安装的redis

 

4.通过phpstorm拉取hyperf镜像,在“localhost”上鼠标右键,点击“pull image...”

注意文档使用的不是latest版:

而是:hyperf/hyperf:7.4-alpine-v3.11-swoole

拉取后修改localhost的配置,我这里配置 的宿主机的映射路径为:D:\projects\forpastime\hyperf-docker-host

 

5.运行hyperf容器:上一步配置好后,点击右上角绿色三角形按钮

查看php版本,必须要>7.4,默认hyperf镜像的php版本是7.2.3。略显尴尬。

 

如果遇到问题:Failed to deploy 'hyperf Image id: hyperf/hyperf:7.4-alpine-v3.11-swoole': user declined directory sharing D:\projects\forpastime\hyperf-docker-host\hyperf-skeleton

在docker->设置->resources->file sharing添加项目目录

6.按照官方文档修改composer源,及创建skelenton项目

“
    将 Composer 镜像设置为阿里云镜像,加速国内下载速度视情况而定composer config -g repo.packagist composer https://mirrors.aliyun.com/composerCopy to clipboardErrorCopied创建项目cd /data/project
composer create-project hyperf/hyperf-skeletonCopy to clipboardErrorCopied启动项目cd hyperf-skeleton
php bin/hyperf.php start
”

注意:如果你本地没有安装配置好nacos,不建议你在安装skeleton时就选择微服务治理JSON RPC with Service Governance且选择nacos,会导致无法正常启动hyper

其他我全部输入的“y”,学习就多学点嘛。

 

7.执行启动hyperf命令

在容器“hyperf”上鼠标右键,点击Attach即可进入容器内

执行命令:php /data/project/hyperf-skeleton/bin/hyperf.php start

8.浏览器访问:127.0.0.1:9501

显示hyperf默认欢迎页面:

9.查看宿主机的hyperf-skeleton项目是否存在

 

10.通过phpstorm打开项目即可进行代码编写!

11.由于 Hyperf 是持久化的 CLI 框架,当您修改完您的代码后,通过 CTRL + C 终止当前启动的进程实例,并重新执行 php bin/hyperf.php start 启动命令即可。

 

 

如果你就打算使用windows进行hyperf的开发,以下做个简单了解即可:

 

二、phpstorm连接虚拟机docker:centOS操作系统,已安装docker

我计划将docker容器下的php项目放置到 /data/project,映射宿主机(centOS)的目录为 /docker/hyperf

docker run -it -d \ --name hyperf \-v /docker/hyperf:/data/project \-p 9501:9501 \ --privileged -u root \ --entrypoint /bin/bash \

上面这个命令是最终要执行的命令,我们通过phpstorm的配置来实现,

注意:docker镜像使用:“hyperf/hyperf:7.4-alpine-v3.11-swoole”,不要直接拉取latest。

 

1.点击右上角“Edit Configurations”,弹窗左侧点击“+”

2.填写配置参数

注意imageID or name 填写:hyperf/hyperf:7.4-alpine-v3.11-swoole

3.点击右上角绿色启动按钮

4.点击phpstorm右下角“Services”,连接“Docker-252”,双击“Containers”,可以看到“hyper”容器已正常启动

 

5.宿主机的项目文件在/docker/hyperf/目录下,可以通过phpstorm编辑远程项目的功能来管理编写代码:

在phpstorm顶部“tools”工具打开远程链接

 

按照你centOS操作系统配置登陆信息:

 

配置默认访问的路径

 

看看两种方式均可通过phpstorm打开项目的效果

遇到的问题:

有一台win10电脑的phpstorm2021.1x64 控制台hyperf容器邮件attach无法进入hyperf容器内。使用git-bash报如下错

 

admin@DESKTOP-DC56441 MINGW64 /
$ docker ps
CONTAINER ID   IMAGE          COMMAND       CREATED       STATUS              PORTS                    NAMES
fffac80a403d   1f0591aa8d67   "/bin/bash"   8 weeks ago   Up About a minute   0.0.0.0:9501->9501/tcp   hyperf

admin@DESKTOP-DC56441 MINGW64 /
$ docker exec -it hyper /bin/bash
Error: No such container: hyper

admin@DESKTOP-DC56441 MINGW64 /
$ docker exec -it hyperf /bin/bash
the input device is not a TTY.  If you are using mintty, try prefixing the command with 'winpty'

admin@DESKTOP-DC56441 MINGW64 /
$ winpty docker exec -it hyperf /bin/sh
OCI runtime exec failed: exec failed: unable to start container process: exec: "
D:/Git/usr/bin/sh.exe": stat D:/Git/usr/bin/sh.exe: no such file or directory: u
nknown

admin@DESKTOP-DC56441 MINGW64 /
$ winpty docker exec -it hyperf
"docker exec" requires at least 2 arguments.
See 'docker exec --help'.

Usage:  docker exec [OPTIONS] CONTAINER COMMAND [ARG...]

Run a command in a running container

admin@DESKTOP-DC56441 MINGW64 /
$ winpty docker exec -it hyperf bash
bash-5.0# pwd
/

解决windows下进入hyerf容器 的方法:不是/bin/bash哦!!!

winpty docker exec -it hyperf bash

以上就算本节课:phpstorm windows环境下开发php swoole框架Hyperf的项目的完整配置方法,如果您觉得不错请点赞支持!

 

上一篇: windows IDEA开发工具连接linux服务器Docker,适用于Phpstorm配置,IntelliJ可作为参考。

下一篇:docker 安装rabbitmq并启动网页管理流程