検索
ホームページバックエンド開発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 Studio でコード ファイルを開いて中国語の文字化けが見つかった場合は、このオプションを変更できます。

3. デバッグを開始する

「スタートメニュー」から「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 サーバー デバッグ環境全体がセットアップされ、使用法が実証されました。

www.bkjia.comtru​​ehttp://www.bkjia.com/PHPjc/714946.html技術記事私は主に ASP.NET を開発していますが、時々 PHP に触れることがあります。PHP には学ぶ価値のあるソース コードがたくさんあると思います。私たちは PHP コードの書き方を学んでいるのではなく、ソース コードの実装を学んでいます。
声明
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。
どのデータをPHPセッションに保存できますか?どのデータをPHPセッションに保存できますか?May 02, 2025 am 12:17 AM

phpssionscanStorestrings、numbers、arrays、andobjects.1.strings:textdatalikeusernames.2.numbers:integersorfloatsforcounters.3.arrays:listslikeshoppingcarts.4.objects:complextructuresthataresialized。

どのようにPHPセッションを開始しますか?どのようにPHPセッションを開始しますか?May 02, 2025 am 12:16 AM

tostartaphpsession、outsession_start()atthescript'sbeginning.1)placeitbe foreanyouttosetthesscookie.2)usesionsionsionsionserdatalikelogintatussorshoppingcarts.3)再生セッションインドストップレベントフィックスアタック

セッションの再生とは何ですか?また、セキュリティをどのように改善しますか?セッションの再生とは何ですか?また、セキュリティをどのように改善しますか?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

phpsesionsareserver-side、whilecookiesareclient-side.1)Sessionsionsionsoredataontheserver、aremoresecure.2)cookiesstoredataontheclient、cookiestoresecure、andlimitedinsizeisize.sesionsionsionivationivationivationivationivationivationivationivate

PHPはユーザーのセッションをどのように識別しますか?PHPはユーザーのセッションをどのように識別しますか?May 01, 2025 am 12:23 AM

phpidentifiesauser'ssessionsingsinssessionCookiesIds.1)whensession_start()iscalled、phpgeneratesauniquesidstoredsored incoookienadphpsessidontheuser'sbrowser.2)thisidallowsphptortorieSessiondatadata fromthata

PHPセッションを保護するためのベストプラクティスは何ですか?PHPセッションを保護するためのベストプラクティスは何ですか?May 01, 2025 am 12:22 AM

PHPセッションのセキュリティは、次の測定を通じて達成できます。1。session_regenerate_id()を使用して、ユーザーがログインまたは重要な操作である場合にセッションIDを再生します。 2. HTTPSプロトコルを介して送信セッションIDを暗号化します。 3。Session_Save_Path()を使用して、セッションデータを保存し、権限を正しく設定するためのSecure Directoryを指定します。

PHPセッションファイルはデフォルトで保存されていますか?PHPセッションファイルはデフォルトで保存されていますか?May 01, 2025 am 12:15 AM

phpsessionFilesToredInthededirectoryspecifiedBysession.save_path、通常/tmponunix-likesystemsorc:\ windows \ temponwindows.tocustomizethis:1)uesession_save_path()tosetaCustomdirectory、ensuringit'swritadistradistradistradistradistra

See all articles

ホットAIツール

Undresser.AI Undress

Undresser.AI Undress

リアルなヌード写真を作成する AI 搭載アプリ

AI Clothes Remover

AI Clothes Remover

写真から衣服を削除するオンライン AI ツール。

Undress AI Tool

Undress AI Tool

脱衣画像を無料で

Clothoff.io

Clothoff.io

AI衣類リムーバー

Video Face Swap

Video Face Swap

完全無料の AI 顔交換ツールを使用して、あらゆるビデオの顔を簡単に交換できます。

ホットツール

SecLists

SecLists

SecLists は、セキュリティ テスターの究極の相棒です。これは、セキュリティ評価中に頻繁に使用されるさまざまな種類のリストを 1 か所にまとめたものです。 SecLists は、セキュリティ テスターが必要とする可能性のあるすべてのリストを便利に提供することで、セキュリティ テストをより効率的かつ生産的にするのに役立ちます。リストの種類には、ユーザー名、パスワード、URL、ファジング ペイロード、機密データ パターン、Web シェルなどが含まれます。テスターはこのリポジトリを新しいテスト マシンにプルするだけで、必要なあらゆる種類のリストにアクセスできるようになります。

メモ帳++7.3.1

メモ帳++7.3.1

使いやすく無料のコードエディター

DVWA

DVWA

Damn Vulnerable Web App (DVWA) は、非常に脆弱な PHP/MySQL Web アプリケーションです。その主な目的は、セキュリティ専門家が法的環境でスキルとツールをテストするのに役立ち、Web 開発者が Web アプリケーションを保護するプロセスをより深く理解できるようにし、教師/生徒が教室環境で Web アプリケーションを教え/学習できるようにすることです。安全。 DVWA の目標は、シンプルでわかりやすいインターフェイスを通じて、さまざまな難易度で最も一般的な Web 脆弱性のいくつかを実践することです。このソフトウェアは、

ドリームウィーバー CS6

ドリームウィーバー CS6

ビジュアル Web 開発ツール

MinGW - Minimalist GNU for Windows

MinGW - Minimalist GNU for Windows

このプロジェクトは osdn.net/projects/mingw に移行中です。引き続きそこでフォローしていただけます。 MinGW: GNU Compiler Collection (GCC) のネイティブ Windows ポートであり、ネイティブ Windows アプリケーションを構築するための自由に配布可能なインポート ライブラリとヘッダー ファイルであり、C99 機能をサポートする MSVC ランタイムの拡張機能が含まれています。すべての MinGW ソフトウェアは 64 ビット Windows プラットフォームで実行できます。