返回顶部
分享到

如何在服务器上安装和配置Yasd调试器来调试Swoole项目

linux 来源:互联网 作者:佚名 发布时间:2025-12-21 20:53:37 人浏览
摘要

环境检查与准备 登录宝塔面板和服务器终端,首先确认已安装的 PHP 版本(通常在/www/server/php/目录下),记下要调试的 PHP 版本号(如 7.4、8.0)。检查 Swoole 扩展是否已安装,如果未安装需要

环境检查与准备

登录宝塔面板和服务器终端,首先确认已安装的 PHP 版本(通常在 /www/server/php/ 目录下),记下要调试的 PHP 版本号(如 7.4、8.0)。检查 Swoole 扩展是否已安装,如果未安装需要先安装。确保系统已安装必要的编译工具:gcc、g++、make、cmake、autoconf 等。CentOS 系统使用 yum 安装,Ubuntu/Debian 使用 apt 安装。特别要注意 cmake 版本需要 3.5 以上,如果版本过低需要从源码编译升级。

服务器安装yasd

1.安装yasd

登录宝塔面板和服务器终端,首先确认服务器已安装 cmake 3.5 以上版本,如果没有需要先安装或升级。然后从 GitHub 下载 yasd 源码到服务器,进入源码目录。使用宝塔已安装 PHP 对应的 phpize 命令来准备编译环境,这一步很关键,必须使用宝塔路径下的 phpize(如 /www/server/php/74/bin/phpize)。接着创建单独的 build 目录,运行 cmake 进行配置,这里需要指定正确的 PHP 配置路径和包含目录。最后执行 make 命令进行编译,编译完成后运行 make install 完成安装。

按照官方文档,Yasd调试器官方文档

1

2

3

4

5

yum install boost boost-devel

git clone https://github.com/swoole/yasd.git

cd yasd

phpize --clean && phpize && ./configure --with-php-config=/www/server/php/74/bin/php-config && make clean && make && make install

#/www/server/php/74/bin/php-config  宝塔php7.4的php-config路径

2.查看是否编译成功

编译结束后,检查 yasd 可执行文件是否生成。通常安装成功后,yasd 会安装在 /usr/local/bin/ 或指定的安装目录下。可以通过运行 yasd --version 命令查看版本信息来确认安装是否成功。同时也要检查是否生成了 yasd 的 PHP 扩展文件(yasd.so)。

3.成功之后记得修改php.ini,改完之后重载配置文件

打开宝塔对应 PHP 版本的 php.ini 配置文件,在文件末尾添加 yasd 扩展的加载指令。需要设置 yasd 为远程调试模式,配置调试服务器监听的 IP 地址和端口号(通常使用 19000 端口)。还需要设置相关的调试参数,如日志级别、断点文件路径等。配置完成后,需要在宝塔面板中重载 PHP 配置,或者通过命令行重启 PHP-FPM 服务使配置生效。

4.重启之后记得也重启一下swoole

修改配置后,必须重启 Swoole 服务。根据你的 Swoole 项目启动方式,如果是常驻进程,需要先停止当前运行的 Swoole 服务,然后重新启动。重启时系统会加载新的 yasd 配置。观察启动日志,确保没有错误信息,特别是要确认 yasd 扩展已成功加载。

5. 检查Swoole服务运行状态

启动成功后,检查 Swoole 服务运行状态,确保没有报错信息,这说明服务器端 yasd 配置已经完成。此时需要在服务器防火墙和宝塔面板安全设置中放行 19000 端口。如果是云服务器,还需要在云服务商的安全组规则中添加 19000 端口的入站允许。

在本地phpstrom上设置

1.添加服务器信息,设置连接、映射目录

打开 PHPStorm,进入设置界面,在 Deployment 选项中添加新的服务器配置。设置服务器名称、类型选择 SFTP,填写服务器 IP 地址、SSH 端口号、用户名和密码或密钥。配置本地项目目录与服务器目录的映射关系,这是调试能否成功的关键,必须确保本地文件路径与服务器文件路径正确对应。

2.设置php的CLI解释器,用服务上的信息

在 PHPStorm 的 PHP 设置中,添加远程 CLI 解释器。选择从 Docker、Vagrant 等配置,但实际上要选择远程服务器。配置 SSH 连接信息,使用与部署相同的认证方式。设置完成后,PHPStorm 会获取服务器上的 PHP 版本信息和配置路径,确保这里显示的 PHP 版本与服务器实际版本一致。

3.设置xdebug信息

进入 PHPStorm 的调试设置,选择 DBGp Proxy 作为调试器类型。设置 IDE 密钥(可以自定义),主机填写本地机器 IP,端口设置为 19000。配置路径映射,这里要特别注意,映射关系必须正确,否则断点无法命中。还可以设置最大连接数、超时时间等高级选项。

端口映射

 xshell中要设置映射端口

调试的时候需要启动xshell的服务器

