设为首页 收藏本站
查看: 852|回复: 0

[经验分享] php xdebug 的配置使用

[复制链接]

尚未签到

发表于 2018-12-24 10:22:55 | 显示全部楼层 |阅读模式
  1、下载xdebug

  可以到xdebug官网下载xdebug,xdebug下载官网地址是http://xdebug.org/download.php。
  下载前通过php环境查看函数phpinfo查看你的机器的php环境参数,确定你机器部署的php的编译环境版本及php的执行时线程安全模式。
  附图:php环境参数确认
  


  

  附图二 根据指定参数下载xdebug:

  

  

  

  2、php环境中添加xdebug配置
  下载完成后,将xdebug拷贝到php的部署目录下ext文件夹下,然后打开php.ini文件进行配置。
  配置参考如下,注意extension开启形式是以zend扩展库加载的形式。
  [Xdebug]
  zend_extension=ext\php_xdebug-2.2.3-5.4-vc9-nts.dll
  

  ;是否允许Xdebug跟踪函数调用,跟踪信息以文件形式存储,默认值为0
  xdebug.auto_trace=1
  ;是否允许Xdebug跟踪函数参数,默认值为0
  xdebug.collect_params=1
  ;是否允许Xdebug跟踪函数返回值,默认值为0
  xdebug.collect_return=1
  xdebug.trace_output_dir="xdebug/trace"
  

  ;打开xdebug的性能分析器,以文件形式存储,这项配置是不能以ini_set()函数配置的,默认值为0
  xdebug.profiler_enable=1
  xdebug.profiler_output_dir="xdebug/profiler"
  xdebug.remote_enable=1
  xdebug.remote_host=192.168.1.51
  xdebug.remote_port=9999
  xdebug.remote_handler=dbgp
  xdebug.remote_log="xdebug/remote"
  xdebug.show_exception_trace=1
  

  附:xdebug dll类库存放路径

  

  如果需要记录xdebug调试信息日志,需要建立日志存放文件夹

  

  

  

  

  3、如何在zend studio中使用xdebug调试
  第一步:在zend studio 10.0 中配置php的调试方式为xdebug
  第二步:在需要debug的web站点中 debug选项中配置调试方式为xdebug
  第三步:在需要调试的web站点中设置断点,在zend studio中启动debug,可以使用F5键单步调试
  相关配置附图如下:
  附:第一步 图1

  

  附:第一步 图2
  

  附:第二步 图1

  

  附:第二步 图2
  附:第二步 图3

  

  

  附:第三步 图1

  

  

  4、相关名词解释:
  VC 6:legacy visual studio 6 compiler 编译器,php环境参数中compiler是vc 6,表示php是用这个编译器编译的。

  VC 9:visual studio 2008 compiler:微软visual studio c++ 2008 编译器。
  NTS: Non Thread Safe非线程安全,在php执行时不进行线程(Thread)安全检查。
  TS:线程安全,在php执行时执行线程(Thread)安全检查,对于http请求,如果php以cgi的执行处理,防止有新请求就启动cgi新线程,避免耗尽系统资源。
  php的两种执行方式:ISAPI和FastCGI。
  ISAPI:Internet Server Application Programming Interface,互联网服务器应用程序设计接口,使用DLL(动态链接库)执行处理,被用户请求后执行,在处理完一个请求后不会马上消失,所以需要执行线程安全检查,来提高执行效率与服务器性能,如果以ISAPI的方式执行php,建议使用Thread Safe版本。
  FastCGI:是以单一线程方式来执行操作,   所以不需要执行线程安全检查,这样能提高执行效率,也不会有性能问题,所以如果使用FastCGI来执行php,建议使用Non Thread Safe版本。
  CGI:全称是Common Gateway Interface 即通用网关接口, 可以使服务器其他应用程序及系统程序与http web服务进行交换, 可以使用任何语言编写。
  应用程序工作原理如下:
  1.浏览器通过HTML表单或超链接请求指上一个CGI应用程序的URL。
  2.服务器收发到请求。
  3.服务器执行指定所CGI应用程序。
  4.CGI应用程序执行所需要的操作,通常是基于浏览者输入的内容。
  5.CGI应用程序把结果格式化为网络服务器和浏览器能够理解的文档(通常是HTML网页)。
  6.网络服务器把结果返回到浏览器中。
  优点是要把客户端的信息记录在服务器的硬盘上,就要用到CGI。这是CGI最重要的作用,它补充了Html的不足。是的,仅仅是补充,不是替代。
  
  FastCGI像是一个常驻(long-live)型的CGI,它可以一直执行着,只要激活后,不会每次都要花费时间去fork一次(这是CGI最为人诟病的fork-and-execute 模式)。它还支持分布式的运算, 即 FastCGI 程序可以在网站服务器以外的主机上执行并且接受来自其它网站服务器来的请求。
  FastCGI是语言无关的、可伸缩架构的CGI开放扩展,其主要行为是将CGI解释器进程保持在内存中并因此获得较高的性能。众所周知,CGI解释器的反复加载是CGI性能低下的主要原因,如果CGI解释器保持在内存中并接受FastCGI进程管理器调度,则可以提供良好的性能、伸缩性、Fail- Over特性等等。
  PHP-FPM : 一个fastcgi 管理器,在内存及cpu的控制上效果都非常好。
  

  5、参考文献
  什么是CGI、FastCGI、PHP-CGI、PHP-FPM、Spawn-FCGI?
  http://www.mike.org.cn/articles/what-is-cgi-fastcgi-php-fpm-spawn-fcgi/




