最新动态 > 详情
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可作为参考。