ホームページ >バックエンド開発 >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 年、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 ファイルを実行し、デフォルトで [次へ] をクリックします。これにより、C ドライブに Zend Studio が正常にインストールされます。実行して閉じます。デフォルトは英語なので、中国語に変更しましょう。以下に示すように、ドライブ C (Zend Studio がインストールされているドライブ) でファイル「desktop_options.xml」を検索します。
それを見つけたら、メモ帳で開き、以下を見つけます:
上記の en を zh に変更して保存し、ファイルを「読み取り専用」としてマークします (Zend Studio は特定の時間に自動的に再起動し、デフォルト設定に戻ります。「読み取り専用」に設定されている場合) 、何もできなくなります)。さらに、次のようなエンコードオプションも実際の状況に応じて変更できます:
たとえば、
「スタートメニュー」から「Zend 開発環境 (Zend Studio)」を見つけて実行します。新しいプロジェクトを作成し、開発したソース コード パッケージをこのプロジェクトに導入します。この cms は、新しいプロジェクトのデバッグ オプションで設定します。ここで、いくつかの設定が同期されている限り、デバッグ サーバーの URL は 127.0.0.1 のようなアドレスにすることもできます:
また、「ツール」メニューの「環境設定」の「デバッグ」タブも以下のように設定されています。
今すぐチェックしてください:
成功すると、「デバッグサーバーに正常に接続されました。」ダイアログボックスが表示されます。
SupeSite7.0 ソース コード プロジェクトを開き、Zend Studio 組み込みブラウザを選択し、アドレス バーに http://127.0.0.1/cms/batch.search.php と入力します。ここでは、検索ページ コードのデバッグを示します。 SuperSite7.0の。次に、ブラウザの左端にある「Scale Insect」ボタンを直接押して (その隣の逆三角形からさまざまなデバッグ範囲を選択できます)、batch.search.php ページのデバッグに直接入力します (batch.search.php の場合)。 php ページが以前に編集状態になかった場合、つまり開いていない場合は、F11 を使用してステートメントごとに実行すると、現在のデバッグ ページに含まれる外部コード ファイルが自動的に開きます。
も開かれます。
デバッグ ボタンを押した後、ソース コードに直接移動すると、次のようにカーソルが最初のステートメントに配置されます (ここではブレークポイントを設定せず、F5 モードでプログラムをデバッグしました)。
次に、ボタンをクリックしてフォーム値を送信し、それをキャプチャするテストをしてみましょう。下の図に示すように、「検索」ボタンをクリックすると、「CMS とは」というキーワードがどのように処理されるかを確認できます。操作シーケンスは次のようになります。 http://127.0.0.1/cms/batch.search.php を開く -> キーワード「CMS とは」を入力 -> [検索] ボタンをクリック -> ブラウザをクリックツールバーの「昆虫のスケール」ボタン。
デバッグ後、「CMS とは?」がどのような変数に保存され、処理されているかを確認できます。以下に示すように:
この時点で、Zend Studio+PHPnow+Zend Debugger サーバー デバッグ環境全体がセットアップされ、使用法が実証されました。