搜尋
首頁後端開發php教程用Zend Studio+PHPnow+Zend Debugger搭建PHP服务器调试环境步骤_PHP教程

本人主要是做ASP.NET开发的,但有时候也会接触到PHP,而且我认为PHP有很多源码值得学习,我们不是学习PHP代码的写法,而是学习源码的实现思路,或者免强叫为算法。

作为一名非专业的PHP开发者,想要较方便地读懂并搞清楚一个PHP功能模块的运行细节,搭建一个PHP调试环境,然后单步调试程序,以掌握程序的整个运行过程显的尤为重要。

一、 准备安装文件

1、PHPnow-1.5.6。“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/,如果成功的话,你将会看到如下画面:

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

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

现在要把文件夹中的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配置文件,这个文件通常被命名为“php.ini”,让服务器能正确加载我们的模块。但是这个PHPnow环境下的PHP配置文件不叫“php.ini”,而是“php-apache2handler.ini”,我们怎么可以知道当前WEB服务器所用PHP的配置文件名呢。下面就是一个办法:在“D:\soft\PHP\htdocs”目录,建立一个phpinfo.php文件,并在其中输入内容“”,然后打开浏览器可以看到如下信息,反白显示路径就是当前PHP配置文件所在路径了:

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

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

在其尾部追加:

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

最终应该像这样:

解释一下:

(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地址:

后面的“32”,“24”不用改,它们不是目录名,而是子网掩码类型代号,“32”代表“255.255.255.255”,“24”代表“255.255.255.0”。

在浏览器打开:http://127.0.0.1/phpinfo.php,如果能看到如下信息则表明安装成功,注意看最后一行“with Zend Debugger v5.2.14, Copyright (c) 1999-2008, by Zend Technologies”。回到http://127.0.0.1/我们发现组件支持框里Zend Optimizer支持情况还是“Yes”的,说明我们Zend Debugger与Zend Optimizer是共存运行的(网上提供好些教程是不共存运行的,那样不够完美)。

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

找到后用记事本打开,找到:


 

把上面的en改成zh并保存,然后把这个文件标记为“只读”( Zend Studio在特定的时候自动重启会改回默认设置,设成“只读”它就无能为力了)。另外像下面的编码选项也可根据实际情况修改:


 

比如可以改为,在用Zend Studio打开代码文件发现中文乱码时候可以修改这个选项看看。

三、 开始调试

从“开始菜单”找到“Zend Development Environment(Zend Studio)”并运行它。新建一个项目,并在这个项目中引入一个开发好的源码包,我这里的源码包在“D:\soft\PHP\htdocs\cms”,这cms是SupeSite7.0程序,在新建项目的调试选项里设置成像下图,其中Debug Server URL也可以是127.0.0.1这样的地址,只要几处设置同步就行:

 

另外“工具”菜单“首选项”的“调试”标签也设置成如下图:

现在检查一下:

成功的话将显示“已与Debug Server成功连接。”对话框。

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

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

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

调试后我们可以看到“What is CMS ?”是用什么变量存储并被处理的。如下图:

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

www.bkjia.comtruehttp://www.bkjia.com/PHPjc/714946.htmlTechArticle本人主要是做ASP.NET开发的,但有时候也会接触到PHP,而且我认为PHP有很多源码值得学习,我们不是学习PHP代码的写法,而是学习源码的实现...
陳述
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn
可以在PHP會話中存儲哪些數據?可以在PHP會話中存儲哪些數據?May 02, 2025 am 12:17 AM

phpsessionscanStorestrings,數字,數組和原始物。

您如何開始PHP會話?您如何開始PHP會話?May 02, 2025 am 12:16 AM

tostartaphpsession,usesesses_start()attheScript'Sbeginning.1)placeitbeforeanyOutputtosetThesessionCookie.2)useSessionsforuserDatalikeloginstatusorshoppingcarts.3)regenerateSessiveIdStopreventFentfixationAttacks.s.4)考慮使用AttActAcks.s.s.4)

什麼是會話再生,如何提高安全性?什麼是會話再生,如何提高安全性?May 02, 2025 am 12:15 AM

會話再生是指在用戶進行敏感操作時生成新會話ID並使舊ID失效,以防會話固定攻擊。實現步驟包括:1.檢測敏感操作,2.生成新會話ID,3.銷毀舊會話ID,4.更新用戶端會話信息。

使用PHP會話時有哪些性能考慮?使用PHP會話時有哪些性能考慮?May 02, 2025 am 12:11 AM

PHP会话对应用性能有显著影响。优化方法包括:1.使用数据库存储会话数据,提升响应速度;2.减少会话数据使用,只存储必要信息;3.采用非阻塞会话处理器,提高并发能力;4.调整会话过期时间,平衡用户体验和服务器负担;5.使用持久会话,减少数据读写次数。

PHP會話與Cookie有何不同?PHP會話與Cookie有何不同?May 02, 2025 am 12:03 AM

PHPsessionsareserver-side,whilecookiesareclient-side.1)Sessionsstoredataontheserver,aremoresecure,andhandlelargerdata.2)Cookiesstoredataontheclient,arelesssecure,andlimitedinsize.Usesessionsforsensitivedataandcookiesfornon-sensitive,client-sidedata.

