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

[经验分享] 用Zend Studio+PHPnow+Zend Debugger搭建PHP服务器调试环境

[复制链接]

尚未签到

发表于 2015-8-23 16:29:58 | 显示全部楼层 |阅读模式
  本人主要是做ASP.NET开发的,但有时候也会接触到PHP,而且我认为PHP有很多源码值得学习,我们不是学习PHP代码的写法,而是学习源码的实现思路,或者免强叫为算法。
  作为一名非专业的PHP开发者,想要较方便地读懂并搞清楚一个PHP功能模块的运行细节,搭建一个PHP调试环境,然后单步调试程序,以掌握程序的整个运行过程显的尤为重要。
一、 准备安装文件
  1、PHPnow-1.5.3。“PHPnow 是 Win32 下绿色免费的 Apache + PHP + MySQL 环境套件包。简易安装、快速搭建的 PHP 环境。”
  2、ZendDebugger-5.2.14。Zend公司的PHP调试工具或叫插件。 http://downloads.zend.com/pdt/server-debugger/ZendDebugger-5.2.14-cygwin_nt-i386.zip
  3、ZendStudioEnterpriseEdition-v5.5.0。据说PHP业界最著名的IDE,不知道基于Eclipse插件的PHP开发环境如何,有时间玩一下再说。
二、 配置程序
  1、安装PHPnow。把安装包PHPnow-1.5.3.zip解压到一个地方,像我这里解压到“D:\soft\PHP”,然后双击PHP文件夹中的“Setup.cmd”开始安装,中间安装到MySql的时候会提示你输入数据库用户名和密码,本地测试用一般就都设为“root”。安装完成后在浏览器输入以下地址http://127.0.0.1/,如果成功的话,你将会看到如下画面:

DSC0000.jpg
    注意:如果你的系统之前有安装IIS,并且IIS是运行着的,要先把IIS停止掉,不然80端口会冲突,虽然通过“PnCp.cmd”工具可以修改Apache端口,但不建议这样改。

DSC0001.jpg
    2、安装ZendDebugger。把ZendDebugger-5.2.14-cygwin_nt-i386.zip解压到PHPnow安装目录,即“D:\soft\PHP”,然后把ZendDebugger-5.2.14RC9-cygwin_nt-i386文件夹名字改成ZendDebugger这样短文件名,进到ZendDebugger目录,我们可以看到下面那样的文件结构:

DSC0002.jpg
    现在要把文件夹中的X_X_x_comp文件夹重命名为php-X.X.x,比如将“5_2_x_comp”重命名为“php-5.2.x”,因为我的测试环境都是php5.2的,所以我可以只改“5_2_x_comp”这一个文件夹。这里的改动是为了等一下在php.ini中配置它。
  现在去PHP安装目录修改PHP配置文件,这个文件通常被命名为&#8220;php.ini&#8221;,让服务器能正确加载我们的模块。但是这个PHPnow环境下的PHP配置文件不叫&#8220;php.ini&#8221;,而是&#8220;php-apache2handler.ini&#8221;,我们怎么可以知道当前WEB服务器所用PHP的配置文件名呢。下面就是一个办法:在&#8220;D:\soft\PHP\htdocs&#8221;目录,建立一个phpinfo.php文件,并在其中输入内容&#8220;<?php echo phpinfo(); ?>&#8221;,然后打开浏览器可以看到如下信息,反白显示路径就是当前PHP配置文件所在路径了:

DSC0003.jpg
    注意:这里指的PHP配置文件是网站依赖的PHP配置文件,不是下面提到的Zend Studio目录下的php.ini文件(Zend Studio也自带了几个不同版本的PHP),如下图:

DSC0004.jpg
    修改&#8220;D:\soft\PHP\php-5.2.9-2-Win32\php-apache2handler.ini&#8221;文件。用记事本打开该文件,移动侧栏滚动条至最底部,在文档尾部可以发现以下配置节点:

DSC0005.jpg
    在其尾部追加:
  zend_extension_manager.debug_server_ts="D:\soft\PHP\ZendDebugger"
zend_debugger.allow_hosts=127.0.0.1/32,192.168.0.8/24
zend_debugger.expose_remotely=always
  最终应该像这样:

DSC0006.jpg
    解释一下:
  (1);zend_extension_ts="D:\soft\PHP\ZendDebugger\5_2_x_comp\ZendDebugger.dll"这是我注释的,因为这样设置zend_extension_ts重复,出现不能与ZendOptimizer共存情况。
  (2)、zend_extension_manager.debug_server_ts="D:\soft\PHP\ZendDebugger",这里指到目录就行了,PHP会自动根据自己版本去下面找php_X_X_X这样文件夹下面的dll文件,这也是上面我们为什么要对ZendDebugger下面子目录改名的原因。
  (3)、zend_debugger.allow_hosts=127.0.0.1/32,192.168.0.8/24,这里后面的192.168.0.8改成你自己的IP就行了,可以像下面那样查看到自己的IP地址:

