簡體   English   中英

使用vagrant / puppet自動設置xdebug.remote_host ip地址

[英]Auto setting xdebug.remote_host ip address with vagrant/puppet

我正在使用puppet進行配置來設置Vagrant環境。

我遇到了一個問題,我希望xdebug在運行vagrant up時“正常工作”但是我需要在php.ini文件中指定主機ip地址xdebug.remote_host ,顯然每個都會有所不同機器配置使用所以我想在發布vagrant up時自動更新該值的方法。

VagrantFile:

config.vm.network :forwarded_port, guest: 9000, host: 9000

.ini設置:

'xdebug.default_enable=1',
'xdebug.remote_enable=1',
'xdebug.remote_handler=dbgp',
'xdebug.remote_host=localhost:9000',
'xdebug.remote_port=9000',
'xdebug.remote_autostart=0',
'xdebug.max_nesting_level=250'

我也嘗試過使用xdebug.remote_host=localhost

來自vagrant機器的ifconfig結果:

vagrant@precise64 ~ : ifconfig
eth0      Link encap:Ethernet  HWaddr 00:0c:29:cf:f9:89
      inet addr:192.168.61.142  Bcast:192.168.61.255  Mask:255.255.255.0

phpinfo()函數

REMOTE_ADDR 192.168.61.2

REMOTE_PORT 51886

只是為了確認,如果我給我的osx主機上的remote_host我的實際IP地址,它可以正常工作。

http://www.xdebug.org/docs/all_settings中所述 ,您可以設置選項

xdebug.remote_connect_back = 1

因此,xdebug將連接回請求網頁的主機,並將忽略選項“remote_host”。

此解決方案有一個問題:如果為任何請求和用戶啟用xdebug,打開網頁沒有運行xdebug客戶端(等待來自服務器的連接),並且具有非關閉的9000端口,則服務器將等待很長時間 (嘗試連接到客戶端的xdebug會話),最終可以加載頁面。 我有這個問題的Windows 7機器,因為它的防火牆實際上並沒有關閉端口,連接軟件無法理解,沒有人在監聽端口。

如果這不起作用:

我有相同的情況,然后我需要VirtualBox VM配置,這應該適用於任何IP的任何機器。 所以,我這樣做了:

  1. 我在VirtualBox中創建了虛擬網絡接口(我不知道,在vagrant中有沒有任何選項,但應該是這樣),並將其本地地址設置為192.168.100.1 ,因此,我的REAL機器有兩個地址: eth0:192.168.1.2vboxnet0:192.168.100.1
  2. 我已為虛擬機配置了以下值: IP=192.168.100.100 ,默認網關= 192.168.100.1
  3. 將我的XDebug配置為remote_ip=192.168.100.1

現在,我有3台這台機器的副本(我的副本,我的同事使用了2份),它工作正常!

因此,解決方案是將您的IP地址設置為某個“常數”,只是虛擬。

如果自定義流浪漢機器運行GNU / Linux或使用docker鏡像,您可以通過以下命令找到ip:

netstat -rn | grep "^0.0.0.0 " | cut -d " " -f10

要獲取IP,你第一次運行囤以下命令:

vagrant ssh #login into the machine

如果您是或想在流浪者中運行碼頭工人,請獲得獎勵

另一個有趣的案例是你在一個在流浪漢GNU / Linux映像中生成的docker容器中運行php。 在這種情況下,不要嘗試修改正在運行的php映像的shell並運行上面的命令,通過運行命令找到VM連接回主機的ip:

netstat -rn | grep "^0.0.0.0 " | cut -d " " -f10

在正在運行的VM的shell中,而不是在正在運行的docker容器上(使用docker execdocker-compose exec )。 如果是入口點腳本,則為XDEBUG ip設置環境變量,並在該值為空時自動設置該值,然后自動設置ip。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM