在Linux上用xdebug调试PHP_Linux下安装xdebug扩展调试PHP

xdebug-preview
xdebug-preview

用了一款开源的php应用,在替换原有的memcache为memcacheD的过程中出现了一些问题。因为程序在linux server上,本地又没有php环境,没法很好的debug。于是各种搜下找到了xdebug.在笔者重装系统之前,曾经在windows下使用过xdebug,配合PHPStorm,很是方便。那么Linux下如何使用呢?

1. 下载xdebug: https://xdebug.org/download.php

2. 下载后编译,这里有两点要注意 a: xdebug需要phpize的支持,因为你要检测你是否已经安装了phpize。 b:编译时候除了–prefix还需要指定phpize的路径 –with-php-config=/path/to/php-config。 确定好了上述两点,编译之。

下面是我的编译过程:

./configure --enable-xdebug  --with-php-config=/usr/local/php/bin/php-configmake -j4 && make install

3. 编译后会告诉你生成的文件存储在哪里,找到它,在php中将其启用(我的生成路径在下面,让php启用xdebug扩展见下图)

/usr/local/php/lib/php/extensions/no-debug-non-zts-20131226/xdebug.so
xdebug
xdebug

其中ext-xdebug.ini,是新创建的,内容如下:

zend_extension=/usr/local/php/lib/php/extensions/no-debug-non-zts-20131226/xdebug.soxdebug.trace_output_dir = /tmp/logs ;这里就是xdebug的输出信息目录,不存在就创建一个,记得给写权限xdebug.trace_output_name = trace.%c.%pxdebug.collect_params = 4xdebug.collect_includes = Onxdebug.collect_return = Onxdebug.show_mem_delta = On

4. 搞定后重启php-fpm,然后查看phpinfo()中是否已经启用了xdebug扩展,如果一切顺利,会看到下面这些内容

xdebug_phpinfo
xdebug_phpinfo

5. 在需要调试的代码前后增加xdebug跟踪标记:

xdebug_start_trace();#your code here1#your code here2#your code here3...xdebug_stop_trace();

6. 至此运行你的代码,将会看到输入日志了(去/tmp/logs,你会看到类似下图这样的日志,vim or less一下寻找你碰到的问题根源吧。)

xdebug_logs
xdebug_logs
About 歇歇脚|Java|Linux 1036 Articles
歇歇脚元老