SlideShare a Scribd company logo
PHP更有效率的除錯 - XDebug
         1011012 @ Hiiir Inc.
  Taien Wang<taien_wang@hiiir.com>
前言

•   PHP

•   以往的除錯

    – echo、print_r()、var_dump()、printf()

•   Zend Framework的除錯

    – Zend_Debug::dump()、Zend_Log
為什麼其他語言開發者可以?
Xdebug – 讓PHP也可以

•   http://xdebug.org/

•   Xdebug是一個開放原始碼的PHP程序除錯器(即一個Debug工具),可以用
    來跟踪,除錯和分析PHP程序的執行狀況。 Xdebug現在的最新版本是
    xdebug 2.2.1,支持PHP4/PHP5。



•   可溝通IDE

    – NetBeans、Eclipse 、Zend Studio、Notepad++…
Xdebug – Windows 安裝

•   自行安裝

    – 下載php_xdebug.dll放置phpext下



•   Apache整合包

    – XAMPP內建
Xdebug – Linux 安裝
•   直接下載某特定版本
    –   http://xdebug.org/download.php


•   客製化安裝
    –   執行phpinfo()直接複製畫面的文字資料
    –   貼到 http://xdebug.org/wizard.php 分析
         •   wget http://xdebug.org/files/xdebug-2.2.1.tgz
         •   tar -xvzf xdebug-2.2.1.tgz
         •   cd xdebug-2.2.1
         •   phpize
         •   ./configure
         •   make
         •   cp modules/xdebug.so /usr/lib/php/modules
         •   vi /etc/php.ini
         •   zend_extension = /usr/lib/php/modules/xdebug.so
Xdebug - Windows 設定
•   可在php.ini設定或是統一額外的conf中設定

     – [XDebug]
     – ;; Only Zend OR (!) XDebug
     – zend_extension_ts="C:xamppphpextphp_xdebug.dll"
     – xdebug.remote_enable = 1
     – xdebug.remote_connect_back = 1 (多人連線)
     – xdebug.remote_port=9000
     – xdebug.remote_handler=dbgp
     – xdebug.profiler_output_dir="C:xampptmp"
     – xdebug.remote_host=127.0.0.1 (你要反連的IP)
     – xdebug.profiler_enable=1
     – xdebug.remote_log = "C:xampptmp"
Xdebug - Linux 設定
•   在php.ini或是xdebug.ini
    – zend_extension=/usr/lib/php5/20090626+lfs/xdebug.so
    – xdebug.remote_log="/var/log/xdebug.log"
    – xdebug.remote_connect_back=1
    – xdebug.remote_autostart = 1
    – xdebug.remote_enable = 1
    – xdebug.remote_connect_back = 1
    – xdebug.remote_port=2222
    – xdebug.remote_handler=dbgp
    – xdebug.remote_host=192.168.0.4
    – xdebug.profiler_enable=1
單人與多人連線方式差異

•   單人




•   多人
Xdebug成功畫面
常見問題(1/2)

•   無法連線

    – 有其他的conf檔衝突(如:php.ini、xdebug.ini)

    – 確定伺服器與客戶端的設定匹配

    – 伺服器與客戶端防火牆要開

    – 確定端口沒有占用

    – 將php.ini裡的Zend區塊註解

    – 專案的起始目錄
常見問題(2/2)
參考資料

•   XDEBUG官網

More Related Content

PPTX
使用 Visual Studio Code 建構 JavaScript 應用程式
PDF
Internal php and gdb php core
PDF
Node.js從無到有 基本課程
PDF
Visual Studio Code 快速上手指南
PPT
编辑器设计U editor
PDF
Npm 套件管理 & 常用開發工具介紹
PDF
Class 20170126
PDF
[Modern Web 2016] 讓你的 PHP 開發流程再次潮起來
使用 Visual Studio Code 建構 JavaScript 應用程式
Internal php and gdb php core
Node.js從無到有 基本課程
Visual Studio Code 快速上手指南
编辑器设计U editor
Npm 套件管理 & 常用開發工具介紹
Class 20170126
[Modern Web 2016] 讓你的 PHP 開發流程再次潮起來

What's hot (20)