DSC0007.jpg
    后面的&#8220;32&#8221;,&#8220;24&#8221;不用改,它们不是目录名,而是子网掩码类型代号,&#8220;32&#8221;代表&#8220;255.255.255.255&#8221;,&#8220;24&#8221;代表&#8220;255.255.255.0&#8221;。
  在浏览器打开:http://127.0.0.1/phpinfo.php,如果能看到如下信息则表明安装成功,注意看最后一行&#8220;with Zend Debugger v5.2.14, Copyright (c) 1999-2008, by Zend Technologies&#8221;。回到http://127.0.0.1/我们发现组件支持框里Zend Optimizer支持情况还是&#8220;Yes&#8221;的,说明我们Zend Debugger与Zend Optimizer是共存运行的(网上提供好些教程是不共存运行的,那样不够完美)。

DSC0008.jpg
    3、安装Zend Studio。解压ZendStudioEnterpriseEdition-v5.5.0.270.rar,执行解压文件后的win_setup.exe文件,默认一路Next下去,这样就把Zend Studio成功安装在C盘了。运行它,然后关闭,因为默认是英文的,我们去改成中文。在C盘(即Zend Studio安装所在盘),搜索文件&#8220;desktop_options.xml&#8221;,如下图。

DSC0009.jpg
    找到后用记事本打开,找到:
  <customized_property ID="desktop.language">
 <locale language="en" country="" variant=""/>
</customized_property>
  把上面的en改成zh并保存,然后把这个文件标记为&#8220;只读&#8221;( Zend Studio在特定的时候自动重启会改回默认设置,设成&#8220;只读&#8221;它就无能为力了)。另外像下面的编码选项也可根据实际情况修改:
  <customized_property ID="editing.encoding">
 <encoding name="Default"/>
</customized_property>
  比如可以改为<encoding name="UTF-8"/>,在用Zend Studio打开代码文件发现中文乱码时候可以修改这个选项看看。
三、 开始调试
  从&#8220;开始菜单&#8221;找到&#8220;Zend Development Environment(Zend Studio)&#8221;并运行它。新建一个项目,并在这个项目中引入一个开发好的源码包,我这里的源码包在&#8220;D:\soft\PHP\htdocs\cms&#8221;,这cms是SupeSite7.0程序,在新建项目的调试选项里设置成像下图,其中Debug Server URL也可以是127.0.0.1这样的地址,只要几处设置同步就行:

DSC00010.jpg   DSC00011.jpg
    另外&#8220;工具&#8221;菜单&#8220;首选项&#8221;的&#8220;调试&#8221;标签也设置成如下图:

DSC00012.jpg
    现在检查一下:

DSC00013.jpg
    成功的话将显示&#8220;已与Debug Server成功连接。&#8221;对话框。
  打开SupeSite7.0源码项目,选择Zend Studio内置浏览器,并在地址栏里输入:http://127.0.0.1/cms/ batch.search.php,这里我演示SupeSite7.0的搜索页代码调试。现在你直接按浏览器最左边的&#8220;介壳虫&#8221;按钮(从旁边倒三角可以选择不同的调试范围),直接进入batch.search.php页面调试(如果batch.search.php页之前不在编辑状态,即没有打开过,直接调试会自动打开,另外如果你用F11逐语句执行的话,当前调试页包含的外部代码文件也会被打开。

DSC00014.jpg
    按调试按钮后,直接转到源码,光标定位在第一个语句了(这里我没有设置断点,并以F5方式调试程序),像下面那样:

DSC00015.jpg
    现在我们测试一下点击一个按钮提交表单值并捕获它。像下图那样,点&#8220;搜索&#8221;按钮后看关键字&#8220;What is CMS ?&#8221;是被如何处理的。你操作顺序必须像这样:打开http://127.0.0.1/cms/batch.search.php&#8212;>输入关键字&#8220;What is CMS ?&#8221;&#8212;>点击&#8220;搜索&#8221;按钮&#8212;>点击浏览器工具栏的&#8220;介壳虫&#8221;按钮。

DSC00016.jpg
    调试后我们可以看到&#8220;What is CMS ?&#8221;是用什么变量存储并被处理的。如下图:

DSC00017.jpg
    至此,整个Zend Studio+PHPnow+Zend Debugger服务器调试环境搭建完毕,并演示了使用方法。

运维网声明 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-103104-1-1.html 上篇帖子: 为什么你是不合格的PHP程序员? 下篇帖子: php获取$_POST同名参数数组
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

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

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

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

扫描微信二维码查看详情

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


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


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


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



合作伙伴: 青云cloud

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