- OS X 版本 12.1
- 流浪者版本 2.2.19
- vagrant 機器有 ubuntu 16.04
- php 7.4
- xdebug v3.0.2
- nginx服務器
我將 xdebug.ini 的配置更改為:
date.timezone = "Europe/Berlin"
short_open_tag = Off
xdebug.idekey=VSCODE
xdebug.mode=debug
xdebug.start_with_request=trigger
xdebug.client_port=9003
xdebug.client_host = 10.254.254.254
xdebug.max_nesting_level = 512
xdebug.log_level=10
xdebug.connect_timeout_ms=600
xdebug.log=/var/log/xdebug/xdebug33.log
xdebug.show_error_trace=true
并在 VS 代碼 lanuch.json 中:
{
// 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",
"port": 9003,
"pathMappings": {
"/var/www/":"../../../projects",
},
"log":true
},
{
"name": "Launch currently open script",
"type": "php",
"request": "launch",
"program": "${file}",
"cwd": "${fileDirname}",
"port": 9003
}
]
}
這是開始除錯后的日志輸出:
[24787] Log opened at 2021-12-27 09:48:14.979149
[24787] [Step Debug] INFO: Connecting to configured address/port: 10.254.254.254:9003.
[24787] [Step Debug] ERR: Time-out connecting to debugging client, waited: 600 ms. Tried: 10.254.254.254:9003 (through xdebug.client_host/xdebug.client_port) :-(
[24787] Log closed at 2021-12-27 09:48:15.606819
我嘗試將此埠添加到 vagrant 檔案,如下所示:
Vagrant.configure(2) do |config|
config.vm.box_url = "file:///Users/test/ubuntu16_php7.4_vagrantbox"
config.vm.box = "baazzbox"
config.vm.provider "virtualbox" do |v|
v.memory = 5120
v.customize ["setextradata", :id, "VBoxInternal2/SharedFoldersEnableSymlinksCreate//var/www","1"]
v.customize ["setextradata", :id, "VBoxInternal2/SharedFoldersEnableSymlinksCreate/var/www","1"]
end
#config.vm.box = "ubuntu/xenial64"
config.vm.network "private_network", ip: "192.168.33.33"
config.vm.network "forwarded_port", guest: 9003, host: 9003
config.vm.synced_folder "../", "/var/www"
config.vm.provision "fix-no-tty", type: "shell" do |s|
s.privileged = false
s.inline = "sudo sed -i '/tty/!s/mesg n/tty -s \\&\\& mesg n/' /root/.profile"
end
config.vm.provision "file", source: "root", destination: "~"
config.vm.provision :shell, path: "setup_vagrant.sh"
config.vm.box_check_update = false
end
我試圖添加和洗掉這一行:
config.vm.network "forwarded_port", guest: 9003, host: 9003
但它有相同的輸出
我也重新啟動服務,如下所示:
sudo service php7.4-fpm reload
sudo systemctl restart nginx.service
uj5u.com熱心網友回復:
終于找到問題了
- 將流浪時區更改為與主機時區相同
- 服務器 xdebug 配置 .ini 檔案更改為:
xdebug.idekey=VSCODE
xdebug.mode=debug
xdebug.start_with_request=yes
xdebug.remote_autorestart = 1
xdebug.client_port=9003
xdebug.discover_client_host=1
xdebug.max_nesting_level = 512
xdebug.log_level=10
xdebug.connect_timeout_ms=600
xdebug.log=/var/log/xdebug/xdebug33.log
xdebug.show_error_trace=true
請注意,此配置與 xdebug V3 相關
- 在 vagrant 檔案中,將埠 80 添加為 forwrded_port 是這樣的
Vagrant.configure(2) do |config|
config.vm.box_url = "file:///Users/toqaabbas/projects/theqar_vagrant/ubuntu16_php7.4_vagrantbox"
config.vm.box = "baazbox"
config.vm.provider "virtualbox" do |v|
v.memory = 5120
v.customize ["setextradata", :id, "VBoxInternal2/SharedFoldersEnableSymlinksCreate//var/www","1"]
v.customize ["setextradata", :id, "VBoxInternal2/SharedFoldersEnableSymlinksCreate/var/www","1"]
end
#config.vm.box = "ubuntu/xenial64"
config.vm.network "private_network", ip: "192.168.33.33"
config.vm.network "forwarded_port", guest: 80, host: 80
config.vm.provision :shell, :inline => "sudo rm /etc/localtime && sudo ln -s /usr/share/zoneinfo/Asia/Amman /etc/localtime", run: "always"
config.vm.synced_folder "../", "/var/www"
config.vm.provision "fix-no-tty", type: "shell" do |s|
s.privileged = false
s.inline = "sudo sed -i '/tty/!s/mesg n/tty -s \\&\\& mesg n/' /root/.profile"
end
config.vm.provision "file", source: "root", destination: "~"
config.vm.provision :shell, path: "setup_vagrant.sh"
config.vm.box_check_update = false
end
然后運行“vagrant reload”再次重新構建vagrant
- 最后將 lanuch.json 更改為:
{
// 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",
"port": 9003,
"pathMappings": {
"/var/www" : "/Users/myusername/projects"
},
},
{
"name": "Launch currently open script",
"type": "php",
"request": "launch",
"program": "${file}",
"cwd": "${fileDirname}",
"port": 9003
}
]
}
最重要的部分是“pathMappings”的正確位置
最后它的作品:)
轉載請註明出處,本文鏈接:https://www.uj5u.com/ruanti/401012.html
