作者归档:yanwushu

linux下php8.2安装xdebug

注意

  1. Xdebug是第三方开发商开发的PHP扩展,并不在php源代码中,要到官网下载源码编译安装,不要试图下载php源代码然后像编译其他官方扩展一样编译安装xdebug。

  2. 在linux上安装xdebug非常简单,只需要将phpinfo信息提交到xdebug官网,分析后按照官网的安装不好走一步一步严格执行即可(请注意,严格的一步一步执行,不要跳过或者自己手动抄写命令,我就是因为安装完后大意,将php.ini文件中的zend_extension=xdebug写成了extension=xdebug导致怎么也无法命中调试断点,后来找了很长时间才定位到问题)只要是严格按照步骤走,整个安装过程会非常简单、非常快。

具体安装方法

  1. 执行下方命令,复制输入内容,粘贴到 https://xdebug.org/wizard 中,点击分析按钮,然后严格按照指示的步骤来执行即可。

    php -r 'phpinfo();' > phpinfo.txt
  2. 执行./configure命令时,可能会出现找不到php-config的错误,此文件一般都在php的安装目录下(php-config不是一个第三方的linux软件包,所以请不要试图使用yum install php-config的方法来解决此问题)。执行命令的时候指定php-config的路径即可,如下:

    ./configure  --with-php-config=/www/server/php/82/bin/php-config
  3. 安装完之后,通过查看phpinfo来确定是否已经安装成功。下面是在宝塔中查看phpinfo的结果。

    在phpinfo中查看xdebug插件是否安装成功

配置xdebug的调试环境

本文只讲解如何安装php的xdebug插件,关于配置xdebug的调试环境,请参考另一篇文章,具体讲如何实现使用xdebug远程调试docker中的项目。

xdebug的调试原理

搭建xdebug的调试环境时,经常会出现各种各样的问题导致断点无法命中,调试起来又很麻烦。如果了解xdebug的调试原理的话,可能方便定位问题点。所以这里简单说下xdebug的调试原理。

  1. xdebug和phpstorm(或其他ide)是cs(clint/server)结构的一套体系,他们通过DBGp协议通讯,默认端口是9000,你可以在php.ini配置文件和phpstorm的配置中修改这个端口。xdebug是客户端,phpstorm是服务端。在phpstorm中点击监听按钮,就相当于开启了调试服务,等待xdebug发送调试信息就行啦。

  2. 当php.ini中开启了xdebug扩展,那么当php运行的时候,xdebug就会向服务端发送调试信息,告诉服务端应该如何断点。

了解这个基本原理后,可以顺着调试原理的逻辑思路来判断无法命中断点的具体问题点是出在什么地方。从而准确配置xdebug。

使用docker和堡塔快速搭建php开发环境

前言

本文基于mac平台。

因为要使用php8.2和laravel10来开发系统,在搭建开发环境的时候着实是废了不少劲。探索了不少方案,终于找到了一个最佳实践,这里做一个总结。

先说下尝试过的方案

  1. mxsrvs,之前在开发php5.6和php7.4的系统时,都是使用的mxsrvs作为集成开发环境。问题是这个环境中不支持php8,尝试自己编译一个php8的版本适配到mxsrvs,最终因为遇到 https://segmentfault.com/q/1010000044189821?_ea=317144307 这个问题,导致无法在mxsrvs上使用php8,遂放弃此方案。另外已经和mxsrvs的作者取得联系,老哥已经停止维护此工具很久了,非常可惜。为了方案的可持续性,所以放弃mxsrvs。

  2. phpstudy,当初在windows平台开发的时候,使用的就是phpstudy,下载了一个mac版本的phpstudy看了下,不支持php8,而且软件完成度很低,bug不少,不像是一个可用的东西,遂放弃此方案。

  3. laravel herd,laravel自己开发的一个集成开发环境。这个项目在刚开始和快速迭代的阶段,功能完成度较低,无法方便的创建项目,无法管理php插件,遂放弃此方案。

  4. mamp,此工具pro版本收费,但是可以找到破解版的,不好的地方是不能同时支持多个mysql版本,遂放弃此方案。

  5. 使用docker+堡塔的方式搭建开发环境。因为平时我服务器上使用的就是堡塔面板,所以对在宝塔中的各项操作都非常熟悉,加上docker可快速部署的特性,最后选择使用这个方案。在落地这个方案的时候也是遇到了不少的问题,但最终都一一克服,最终形成自己的这套最佳实践。本系列搭建php开发环境文章从各个环节来描述此方案的搭建过程,包括单元测试、xdebug调试如何实现等。

参考文章:https://blog.csdn.net/weixin_44467587/article/details/130265470

安装docker、运行堡塔镜像

  1. 官网下载docker客户端,并登录账号
  2. pull btpanel/baota镜像,在公共库中搜索即可。
  3. 创建和运行容器,指定参数。volumnes参数可以映射堡塔的/www/wwwroot目录,此目录映射到本机的一个目录,将源码存放到这个目录即可。
    在docker中创建和运行堡塔镜像
  4. 浏览器访问 http://localhost:8888/btpanel 进入堡塔
    默认用户名:btpanel
    默认密码:btpaneldocker
    默认ssh密码:btpaneldocker
    数据库root密码需要重置一下,否则无法创建数据库,应该是是做镜像的人没做好。
  5. 创建网站,指定一个域名比如test.com
  6. 修改mac本地的hosts文件 sudo vi /private/etc/hosts,添加127.0.0.1 test.com即可在浏览器中通过test.com访问站点。

JPEGViewer——极简主义的看图软件

优点

  • 打开速度极快,操作流畅。类比其他软件还没有启动起来,这里图已经显示出来了;
  • 图片格式支持全面;
  • 带抗锯齿,滚轮缩放友好;
  • 极简主义的界面设计,除了图片和标题栏,其他任何元素都没有。工具栏默认隐藏,点击唤出强大的工具栏;
  • 功能全面,旋转,透视,剪切,查看参数等功能;
  • 快捷键前后图片翻页预览;
  • 免费、绿色版、解压即用

下载

获取最新idea激活码