如何使用VSCode在Vagrant / Homestead上运行Xdebug 3(在Big Sur Mac上).<



突然,在新安装的Vagrant/Homestead运行新安装的Big Sur (macOS)时,我的(旧的)Xdebug配置由于某种原因不想与我的VSCode一起工作。

我花了好几个小时试图弄清楚,尝试了许多不同的设置,但没有运气。Xdebug不想工作

那么如何正确设置使其工作呢?

它不再正常工作的主要原因是,突然在Homestead的最新版本中,我们在版本3中有一个Xdebug,它改变了Xdebug 2的许多选项。它在很大程度上简化了事情,但也打破了以前的设置。您可以在Xdebug 3的页面上阅读更多关于对配置变量所做的更改。

要使Xdebug在Homestead/Vagrant/macOS (Big Sur)上工作,这些步骤是必需的。

  1. 您必须找到xdebug.ini位置,这很容易完成显示phpinfo()并检查路径,在我的情况下是:/etc/php/7.3/fpm/conf.d/20-xdebug.ini

  2. 打开并编辑:sudo vi /etc/php/7.3/fpm/conf.d/20-xdebug.ini:

我的配置如下:

zend_extension=xdebug.so
xdebug.client_port = 9003
xdebug.max_nesting_level = 512
xdebug.mode=debug
xdebug.start_upon_error = true
xdebug.idekey = VSCODE
; The MacOS way
xdebug.discover_client_host = false
xdebug.client_host = 10.254.254.254

已经改变的事情:

  • 端口-现在是9003,
  • 用于调试设置-现在使用这个简单的选项设置许多选项:xdebug.mode=debug
  1. 你必须保存文件并重新启动php-fpm:sudo service php7.3-fpm reload

  2. 对于macOS(在我的Windows机器上不需要),您必须:

确保您已经在MacOS上创建了主机地址别名10.254.254.254是你本地主机的别名。

通过做:sudo ifconfig lo0 alias 10.254.254.254。这里有更详细的解释。

  1. 安装VSCode PHP Debug (vcode - PHP - Debug)扩展

  2. 通过点击左边菜单中的调试图标来配置VSCode,然后编辑包含调试器配置的JSON文件。

粘贴:

{
"version": "0.2.0",
"configurations": [
{
"name": "My XDebug on Homestead",
"type": "php",
"request": "launch",
"pathMappings": {
"/home/vagrant/code/myproject": "${workspaceFolder}"
},
"port": 9003
}
]
}
  1. 最后安装Chrome Xdebug Helper扩展并打开(绿色bug)调试模式,当你想做调试。

  2. 还有一件事。如果你想启用/禁用Xdebug,假设出于性能原因,有一个非常简单和快速的方法来做到这一点。

启用:

sudo phpenmod xdebug
sudo service php7.3-fpm reload

禁用:

sudo phpdismod xdebug
sudo service php7.3-fpm reload

正如你所看到的,在不同的地方有很多不同的东西必须正确设置才能使它工作。这需要大量的谷歌和耐心,所以我认为这将是有用的把它放在这里为你和我未来的安装。:)

首先,确定您的站点运行的是哪个版本的PHP-FPM (changelaravel)。测试到您配置的站点的名称(. 请记住,您可以为Homested中的每个站点选择要使用的PHP版本。yaml文件。

$ cat /etc/nginx/sites-available/laravel.test | grep fastcgi_pass
fastcgi_pass unix:/var/run/php/php8.0-fpm.sock;

这将告诉您在Homestead虚拟机中编辑哪个配置文件(注意:如果PHP版本不同,请将8.0更改为)) .

$ sudo nano /etc/php/8.0/fpm/conf.d/20-xdebug.ini 

在这里,您可以删除所有以xdebug.*开头的行,取而代之的是添加这些行:

xdebug.mode=debug
xdebug.client_host=192.168.10.1
xdebug.client_port=9003
xdebug.max_nesting_level = 512

注:192.168.10.1是VirtualBox中主机的默认IP地址,它应该与您在局域网中的实际IP地址不同。注意,max_nesting_level不是必需的,它是Homestead的默认值,所以我把它留在那里。

现在在您的主机上的Visual Studio Code中,您可以设置启动。

{
// Use IntelliSense to learn about possible attributes.
// Hover to view descriptions of existing attributes.
// For more information, visit: https://go.microsoft.com/fwlink/?linkid=830387
"version": "0.2.0",
"configurations": [
{
"name": "Listen for Xdebug",
"type": "php",
"request": "launch",
// "stopOnEntry": true,
"pathMappings": {
"/home/vagrant/laravel.test": "${workspaceFolder}"
},
"port": 9003
},
{
"name": "Launch currently open script",
"type": "php",
"request": "launch",
"program": "${file}",
"cwd": "${fileDirname}",
"port": 9003
}
]
}

p。我保留了"stopOnEntry": true注释,以便我可以在需要时简单地取消注释,否则我只需在vscode中使用断点。

for Xdebug Version 3.0.3

  1. 设置IDE使用调试端口- 9003

  2. 修改/etc/php/7.x/fpm/conf.d/20-xdebug.ini

zend_extension = xdebug.so
xdebug.remote_port = 9003
xdebug.max_nesting_level = 512
xdebug.mode = debug
xdebug.client_host = 192.168.10.1

如果Homestead.yaml包含不同子网的IP地址,则此IP地址可能不同…

BTW,编辑完20-xdebug.ini后,像这样重新启动FPM

$ sudo service php7.4-fpm restart

并重新启动浏览器和IDE

p>

NetBeans和Vagrant (Laravel homestead)上测试,php 7.4,主机- WIN-10

相关内容

  • 没有找到相关文章

最新更新