簡體   English   中英

使用xdebug和netbeans調試php-cli腳本?

[英]Debugging php-cli scripts with xdebug and netbeans?

我已經設法從IDE本身啟動php-cli腳本調試會話,但是我需要從shell /命令行啟動調試會話。 這些是相當復雜的維護PHP腳本,需要許多輸入參數,因此從Netbeans中輸入參數有點麻煩。

我之前在Zend Studio中已經做到了: https : //zend18.zendesk.com/hc/en-us/articles/203838096-Debugging-PHP-CLI-Scripts ,但是現在我需要使其與Netbeans一起使用。

提前致謝。

我通過以下方法在Ubuntu / Netbeans上進行此工作:

  • 將xdebug配置行從/etc/php5/apache2/php.ini文件復制到/etc/php5/cli/php.ini中
  • 設置帶有調試會話名稱的環境變量(您可以從開始調試時netbeans啟動頁面的URL中的查詢字符串中獲取該變量),因此命令為: export XDEBUG_CONFIG="idekey=netbeans-xdebug"

然后,這只是在netbeans中啟動調試並在命令行執行php myscript.php情況。

注意:如果要使用netbeans進行遠程調試,則需要在從命令行運行的文件上使用Debug File,而不是正常的Debug。

xdebug.remote_autostart=On添加到您的php.ini文件中,或將-dxdebug.remote_autostart=On添加為PHP二進制調用的參數( php -d... script.php )。

參見http://xdebug.org/docs/remote

我將全部放在一起,以下是對我有用的。

file:
/etc/php5/cli/php.ini

zend_extension="/usr/lib/php5/20121212/xdebug.so" -> xdebug bin path
xdebug.remote_enable=on
xdebug.remote_host=127.0.0.1
xdebug.remote_handler="dbgp"
xdebug.remote_mode="req"
xdebug.remote_port=9000 -> same port configured in netbeans debugging tab
xdebug.idekey="netbeans-xdebug" -> same ide configured in netbeans debuggin tab
xdebug.remote_autostart=1

然后,沒有任何其他參數

php腳本.php

我有同樣的問題,我的解決方案是這樣的:

  1. 環境:Windows下的Netbeans 8.2(apache + php)
  2. 假設您已經將PHP和NetBeans配置為使用Xdebug調試代碼( http://wiki.netbeans.org/HowToConfigureXDebug#Notes_on_Windows_Configuration
  3. 在netbeans上創建新的配置(“項目屬性”>“運行配置”>“新建...”
  4. 在新的配置集中,不要打開Web瀏覽器(“高級”>“不要打開Web瀏覽器”)
  5. 激活新創建的配置(在工具欄中下拉)
  6. 設置調試點
  7. 打開調試(CTRL + F5)
  8. 打開終端窗口(“工具”>“在終端中打開”)
  9. 鍵入終端:$ export XDEBUG_CONFIG =“ idekey = netbeans-xdebug”(值“ netbeans-xdebug”必須與“工具”>“選項”>“調試”>“會話ID”一致)
  10. 輸入終端:$ php.exe -f“ C:\\ Apache24 \\ htdocs \\ www.SiteName \\ ScriptName.php”-“ Arg1 = x&Arg2 = y”
  11. 跟隨調試…

我有同樣的問題,我的解決方案是這樣的:

在Netbeans>項目窗口>右鍵單擊php項目>屬性>運行配置。 創建一個新配置。

填寫正確的值:

  • 以“腳本”運行
  • 設置PHP解釋器
  • 在我的情況下,更改索引文件為“ cron / index.php”。

如果您不想為IDE配置xDebug(我討厭配置),則可以使用Dephpugger項目。

https://github.com/tacnoman/dephpugger

您可以在終端中運行調試器,例如python的ipdb和Ruby的byebug。

確保還設置了DBGP_IDEKEY值,因為通常它不是idekey 例如在Linux上:

export DBGP_IDEKEY="netbeans-xdebug" 
export XDEBUG_CONFIG="netbeans-xdebug=netbeans-xdebug"

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM