在 Swoole 的官方文档中就明确指出了 Swoole 和 Xdebug 不兼容,虽然Xdebug 2.7 ,可用于 Swoole 环境进行断点、现在 Swoole 已经有了yasd,可以改用,毕竟 Swoole 和 Xdebug 存在兼
1)windows10专业版
4)php8.0.24
虚拟机的安装和centos7在虚拟机中的安装就不在这里赘述了,可以去搜索其他文章了解
这里直接讲安装php环境 为了方便使用yum安装
1)首先安装remi扩展源(这里直接使用清华软件源)
yum install https://mirrors.tuna.tsinghua.edu.cn/remi/enterprise/remi-release-7.rpm
2)确认一下能安装的php8.0和扩展
yum list | grep php80
3)安装php8.0和一些经常用到的扩展(如果有其他需要使用可自行加上)
yum install -y --enablerepo=remi-php80 php80 php80-php php80-php-xml php80-php-xmlrpc php80-php-pecl-mcrypt php80-php-fpm php80-php-pecl-apcu php80-php-mbstring php80-php-gd php80-php-JSON php80-php-pecl-json-post php80-php-pdo php80-php-Mysqlnd php80-php-pecl-mysql php80-php-opcache php80-php-pear php80-php-soap php80-php-intl php80-php-devel php80-php-cli php80-php-bcmath php80-php-pecl-mongoDB php80-php-pecl-Redis php80-php-pecl-aMQp php80-php-ftp php80-php-openssl php80-php-pecl-swoole5
4)确认安装结果(php的安装目录是/opt/remi/php74/root/ php-fpm工具也在里面)
yum list installed | grep php
5)通过remi安装的php的指令是php80,这里建立一下软链接就可以直接使用指令php
ln -sf /usr/bin/php80 /usr/bin/php
6)查看安装的php版本
php -v
7)查看安装的php的扩展
php -m
8)由于hyperf中需要swoole关闭短标签,我们在这里关闭一下
修改里面的内容
vi 40-swoole.ini
swoole.use_shortname = Off
9)创建hyperf项目,hyperf的项目有两种网络引擎驱动swoole和swow,我这里使用swoole驱动,使用composer来创建项目(一路回车知道创建完成)
composer create-project hyperf/hyperf-skeleton
由于remi扩展源中没有yasd扩展所以我们需要手动编译安装扩展
1)yasd需要先安装boost
yum install boost boost-devel
2)拉取master分支源码(GitHub有时候网络差可以多试几次,也可以通过修改hosts的方式来加快速度)
git clone Https://github.com/swoole/yasd.git
3)安装扩展(进入到拉取的yasd目录--使用php安装目录的phpize工具)
/opt/remi/php80/root/bin/phpize --clean && \/opt/remi/php80/root/bin/phpize && \./configure --with-php-config=/opt/remi/php80/root/bin/php-config && \make clean && \make && \make install
4)修改php.ini在最底下加上(通过remi源安装的php配置文件路径一般在/etc/opt/remi/php80/php.ini)注:这里的host要使用你phpstorm所在的主机地址
zend_extension=yasdyasd.debug_mode=remoteyasd.remote_host=192.168.2.52yasd.remote_port=9000
1)phpstorm配置sftp
1,打开phpstorm,创建一个项目命名为hyperf-skeleton(可以根据自己情况命名)
2,点击工具栏的Tools=>Deployment=>Browser Remote Host:
1.3,点击... 进行配置后点击+号选sftp,输入sftp的名称(ftp等,大部分linux服务器默认开启sftp而没有ftp)
sftp服务器(虚拟机)ip,ssh端口(默认22),账号密码
点击mapping,配置Deployment Path,这个目录填写虚拟机中创建的hyperf项目的目录(项目运行目录),通过上传更新虚拟机文件或者下载虚拟机文件到本地
勾选自动上传,每次修改完代码会自动上传到虚拟机服务器(复制粘贴,composer 等非编辑器修改的文件不会被上传,需要手动)
在Remote Host中对于的项目文件右键下载前面创建的项目文件到本地
到这步的时候,我们已经可以和服务器的文件目录同步文件了,你在本地修改过的文件可以自动上传的服务器中,服务器修改过的你也可以手动下载下来
4,配置ssh终端,点击Tools=>Start SSH session,选择刚刚已经配置好的sftp配置名,就可以开启一个ssh终端
配置好ssh的连接,接下来就可以在phpstorm 中使用ssh终端操作服务器(虚拟机)了
2)phpstorm配置php环境
1,在phpstorm中使用服务器(虚拟机)的php环境需要配置php环境,点击phpstorm菜单栏File=>Settings找到php配置点击...
2,点击加号=>From Docker,Vagrant,VM.我们用的是VM方式
选择ssh配置上我们之前就配置好的远程服务器 完成后ok-》ok
3)配置Debug中的调试端口和yasd中的远程端口一致
1)打开PhpStorm右上角的小电话,开启PhpStorm监听debug设置的端口
2)设置断点
需要注意:Hyperf项目启动时会生成代理类,所以打断点的时候需要在runtime/container/proxy/
中的代理类中打断点
3)启动项目
使用yasd调试项目的时候需要增加-e
参数
php -e ./bin/hyperf.php start
在之前phpstorm打开的ssh中进入到项目的目录 执行命令
4)去请求打了断点的接口就会发现代码停在了断点的位置(成功进入到断点)
来源地址:https://blog.csdn.net/boy7607891xy/article/details/127345758
--结束END--
本文标题: windows + phpstorm + 虚拟机 + yasd 实现 hyperf 调试
本文链接: https://lsjlt.com/news/390818.html(转载时请注明来源链接)
有问题或投稿请发送至: 邮箱/279061341@qq.com QQ/279061341
2024-02-29
2024-02-29
2024-02-29
2024-02-29
2024-02-29
2024-02-29
2024-02-29
2024-02-29
2024-02-29
2024-02-29
回答
回答
回答
回答
回答
回答
回答
回答
回答
回答
0