日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 人文社科 > 生活经验 >内容正文

生活经验

NetBeans配置Xdebug 远程调试PHP

發布時間:2023/11/27 生活经验 42 豆豆
生活随笔 收集整理的這篇文章主要介紹了 NetBeans配置Xdebug 远程调试PHP 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

很多PHP程序員使用echo,dump等比較原始的方法調試,這是非常落后的。


幾年前本人寫過一篇:

NetBeans配置Xdebug?

由于那篇文檔還需要引用本人寫的其他文檔,感覺有些分散,所以這里重新寫一篇完整的。

linux版本:64位CentOS 6.4

Nginx版本:nginx1.8.0

php版本:php5.5.28

xdebug版本:2.3.3

NetBeans版本:8.0.2


思想:本地寫php代碼,NetBeans自動上傳到遠程linux中運行并調試。

這樣做有幾個好處:

第一,本地往往是windows,很多時候windows和linux還是差異很大。

第二,可以多人聯調。


1.安裝xdebug

需要先去http://www.xdebug.org看看一些文檔,xdebug作為php擴展安裝

#?http://www.xdebug.org/files/xdebug-2.3.3.tgz

# tar -xzf xdebug-2.3.3.tgz
# cd xdebug-2.3.3
# /usr/local/php/bin/phpize
# ./configure --enable-xdebug --with-php-config=/usr/local/php/bin/php-config
# make && make install



配置PHP

如上圖所示,xdebug作為php擴展安裝好之后會在/usr/local/php/lib/php/extensions/no-debug-non-zts-20121212目錄生成xdebug.so文件,不同版本的php路徑不一樣。



修改php.ini文件

[Xdebug]
zend_extension="/usr/local/php/lib/php/extensions/no-debug-non-zts-20121212/xdebug.so"
xdebug.profiler_enable=on
xdebug.trace_output_dir="/usr/xdebug-tmp"
xdebug.profiler_output_dir="/usr/xdebug-tmp"xdebug.remote_enable=on
xdebug.remote_handle=dbgp
xdebug.remote_host=192.168.1.135
xdebug.remote_port=9008
說明:xdebug.trace_output_dir和xdebug.profiler_output_dir需要增加權限

#chmod 755 /usr/xdebug-tmp

xdebug.remote_host是本機IP,xdebug.remote_port是遠程linux中xdebug開啟的端口,需要注意防火墻需要打開。


重啟php-fpm

#?killall php-fpm

#? /etc/init.d/php-fpm


查看phpinfo一定有xdebug的擴展才說明安裝成功:



2.配置NetBeans

首先配置調試信息



再需要配置遠程連接信息


點擊“管理”彈出管理遠程連接對話框。


點擊添加可以新增一個遠程連接,注意連接類型選擇SFTP就可以了,這樣就可以使用默認的root賬號即可,否則需要自己架設FTP。


說明:如果新建PHP項目的時候已經設置好了就無需設置。


3.調試

設置好上述幾部以后,就可以在php代碼中打斷電,點擊“運行”--“調試項目”,

如果xdebug因為種種原因沒有配置好,那么在NetBeans右下角會一直顯示“連接中”。

只有顯示“運行”才說明是成功的,這時候就可以從監視窗口查看變量信息。




4.原理

使用Xdebug的遠程調試,Xdebug作為一個嵌入到PHP的程序,扮演著客戶端的角色,而IDE則作為服務器。下面的動態圖展示了連接建立的過程。

  • 服務端的IP為10.0.1.2, 使用HTTP協議,端口為80
  • IDE在IP地址為10.0.1.42的機器上,xdebug.remote_host被設置為10.0.1.42
  • IDE監聽9000端口,因此,xdebug.remote_port設置為9000
  • HTTP請求從運行這IDE的服務器上發起
  • Xdebug連接到10.0.1.42:9000
  • 調試開始運行,返回HTTP響應

使用非固定IP,多個開發者

如果使用了xdebug.remote_connect_back指令的話,連接的建立過程是不同的:

  • 服務端的IP是10.0.1.2, 端口為80
  • IDE運行在一個動態IP的計算機上,因此設置xdebug.remote_connect_back為1
  • IDE監聽端口 9000, 因此,配置xdebug.remote_port?為9000
  • 發送HTTP請求,Xdebug檢測HTTP header中的IP地址
  • 調試開始運行,產生HTTP響應

多用戶調試

Xdebug只允許你使用指定的IP地址(xdebug.remote_host)進行遠程調試連接.他不會自動的連接回瀏覽器運行訪問的機器IP,除非你是用xdebug.remote_connect_back指令。

如果你的開發者們在同一個服務器上的不同的項目上面進行開發,你可以使用Apache的每個目錄中的.htaccess功能指定xdebug.remote_host指令,配置php_value xdebug.remote_host=10.0.0.5。 但是,如果是多個開發者在同樣的代碼上進行開發的話,.htaccess將無法完成該項功能。

針對這個問題,這里有兩個解決方案。第一個是你可以使用DGBp代理,對于如何使用這個代理,請查看多用戶調試這篇文章。你可以在?ActiveState的站點?下載這個代理。這里有更多的文檔在Komodo FAQ.

第二個方案是可以使用xdebug.remote_connect_back配置項(Xdebug 2.1之后引入)。

更多參考:

PHP使用Xdebug進行遠程調試? ?這是官方文檔翻譯的。


其他參考:

在 NetBeans IDE 中調試 PHP 源代碼

使用netbeans進行PHP團隊開發和基于xdebug進行多人遠程調試

總結

以上是生活随笔為你收集整理的NetBeans配置Xdebug 远程调试PHP的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。