由于 yasd 调试服务器运行在远端服务器的 19000 端口,本地 PHPStorm 无法直接访问,需要通过 SSH 隧道进行端口转发。打开 Xshell 或其它 SSH 客户端,创建到服务器的连接。在连接属性中,设置隧道规则,将本地 19000 端口转发到服务器的 19000 端口。这样当 PHPStorm 连接到本地的 19000 端口时,流量实际上通过 SSH 隧道转发到了服务器的 yasd 调试服务器。

调试

1.启动ssh对话框

首先启动 Xshell 连接到服务器,确保端口转发隧道已建立。可以通过 netstat 命令检查本地 19000 端口是否处于监听状态。保持这个 SSH 连接窗口开启,不要关闭,否则隧道会断开。

2.进入网站目录

通过 SSH 连接到服务器后,切换到 Swoole 项目的根目录。检查项目文件,确保代码是最新版本。也可以在这里查看日志文件,了解之前的运行状态。

3.命令启动 swoole

在服务器命令行中,使用特定的调试参数启动 Swoole 服务。通常需要在启动命令中添加 yasd 的调试选项,让 Swoole 在调试模式下运行。启动后,观察控制台输出,应该能看到 yasd 调试器已初始化的提示信息。

可以了

4.断点测试

回到本地 PHPStorm,在代码中设置断点。点击 PHPStorm 的调试按钮开始监听。触发 Swoole 服务的相应接口或功能,当执行到断点位置时,PHPStorm 会自动捕获并进入调试模式。此时可以查看变量值、调用栈,进行单步调试等操作。调试完成后,记得在服务器上正常停止 Swoole 服务。

完美解决swoole不能用xdebug调试的问题

总结

整个流程需要注意网络稳定性,特别是在进行端口转发时。调试过程中如果遇到断点不命中问题,需要检查目录映射是否正确、yasd 配置是否生效、以及防火墙设置是否允许连接。


版权声明 : 本文内容来源于互联网或用户自行发布贡献,该文观点仅代表原作者本人。本站仅提供信息存储空间服务和不拥有所有权,不承担相关法律责任。如发现本站有涉嫌抄袭侵权, 违法违规的内容, 请发送邮件至2530232025#qq.cn(#换@)举报,一经查实,本站将立刻删除。

您可能感兴趣的文章 :

原文链接 :
    Tag :
相关文章
  • 如何在服务器上安装和配置Yasd调试器来调试Swo

    如何在服务器上安装和配置Yasd调试器来调试Swo
    环境检查与准备 登录宝塔面板和服务器终端,首先确认已安装的 PHP 版本(通常在/www/server/php/目录下),记下要调试的 PHP 版本号(如 7.4、
  • Centos系统更改root账户用户名的详细方法
    在CentOS系统中,更改root账户的用户名是一项非常敏感且需谨慎操作的任务。更改后,系统的超级管理员账户将不再是root,而是新的用户名。
  • Linux find命令的高级用法和多级目录查找实战
    在日常 Linux 开发和运维中,find是一个非常强大的文件搜索工具。除了简单的按文件名查找,它还能按目录、大小、时间、权限,甚至执行批
  • Ubuntu中screen安装和命令使用
    Ubuntu安装screen 1 sudo apt-get install screen screen三种状态 Detached 未连接 Attached 已连接 Dead 死亡 screen命令 1. 查看当前已有screen 1 screen -ls 2. 创建
  • Centos7 firewall和docker冲突问题及解决过程
    系统环境 系统:Centos7 防火墙工具:firewalld Docker容器:docker容器使用docker默认的网桥(bridge),进行了端口映射 问题描述 在系统防火墙f
  • Nginx之https证书配置实现介绍

    Nginx之https证书配置实现介绍
    首先我的架构是(公网 NAT 转发 Nginx 代理 IIS 服务器),实现公网 HTTPS 访问,SSL 证书必须部署在 Nginx 服务器上,且是唯一需要部署证书的节
  • Linux借助信号机制回收进程的方法
    信号机制基础 Linux信号是一种进程间通信机制,用于通知进程发生了某种事件。信号可以被内核、其他进程或进程自身发送。当进程接收到
  • Nginx日志定期清理设置实现
    1. 日志轮转配置 ① 创建 logrotate 配置文件 a. 按天自动滚动清理 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 sudo tee /etc/logrotate.d/docker-nginx EOF /path/to/your/m
  • Linux镜像文件制作方式

    Linux镜像文件制作方式
    嵌入式系统开发调试及量产需要涉及到Linux镜像文件的制作,本文结合一个实例简要介绍Linux镜像文件的制作。 1.确定磁盘空间布局 在制作镜
  • 常用的Linux测速脚本和命令
    1. 使用常用测速脚本 1.1 Speedtest CLI Speedtest.net 提供的官方命令行工具,适合测试服务器的上下行带宽和延迟。 安装 Speedtest CLI 下载并安装
  • 本站所有内容来源于互联网或用户自行发布,本站仅提供信息存储空间服务,不拥有版权,不承担法律责任。如有侵犯您的权益,请您联系站长处理!
  • Copyright © 2017-2022 F11.CN All Rights Reserved. F11站长开发者网 版权所有 | 苏ICP备2022031554号-1 | 51LA统计