phpDesigner是一款优秀的PHP集成开发工具,被phper广泛使用,有些用户在使用它调试代码时出现xxx指令引用的xxxx内存 该内存不能为"read",或者出现英文的不能开启eAccelerator模式,遇到这样的问题时不知所措,特别是使用一些快捷php环境搭建工具时更可能遇到,比如phpStudy环境搭建工具。其实出现此问题的原因在于eAccelerator,只要不加载即可避免此问题,eAccelerator是一个PHP加速程序,缓存php编译后的代码到共享内存,下次访问时直接读取不用再次编译从而提高性能,它位于php安装目录的ext文件夹里面,文件名为:eAccelerator.dll,一般开发环境无需加载它,取消加载如下过程:
打开php的配置文件php.ini,将里面的
[eaccelerator]
extension="eaccelerator.dll"
eaccelerator.shm_size="128"
;eaccelerator.cache_dir="/tmp/eaccelerator"
eaccelerator.enable="1"
eaccelerator.optimizer="1"
eaccelerator.check_mtime="1"
eaccelerator.debug="0"
eaccelerator.filter=""
eaccelerator.shm_ttl="0"
eaccelerator.shm_prune_period="0"
eaccelerator.shm_only="0"
等和eAccelerator有关的选项前面全部加上“;”,保存后重新启动服务器即可,
这样还并不能保证您的phpDesigner就能调试代码,还需要加载XDebug及安装WinCacheGrind
XDebug是php的一个调试工具,WinCacheGrind是解析XDebug输出的分析文件的一个win平台的查看工具
过程如下:
到http://www.xdebug.com/download.php下载XDebug,这里分线程安全和非线程安全,如果你不知道该下载哪一个,请把phpinfo()函数输出的全部内容复制提交到http://xdebug.org/find-binary.php则XDebug网站会告诉你该下载哪一个,下载好后将它放入PHP\ext目录,我这里下载下来的是php_xdebug-2.2.3-5.3-vc9-nts.dll
然后打开php的php.ini,在最后添加:
[XDebug]
zend_extension = .\ext\php_xdebug-2.2.3-5.3-vc9-nts.dll
xdebug.auto_trace=1
xdebug.collect_params=1
xdebug.collect_return=1
xdebug.trace_output_dir="C:/phpStudy/xdebug/"
xdebug.profiler_enable=1
xdebug.profiler_output_dir=C:/phpStudy/xdebug/profiler
保存重启服务器,XDebug便安装完毕,phpinfo()将显示它的相关信息,
我这里输出分析文件到C:/phpStudy/xdebug/profiler 这个你可以自定义,
好了 ,最后要做的是ctrl+e打开phpDesigner的配置,在调试里面配置WinCacheGrind地址,OK 按F9开启调试,xdebug输出分析文件到设置的目录,
WinCacheGrind打开分析文件,就可以看到程序运行的过程及所耗的时间了
本文由yunke【云游天下,做客四方】原创,有不清楚的地方请回复