PHP如何識別用戶的會話?PHP如何識別用戶的會話?May 01, 2025 am 12:23 AM

phpIdentifiesauser'ssessionSessionSessionCookiesAndSessionId.1)whiwsession_start()被稱為,phpgeneratesainiquesesesessionIdStoredInacookInAcookInAcienamedInAcienamedphpsessIdontheuser'sbrowser'sbrowser.2)thisIdallowSphptpptpptpptpptpptpptpptoretoreteretrieetrieetrieetrieetrieetrieetreetrieetrieetrieetrieetremthafromtheserver。

確保PHP會議的一些最佳實踐是什麼?確保PHP會議的一些最佳實踐是什麼?May 01, 2025 am 12:22 AM

PHP會話的安全可以通過以下措施實現:1.使用session_regenerate_id()在用戶登錄或重要操作時重新生成會話ID。 2.通過HTTPS協議加密傳輸會話ID。 3.使用session_save_path()指定安全目錄存儲會話數據,並正確設置權限。

PHP會話文件默認存儲在哪裡?PHP會話文件默認存儲在哪裡?May 01, 2025 am 12:15 AM

phpsessionFilesArestoredIntheDirectorySpecifiedBysession.save_path,通常是/tmponunix-likesystemsorc:\ windows \ windows \ temponwindows.tocustomizethis:tocustomizEthis:1)useession_save_save_save_path_path()

See all articles

熱AI工具

Undresser.AI Undress

Undresser.AI Undress

人工智慧驅動的應用程序,用於創建逼真的裸體照片

AI Clothes Remover

AI Clothes Remover

用於從照片中去除衣服的線上人工智慧工具。

Undress AI Tool

Undress AI Tool

免費脫衣圖片

Clothoff.io

Clothoff.io

AI脫衣器

Video Face Swap

Video Face Swap

使用我們完全免費的人工智慧換臉工具,輕鬆在任何影片中換臉!

熱工具

MinGW - Minimalist GNU for Windows

MinGW - Minimalist GNU for Windows

這個專案正在遷移到osdn.net/projects/mingw的過程中,你可以繼續在那裡關注我們。 MinGW:GNU編譯器集合(GCC)的本機Windows移植版本,可自由分發的導入函式庫和用於建置本機Windows應用程式的頭檔;包括對MSVC執行時間的擴展,以支援C99功能。 MinGW的所有軟體都可以在64位元Windows平台上運作。

EditPlus 中文破解版

EditPlus 中文破解版

體積小,語法高亮,不支援程式碼提示功能

Atom編輯器mac版下載

Atom編輯器mac版下載

最受歡迎的的開源編輯器

記事本++7.3.1

記事本++7.3.1

好用且免費的程式碼編輯器

SublimeText3 英文版

SublimeText3 英文版

推薦:為Win版本,支援程式碼提示!