2015-11-13 57 views
1

打开xdebug的脚本虽然工作,但我无法弄清楚创建一个快捷方式来运行它。如果我在C:\Users\George\Desktop\Development\Config Files中打开管理员PowerShell,命令.\PHPxDebugOn将使用修改后的php.ini重新启动Apache。 (还有一个用于关闭xdebug的PHPxDebugOff.ps1。)单击快捷方式(以管理员身份运行时为ON)只会闪烁黑屏,但不会更改Apache。打开PHP xdebug的快捷方式打开

脚本:

$iniFile = "C:\Users\George\Desktop\Development\Config Files\php.ini" 
$xFile = "C:\Users\George\Desktop\Development\Config Files\xdebug.ini" 
$phpIniFile = "C:\PHP\php.ini" 

get-content $iniFile, $xFile | set-content $phpIniFile 

C:\Apache24\bin\httpd -k restart 

快捷方式目标:

%SystemRoot%\system32\WindowsPowerShell\v1.0\powershell.exe -file "&C:\Users\George\Desktop\Development\Config Files\PHPxDebugOn.ps1"

+0

是否有一个原因,为什么xdebug没有在您的本地机器上不断启用?我会说:开发时使用xdebug,如果完成了:推送到甚至没有安装xdebug的服务器。无需重新启动apache,只要您想调试一些代码 –

+1

@EliasVanOotegem我不关闭xdebug,除非我需要它进行调试,因为它在响应时间上有显着的区别。大部分的开发都是通过功能测试完成的,我对xdebug感到不耐烦。 Apache仅用于开发。 – geoB

+0

另一种方法是创建一个具有自己的ini设置的并行虚拟主机,例如local.dev用于非xdebug环境,localx.dev指向相同的文件,但启用了xdebug。然后更改url会自动启用/禁用xdebug而不必重新启动服务器 –

回答

1

看到,因为我的意见是,根据OP,这个问题的更好的方法,我将它张贴在这里作为一个答案:

我会做的就是创建一个指向第二个虚拟主机相同的源代码,但加载单独的php.ini文件以在该虚拟主机上启用xdebug。这样,您可以简单地使用http://local.project.devhttp://local.project.debug以启用xdebug运行相同的代码。这样,每次你想使用xdebug来遍历代码时,你不必重新启动apache。

2

的问题是在快捷方式的目标。

如果路径正确,则删除&符号应解析脚本不运行。

如果快捷方式中的目标文件以任何方式无效,PowerShell将退出而不尝试运行该脚本。除非可以评估/分析/检索命令中的所有内容,否则默认行为是停止所有内容并报告错误。这解释了为什么窗口消失,即使指定了-NoExit参数。 PowerShell在窗口可见的短暂时刻显示错误。屏幕刷新率和处理器速度正是他们的要求,屏幕截图有点难以捉摸。

样品1:%SystemRoot%\system32\WindowsPowerShell\v1.0\powershell.exe -NoExit -file "&C:\scripts\hello.ps1"

Invalid shortcut file path

样品2:%SystemRoot%\system32\WindowsPowerShell\v1.0\powershell.exe -NoExit -file "C:\scripts\hello.ps2"

Invalid extension

样品3(成功):%SystemRoot%\system32\WindowsPowerShell\v1.0\powershell.exe -NoExit -file "C:\scripts\hello.ps1"

Successful PowerShell shortcut execution

注:

  • 摄制环境:使用PowerShell 5.0 2015年4月预览Windows 7企业版
  • 的.ps2文件扩展名可能是有效的在某些系统上
  • 您可以通过使用-NoProfile跳过加载PowerShell配置文件参数
  • File must be the last parameter in the command,因为在File参数名称后键入的所有字符都被解释为脚本文件路径,后跟脚本参数
+0

我已经upvoted,因为你的答案导致我一个适当的捷径。我了解到'-file -NoExit'是不恰当的语法:它读取'-NoExit'作为文件名。另外,我必须在'Microsoft.PowerShell_profile.ps1'中注释掉所有内容才能使其工作。现在我必须弄清楚我可以放回什么。由于基本问题是xdebug,而不是PowerShell,我已经接受了@EliasVanOotegem答案。感谢你让我走上了道路。 – geoB

相关问题