2015-11-13 55 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

相關問題