gre*_*reg 7 php xdebug puppet vagrant
我正在使用puppet进行配置来设置Vagrant环境.
我遇到了一个问题,我希望xdebug在运行时"正常工作" vagrant up但是我需要在php.ini文件中指定主机ip地址xdebug.remote_host,显然这在使用配置的每台机器上会有所不同所以我想在发布时自动更新该值vagrant up.
VagrantFile:
config.vm.network :forwarded_port, guest: 9000, host: 9000
Run Code Online (Sandbox Code Playgroud)
.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'
Run Code Online (Sandbox Code Playgroud)
我也试过了 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
Run Code Online (Sandbox Code Playgroud)
phpinfo()函数
REMOTE_ADDR 192.168.61.2
REMOTE_PORT 51886
只是为了确认,如果我remote_host在我的osx主机上给出了我的实际IP地址,它可以正常工作.
Mih*_*lpo 10
如http://www.xdebug.org/docs/all_settings中所述,您可以设置选项
xdebug.remote_connect_back = 1
Run Code Online (Sandbox Code Playgroud)
因此,xdebug将连接回请求网页的主机,并将忽略选项"remote_host".
此解决方案有一个问题:如果为任何请求和用户启用xdebug,打开网页没有运行xdebug客户端(等待来自服务器的连接),并且具有非关闭9000端口,则服务器将等待很长时间时间(尝试连接到客户端的xdebug会话),然后才能最终加载页面.我有这个问题的Windows 7机器,因为它的防火墙实际上并没有关闭端口,连接软件无法理解,没有人在监听端口.
如果这不起作用:
我有相同的情况,然后我需要VirtualBox VM配置,这应该适用于任何IP的任何机器.所以,我这样做了:
192.168.100.1,因此,我的REAL机器有两个地址:eth0:192.168.1.2和vboxnet0:192.168.100.1.IP=192.168.100.100,default gateway =192.168.100.1remote_ip=192.168.100.1现在,我有3台这台机器的副本(我的副本,我的同事使用了2份),它工作正常!
因此,解决方案是将您的IP地址设置为某个"常数",只是虚拟.