PDF
Phpconf 2011 introduction_to_codeigniter
PPTX
lua & ngx_lua 的介绍与应用
PDF
编辑器设计Kissy editor
PDF
NodeJS基礎教學&簡介
PDF
[PHP 也有 Day #64] PHP 升級指南
PPTX
Ch9 package & port(2013 ncu-nos_nm)
PDF
CP 值很高的 Gulp
PDF
Berserk js
PPT
Node.js在淘宝的应用实践
PPTX
用 Docker 改善團隊合作模式
PDF
Koa 正在等一個人
PDF
Composer 從入門到實戰
PPTX
Docker 基礎介紹與實戰
PDF
凌波微步:wagon + VS Code 的輕功哲學
PPTX
OpenResty/Lua Practical Experience
PPT
Perl在nginx里的应用
PDF
百度前端性能监控与优化实践
PPTX
02.python.开发最佳实践
PDF
專案啟動與環境設定
PPTX
TypeScript 開發實戰:開發即時互動的 html5 websocket 聊天室應用程式
Phpconf 2011 introduction_to_codeigniter
lua & ngx_lua 的介绍与应用
编辑器设计Kissy editor
NodeJS基礎教學&簡介
[PHP 也有 Day #64] PHP 升級指南
Ch9 package & port(2013 ncu-nos_nm)
CP 值很高的 Gulp
Berserk js
Node.js在淘宝的应用实践
用 Docker 改善團隊合作模式
Koa 正在等一個人
Composer 從入門到實戰
Docker 基礎介紹與實戰
凌波微步:wagon + VS Code 的輕功哲學
OpenResty/Lua Practical Experience
Perl在nginx里的应用
百度前端性能监控与优化实践
02.python.开发最佳实践
專案啟動與環境設定
TypeScript 開發實戰:開發即時互動的 html5 websocket 聊天室應用程式
Ad

Viewers also liked (8)

PDF
用戶端攻擊與防禦
PDF
伺服器端攻擊與防禦III
PDF
伺服器端攻擊與防禦I
PDF
伺服器端攻擊與防禦II
PDF
淡江大學 - 網站開發應用技術及雲端應用技術
PDF
網站程式資安白箱與黑箱檢測處理經驗分享
PDF
[Community Open Camp] 給 PHP 開發者的 VS Code 指南
PPT
Owasp Top 10 And Security Flaw Root Causes
用戶端攻擊與防禦
伺服器端攻擊與防禦III
伺服器端攻擊與防禦I
伺服器端攻擊與防禦II
淡江大學 - 網站開發應用技術及雲端應用技術
網站程式資安白箱與黑箱檢測處理經驗分享
[Community Open Camp] 給 PHP 開發者的 VS Code 指南
Owasp Top 10 And Security Flaw Root Causes
Ad

Similar to PHP更有效率的除錯 - XDebug (20)

DOC
康盛创想项目部Linux 服务器部署标准(最新版)
PDF
和Android源代码一起工作 | 海豚浏览器 胡继堂
DOC
X64服务器 lamp服务器部署标准 new
PDF
Introduction to MVC of CodeIgniter 2.1.x
PDF
基于 FRIDA 的全平台逆向分析
 
PPTX
Shell,信号量以及java进程的退出
PDF
Web development with zend framework
PPT
Wamp环境下安装 wordpress
PDF
Django step0
PDF
讓軟體開發與應用更自由 - 使用 Docker 技術
DOC
Nagios的安装部署和与cacti的整合(linuxtone)
PDF
推薦系統實作
 
PPT
Node分享 展烨
PPT
注重实效的编程(2)
DOC
CentOS5 apache2 mysql5 php5 Zend
PPTX
这年头,你只需要懂Node webkit
PDF
專案啟動與設定
PDF
以Code igniter為基礎的網頁前端程式設計
PDF
打開窗,讓大象跨進來 - Microsoft HDInsight
PDF
Openshift by mtchang
康盛创想项目部Linux 服务器部署标准(最新版)
和Android源代码一起工作 | 海豚浏览器 胡继堂
X64服务器 lamp服务器部署标准 new
Introduction to MVC of CodeIgniter 2.1.x
基于 FRIDA 的全平台逆向分析
 
Shell,信号量以及java进程的退出
Web development with zend framework
Wamp环境下安装 wordpress
Django step0
讓軟體開發與應用更自由 - 使用 Docker 技術
Nagios的安装部署和与cacti的整合(linuxtone)
推薦系統實作
 
Node分享 展烨
注重实效的编程(2)
CentOS5 apache2 mysql5 php5 Zend
这年头,你只需要懂Node webkit
專案啟動與設定
以Code igniter為基礎的網頁前端程式設計
打開窗,讓大象跨進來 - Microsoft HDInsight
Openshift by mtchang

More from Taien Wang (15)

PDF
[MOPCON2019]從零建立商業技術團隊
PDF
[ModernWeb2019] Taien - 高併發的道與術
PPTX
[ModernWeb2018] Web3.0 區塊鏈 DApp + 智能合約開發:你必要挑戰的坑坑洞洞
PDF
百人團隊敏捷轉型暨持續性整合與交付實踐
PDF
淡江Git與GitHub操作介紹
PDF
成長駭客 Growth Hacker
PPTX
20160105 wnmp & phalcon micro app - part II
PPTX
20151229 wnmp & phalcon micro app - part I
PDF
我編程.我快樂
PDF
Scrum深入淺出
PDF
淡江大學 - 產品測試+安全性測試+壓力測試
PDF
淡江大學 - ios+android+html5(javascript)
PDF
Android Taipei 2013 August - Android Apps Security
PDF
使安全成為軟體開發必要部分
PDF
基礎網頁程式攻擊檢驗
[MOPCON2019]從零建立商業技術團隊
[ModernWeb2019] Taien - 高併發的道與術
[ModernWeb2018] Web3.0 區塊鏈 DApp + 智能合約開發:你必要挑戰的坑坑洞洞
百人團隊敏捷轉型暨持續性整合與交付實踐
淡江Git與GitHub操作介紹
成長駭客 Growth Hacker
20160105 wnmp & phalcon micro app - part II
20151229 wnmp & phalcon micro app - part I
我編程.我快樂
Scrum深入淺出
淡江大學 - 產品測試+安全性測試+壓力測試
淡江大學 - ios+android+html5(javascript)
Android Taipei 2013 August - Android Apps Security
使安全成為軟體開發必要部分
基礎網頁程式攻擊檢驗

PHP更有效率的除錯 - XDebug

  • 1. PHP更有效率的除錯 - XDebug 1011012 @ Hiiir Inc. Taien Wang<taien_wang@hiiir.com>
  • 2. 前言 • PHP • 以往的除錯 – echo、print_r()、var_dump()、printf() • Zend Framework的除錯 – Zend_Debug::dump()、Zend_Log
  • 4. Xdebug – 讓PHP也可以 • http://xdebug.org/ • Xdebug是一個開放原始碼的PHP程序除錯器(即一個Debug工具),可以用 來跟踪,除錯和分析PHP程序的執行狀況。 Xdebug現在的最新版本是 xdebug 2.2.1,支持PHP4/PHP5。 • 可溝通IDE – NetBeans、Eclipse 、Zend Studio、Notepad++…
  • 5. Xdebug – Windows 安裝 • 自行安裝 – 下載php_xdebug.dll放置phpext下 • Apache整合包 – XAMPP內建
  • 6. Xdebug – Linux 安裝 • 直接下載某特定版本 – http://xdebug.org/download.php • 客製化安裝 – 執行phpinfo()直接複製畫面的文字資料 – 貼到 http://xdebug.org/wizard.php 分析 • wget http://xdebug.org/files/xdebug-2.2.1.tgz • tar -xvzf xdebug-2.2.1.tgz • cd xdebug-2.2.1 • phpize • ./configure • make • cp modules/xdebug.so /usr/lib/php/modules • vi /etc/php.ini • zend_extension = /usr/lib/php/modules/xdebug.so
  • 7. Xdebug - Windows 設定 • 可在php.ini設定或是統一額外的conf中設定 – [XDebug] – ;; Only Zend OR (!) XDebug – zend_extension_ts="C:xamppphpextphp_xdebug.dll" – xdebug.remote_enable = 1 – xdebug.remote_connect_back = 1 (多人連線) – xdebug.remote_port=9000 – xdebug.remote_handler=dbgp – xdebug.profiler_output_dir="C:xampptmp" – xdebug.remote_host=127.0.0.1 (你要反連的IP) – xdebug.profiler_enable=1 – xdebug.remote_log = "C:xampptmp"
  • 8. Xdebug - Linux 設定 • 在php.ini或是xdebug.ini – zend_extension=/usr/lib/php5/20090626+lfs/xdebug.so – xdebug.remote_log="/var/log/xdebug.log" – xdebug.remote_connect_back=1 – xdebug.remote_autostart = 1 – xdebug.remote_enable = 1 – xdebug.remote_connect_back = 1 – xdebug.remote_port=2222 – xdebug.remote_handler=dbgp – xdebug.remote_host=192.168.0.4 – xdebug.profiler_enable=1
  • 11. 常見問題(1/2) • 無法連線 – 有其他的conf檔衝突(如:php.ini、xdebug.ini) – 確定伺服器與客戶端的設定匹配 – 伺服器與客戶端防火牆要開 – 確定端口沒有占用 – 將php.ini裡的Zend區塊註解 – 專案的起始目錄
  • 13. 參考資料 • XDEBUG官網