转换xdebug On的脚本有效但我无法弄清楚创建一个运行它的快捷方式。如果我在C:\Users\George\Desktop\Development\Config Files
中打开管理员PowerShell,命令.\PHPxDebugOn
将使用修改后的php.ini重新启动Apache。 (还有一个PHPxDebugOff.ps1可以关闭xdebug。)单击快捷方式(以管理员身份运行)只会闪烁黑屏,但不会更改Apache。
脚本:
$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 :(得分:2)
问题出在快捷方式目标中。
如果路径正确,则删除&
符号应解决脚本未运行的问题。
如果快捷方式中的目标文件以任何方式无效,PowerShell将退出而不尝试运行脚本。除非可以评估/解析/检索命令中的所有内容,否则默认行为是停止所有内容并报告错误。这就解释了为什么即使指定了-NoExit
参数,窗口也会消失。 PowerShell确实在窗口可见的短暂时刻显示错误。屏幕刷新率和处理器速度就像它们一样,截图是一个难以接受的挑战。
示例1:%SystemRoot%\system32\WindowsPowerShell\v1.0\powershell.exe -NoExit -file "&C:\scripts\hello.ps1"
示例2:%SystemRoot%\system32\WindowsPowerShell\v1.0\powershell.exe -NoExit -file "C:\scripts\hello.ps2"
样本3(成功):%SystemRoot%\system32\WindowsPowerShell\v1.0\powershell.exe -NoExit -file "C:\scripts\hello.ps1"
注意:
-NoProfile
参数答案 1 :(得分:1)
根据OP,看到我的评论是解决问题的更好方法,我将在此处发布答案:
我要做的是创建指向同一源的第二个虚拟主机,但加载单独的php.ini文件以在该vhost上启用xdebug。这样,您只需使用http://local.project.dev
和http://local.project.debug
即可在启用xdebug的情况下运行相同的代码。这样,每次要使用xdebug逐步执行代码时,都不必重新启动apache。