可移植的 PHP 调试


Portable PHP Debug

我正在使用XAMPP Lite的USB驱动器。我还发现了功能齐全的Netbeans便携式版本。

问题是由于路径问题,我无法安装 XDebug。例如,在我的本地PC服务器上PHP.ini配置文件看起来像那样

[zend]
zend_extension = "C:'Program Files (x86)'PHP'ext'php_xdebug.dll"
xdebug.remote_enable=On
xdebug.remote_host="localhost"
xdebug.remote_port=9000
xdebug.remote_handler="dbgp"
xdebug.profiler_enable = On 
xdebug.profiler_output_dir = C:'Windows'temp 
xdebug.dump_globals=On 
xdebug.show_exception_trace=On 
xdebug.collect_params=4 

如您所见,所有路径都是绝对的;我的意思是驱动器号。但是我无法为 USB 闪存驱动器写入绝对路径。

我的问题是:

  1. 有没有办法在USB闪存驱动器上使用Xammp Lite进行xDebug工作?
  2. 任何可移植的替代调试器?

最好的选择可能是有一个小的批处理脚本,以便在Windows中加载时自动始终分配相同的驱动器号。您可以从 USB 驱动器本身自动运行 - 这样它就可以完全便携。

您的脚本应如下所示:

@echo off
set NewLetter=X
@REM Find the (USB) drive with the flagfile "USB.root" and change its drive letter to "%NewLetter%"
@REM Abort if %NewLetter% already exist
if exist %NewLetter%: goto END_USB_DRIVE
if not exist "%SystemRoot%'System32'DISKPART.EXE" goto END_USB_DRIVE
@REM Find the drive with the flag file and set %_USBroot% to the old letter
for %%i in (c d e f g h i j k l m n o p q r s t u v w y z) do (
if exist %%i:'USB.root set _USBroot=%%i:
)
@REM Abort if no Drive with the flag file has been found
if "%_USBroot%" == "" goto END_USB_DRIVE
@REM Create the script file for DiskPart.exe on the USB-drive
echo select volume %_USBroot<> "%_USBroot%'ChangeDrvLetter.txt"
echo assign letter=%NewLetter<>> "%_USBroot%'ChangeDrvLetter.txt"
@REM Do the change -> %NewLetter%
DISKPART /S "%_USBroot%'ChangeDrvLetter.txt"
if exist "%NewLetter%:'ChangeDrvLetter.txt" del "%NewLetter%:'ChangeDrvLetter.txt"
:END_USB_DRIVE

上面的例子是从这里开始的 - 你也会在那里找到其他几个例子:http://www.techrepublic.com/forum/questions/101-220894/force-thumb-drive-or-flash-drive-to-same-drive-letter-each-time

相对路径没有解决你的问题吗?

zend_extension = "''PHP''ext''php_xdebug.dll"

xdebug.profiler_output_dir = ''temp