今天想装个xdebug试一下,因为之前都是用echo print exit之类的测试;
进官网https://xdebug.org/download.php下载source
也可以直接 wget https://xdebug.org/files/xdebug-2.5.5.tgz
接着解压 tar zxvf xdebug-2.1.0.tgz
运行 phpize
编译 ./configure --enable-xdebug
make
编译安装完成后会有一个 modules文件夹
注意:问题来了,按照网上的说法
cp modules/xdebug.so /你的php目录/xdebug
然后在php.ini里(php.ini文件的位置通过phpinfo()可以看到)
在配置最后加上
[Xdebug]
zend_extension =" 刚刚复制xdebug.so的目录/xdebug.so"
xdebug.profiler_enable=on
xdebug.trace_output_dir="/alidata/server/php/xdebug/"
xdebug.profiler_output_dir="/alidata/server/php/xdebug/"
xdebug.remote_enable=on
xdebug.remote_handler=dbgp
;xdebug.remote_host=localhost
;xdebug.remote_port=9999
到了这块,按照网上别人的说法,修改后,重启nginx,一直没有效果,反复对照路径是否错了,配置是否错了,发现都没问题,折腾了很久,都没有效果。
无奈之际在 phpinfo()里看到 extension_dir(我的是/xxx/server/php/lib/php/extensions/no-debug-non-zts-20121212/) ,才想到,可能和网上那几个帖子说的 复制 xdebug.so到文件夹那块有问题吧,难道根本就不能手动复制到随意的目录再指定?到extension_dir指定的目录下一看,已经有xdebug.so了,
也许刚刚编译的时候自动复制进这个指定的文件夹来了,都不用手动cp了,直接在配置里 zend_extension = 'xdebug.so' ,重启,果然有效果了
可能是因为服务器的软件版本和安装参数不一样,导致这个地方和别人的不一样,所以参照网上的帖子时,要学会灵活的变动。
ps:然后关于php.ini修改后是否配置有误,可以用下面这个试一下
php -i | grep "php.ini"