运维网声明 1、欢迎大家加入本站运维交流群:群②:261659950 群⑤:202807635 群⑦870801961 群⑧679858003
2、本站所有主题由该帖子作者发表,该帖子作者与运维网享有帖子相关版权
3、所有作品的著作权均归原作者享有,请您和我们一样尊重他人的著作权等合法权益。如果您对作品感到满意,请购买正版
4、禁止制作、复制、发布和传播具有反动、淫秽、色情、暴力、凶杀等内容的信息,一经发现立即删除。若您因此触犯法律,一切后果自负,我们对此不承担任何责任
5、所有资源均系网友上传或者通过网络收集,我们仅提供一个展示、介绍、观摩学习的平台,我们不对其内容的准确性、可靠性、正当性、安全性、合法性等负责,亦不承担任何法律责任
6、所有作品仅供您个人学习、研究或欣赏,不得用于商业或者其他用途,否则,一切后果均由您自己承担,我们对此不承担任何法律责任
7、如涉及侵犯版权等问题,请您及时通知我们,我们将立即采取措施予以解决
8、联系人Email:admin@iyunv.com 网址:www.yunweiku.com

所有资源均系网友上传或者通过网络收集,我们仅提供一个展示、介绍、观摩学习的平台,我们不对其承担任何法律责任,如涉及侵犯版权等问题,请您及时通知我们,我们将立即处理,联系人Email:kefu@iyunv.com,QQ:1061981298 本贴地址:https://www.yunweiku.com/thread-655181-1-1.html 上篇帖子: PHP以FastCGI方式与LAMP整合 下篇帖子: php 之常用技巧!
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

扫码加入运维网微信交流群X

扫码加入运维网微信交流群

扫描二维码加入运维网微信交流群,最新一手资源尽在官方微信交流群!快快加入我们吧...

扫描微信二维码查看详情

客服E-mail:kefu@iyunv.com 客服QQ:1061981298


QQ群⑦:运维网交流群⑦ QQ群⑧:运维网交流群⑧ k8s群:运维网kubernetes交流群


提醒:禁止发布任何违反国家法律、法规的言论与图片等内容;本站内容均来自个人观点与网络等信息,非本站认同之观点.


本站大部分资源是网友从网上搜集分享而来,其版权均归原作者及其网站所有,我们尊重他人的合法权益,如有内容侵犯您的合法权益,请及时与我们联系进行核实删除!



合作伙伴: 青云cloud

快速回复 返回顶部 返回列表