2018年04月6日网站服务器迁移完成……

apmserv下xdebug的配置

apache 苏 demo 2303℃ 0评论

apmserv下xdebug的配置 – myD – 博客园

Apache 用vc9编译的, PHP用vc9编译的,xdebug也找vc9编译,正常配置,就不信特么的还出错(2014年1月23日 11:15:13)

windows下,如果在配置文件中写指令 extension=php_xdebug.dll 在启动Apache时或在命令行执行PHP时会有warning说xdebug要以zend扩展的模式被加载,可以不用管它,因为要是按照提示,用指令zend_extension=php_xdebug.dll/zend_extension_ts=php_xdebug.dll时虽然没有警告但是xdebug会不起作用(2014年3月18日 17:38:15)

———————————-

先看看线程安全(ts/nts)与php编译的解释(vc6/vc9)

http://www.cnblogs.com/tonysuen/archive/2009/12/21/1629252.html

http://www.php100.com/html/webkaifa/PHP/PHP/2010/0103/3746.html

2013年3月15日 09:47:31(extension和zend_extension的区别)

http://blog.163.com/lgh_2002/blog/static/440175262010910103342213/  (重要,只要找对了版本,就不要在那堆列表(PHP扩展列表)中写extension=php_xdebug.dll,因为xdebuge属于zend的扩展,而不是PHP的扩展,所以要在[Xdebuge]栏目下写zend_extension[_ts]=”xdebuge的绝对路径”)

大家在安装xdebug前用phpinfo();输出一下,将内容复制到 http://xdebug.org/wizard.php 中(xdebug官方网站)

我的开发环境是apmserv5.2.6,得到的结果如下:

Summary

 

Xdebug installed: no

Server API: Apache 2.0 Handler

Windows: yes – Compiler: MS VC6 – Architecture: x86

Zend Server: no

PHP Version: 5.2.6

Zend API nr: 220060519

PHP API nr: 20060613

Debug Build: no

Thread Safe Build: yes

Configuration File Path: C:\windows

Configuration File: F:\APMServ\PHP\php.ini

Extensions directory: F:\APMServ\PHP\ext

The compiler (MS VC6) that this PHP was build with, is no longer supported. Please upgrade to a version that was built with MS VC9.

 

注意几点:

1,你的PHP在被编译时用的是哪个版本的c语言编译工具 是vc6 还是 vc9,如果是vc6(通过上边分析结果知道,apmserv 5.2.6 是用vc6编译的),那么下载xdebug.dll时选择名字中有vc6的版本;

2,弄清你的php在编译后是带线程安全(ts)功能的,还是不带线程安全(nts)功能的,例如:apmserv5.2.6里的PHP是线程安全的,那么在PHP配置文件中要写上zend_extension_ts=php_xdebug.dll(在apmserv 5.2.6的PHP配置文件中我试了xdebug 2.0.4版本,只有写成zend_extension_ts=php_xdebug.dll,phpinfo()才能识别xdebug)

 

总之:

1.必须保证PHP和xdebug带不带有线程安全功能要统一,且都是同一个版本的编译器编译的(vc6或者vc9)

2.zend_extension_ts=php_xdebug.dll (zend_extension_ts=php_xdebug.dll写在[xdebuge]模块里)

3.注释或不写extension=php_xdebug.dll(和Dynamic Extensions中列出的一堆*.dll写在一起),否则apache启动的错误日志里会提示警告,xdebug必须以zend的扩展(而不是php的扩展)进行加载,(写了也不影响加载,依旧会在phpinfo()里出现)

4.”上下”都写明了xdebuge扩展的路径,Apache会提示重复加载,但不影响加载,主要还是PHP的版本和xdebuge版本得匹配

 

p.s.

只运行简单的phpinfo();函数测试:

xdebug的2.0.3-2.0.5的ts版本可以被apmserv 5.2.6使用,但包括2.1.0版本在内的新版本,即使是用vc6编译的带ts功能的xdebug,apmserv5.2.6中都不能使用,会出现页面重置的情况,不知道为什么(应该能使用,但我不知道还需要修改什么配置)。

php_xdebug-2.0.3-5.2.5.dll(名字中没有nts表明该版本的xdebug在编译的时候配置带有线程安全功能)

php_xdebug-2.0.4-5.2.8-nts.dll(nts意思是该版本的xdebug没有线程安全功能,Non-thread-safe)

php_xdebug-2.1.2-5.2-vc6.dll(该版本的xdebug是用vc6编译的,也是最后一个用vc6编译的版本,此后的版本都是用vc9编译的因此不能在apmserv5.2.6上使用)

打赏

转载请注明:苏demo的别样人生 » apmserv下xdebug的配置

   如果本篇文章对您有帮助,欢迎向博主进行赞助,赞助时请写上您的用户名。
支付宝直接捐助帐号oracle_lee@qq.com 感谢支持!
喜欢 (0)or分享 (0)
发表我的评论
取消评论
表情