2015-12-07 85 views
1

無法啓用XDEBUG。任何幫助或檢查,如果它啓用,並沒有反映?我在PHP7上,正在使用Xdebug 2.4.0rc2。 PHP.INI設置如下:未啓用PHP XDEBUG

[XDebug] 
zend_extension="C:/php/ext/php_xdebug.dll" 

xdebug.remote_enable = on 
xdebug.remote_host = localhost 
xdebug.remote_port = 10000 
xdebug.remote_handler = dbgp 
xdebug.profiler_enable = 1 
xdebug.profiler_enable_trigger = 1 
xdebug.profiler_output_dir = "profilerlogs" 
xdebug.profiler_output_name = cachegrind.out.%p 

無法啓用它。這些步驟是正確的,但也沒有顯示安裝在phpinfo()中。

+0

'phpinfo()'顯示xdebug爲啓用嗎? – k0pernikus

+0

不可以。那裏沒有啓用。012h '配置命令\t cscript/nologo configure.js「--​​enable-snapshot-build」「--enable-debug-pack」「--with-pdo-oci = c:\ php-sdk \ oracle \ x64 \ instantclient_12_1 \ sdk,shared - 「--with-oci8-12c = c:\ php-sdk \ oracle \ x64 \ instantclient_12_1 \ sdk,shared」「--enable-object-out-dir = ../obj /」「 --enable-com-dotnet = shared「」--with-mcrypt = static「」--without-analyzer「」--with-pgo「 Debug Build \t no# 沒有Xdebug的輸入 – Gary

+1

Gary請創建一個帶有''<?php phpinfo();''的PHP文件並查看或使用命令行工具'php.exe -m''查看包含所有已啓用擴展名的列表 – ins0

回答

5

我有同樣的問題XAMPP PHP7現在它解決了:) 應該有丟失或在您的C:/php/ext/目錄錯誤extention文件。

這將解決您的問題。

  1. 轉到xDebug
  2. 下載中心Xdebug的2.4.0rc1(PHP 7.0 VCl 4 TS 32/64)
  3. 重命名爲php_xdebug.dll
  4. 粘貼 「PHP /轉」 這個文件夾
  5. 重新啓動您的服務器。

所以我剛換爲32位

+0

我相信我確實在'php7'上使用了'rc x64'版本,但是沒有工作。在'phpinfo()'中沒有顯示出來。在安裝調試瀏覽器擴展後,它將設置xdebug cookie,但這是我得到asexample的錯誤'調用未定義的函數xdebug_break()'。但是,我的'php -m'確實在所提到的@ ins0加載的擴展列表中顯示了xdebug。讓我嘗試使用xampp安裝程序,看看我是否可以使用它。可能是我設置的問題會得到解決。讓我試試並回復。謝謝。 – Gary

+1

它爲我工作,謝謝!即使我有一臺64位機器,我也必須使用32位分機。 –

+0

@CharlesBlackwell嗯......多數民衆贊成在奇怪的。我不得不安裝替代擴展 – Gary

0

我安裝了XAMPP像一個星期前,現在檢查phpinfo()

在我的案例有64位版本。它已經在ext文件夾中安裝了php_xdebug.dll文件。

對我來說,解決辦法是指定一個像下面的Xdebug的文件,沒有文件路徑:

zend_extension = "php_xdebug.dll" 
1

隨着什麼@海德爾 - lasani說,請不要忘了你使用的是什麼類型的PHP。最新的XAMPP正在使用一些非常複雜的設置。

轉到您的PHP文件夾,並檢查您是否有php7.dll或php7ts.dll。如果你有後者的版本,那麼你應該拿起xdebug的TS版本。 也檢查VC版本。在這種情況下它是VC14。 現在即使我正在使用PHP的TS版本,我仍然需要添加插件:zend_extension =「C:/php/ext/php_xdebug.dll」而不是zend_extension_ts =「C:/ php/ext/php_xdebug .DLL」

TL; DR 在下載了XDebug確保您:

  1. 檢查的x64/86位版本(使用86 Xdebug的只是爲了安全起見)
  2. 檢查的是哪個版本。你正在使用的PHP。
  3. 通過檢查您是否有php {x} .dll或php {x} ts.dll。{x}是您的php版本,檢查您是否有TS或非TS版本的PHP。
  4. 嘗試在zend_extension和zend_extension_ts之間切換,以將您的xdebug插件包含在您的php.ini文件中,以查看哪些方法可行。

按照所有這些步驟應該理想地解決您的問題。如果您仍然面臨任何問題,請告訴我。和平。

+0

是的這些都是有效的點。我可以管理服務器,所以我想我可能沒有錯過這些觀點,但讓我再檢查一次。 – Gary

1

你不應該需要重命名你的DLL,這是一個不錯的主意,因爲它可以讓你看到你正在運行的XDebug的內部版本。

這裏是我做的,它的工作原理:

這個答案假定您已經PHP設置了正確的路徑條目,以便您可以運行PHP的命令行如GitBash https://git-for-windows.github.io/

  1. 打開你的命令行,輸入:

    $ php -i

  2. 滾動到頂部和複製的命令行窗口中的輸出開始,你看到

    phpinfo()

    .....複製內容,直到你看到它結束的最後一行:

    If you did not receive a copy of the PHP license, or have any questions about PHP licensing, please contact [email protected] `

  3. 去XDebug Windows嚮導https://xdebug.org/wizard.php並將您的PHPInfo粘貼到大文本框中並提交。

  4. 一個新的頁面將顯示說明和「系統的PHP摘要。仔細按照指示,並選擇下載鏈接。

  5. 一旦修改你的php.ini和觀察在您的「分機」文件夾,複製您下載的XDebug DLL文件中的「內線」文件夾

  6. 再次打開命令行,輸入以下命令:

    $ php -m

如果你有正確遵循的指示,你會看到輸出包含以下內容:

[Zend Modules] Xdebug

否則,你會看到一個錯誤在控制檯輸出頂部如: Cannot load Xdebug

通常,錯誤的發生是因爲您的XDebug:

  • 是不是在正確的位置
  • 是錯誤的版本
  • 是因爲螺紋類型的不兼容:你的PHP也許線程安全的,你的XDebug不是線程安全的(該XDebug的嚮導會自動選擇正確版本)