我正在尝试远程运行 Lando 以避免消耗本地资源。有时我需要在笔记本电脑上工作,而lando+xdebug是一头饥饿的野兽。
当地
我没有兰多在本地运行。我正在使用 PHPStorm 同步我的文件,而 Lando 正在远程运行。
远程
我有一个DigitalOcean液滴设置并运行一个Lando(drupal8(站点。我可以访问该网站,它正常运行:
http://165.xxx.xxx.xxx:ppppp
165.xxx.xxx.xxx,作为液滴的 IP 和
ppppp,是Lando(码头工人(公开容器的端口
.lando.yml
name: XXXXXX
recipe: drupal8
config:
php: 7.1
webroot: ./docroot
xdebug: false // overridden later
services:
appserver:
build:
- composer install
ruby:
type: ruby:2.4
run:
- "cd $LANDO_MOUNT && gem install compass"
tooling:
blt:
service: appserver
cmd: /app/vendor/acquia/blt/bin/blt
gem:
service: ruby
compass:
service: ruby
fix-compass:
service: ruby
cmd: "gem install compass"
.lando.local.yml
因为我不想为我的开发人员同伴提供此配置
config:
xdebug: true
config:
php: .lando.php.ini
.兰多.php.ini
xdebug.remote_enable = 1
xdebug.remote_autostart = 1
xdebug.remote_connect_back = 0
xdebug.remote_host = localhost
xdebug.remote_port = 9002
xdebug.remote_log = /xdebug.log
xdebug.remote_mode = req
xdebug.idekey = PHPSTORM
PHPStorm Server
主机- :本地主机
- 端口:9002
- 调试器:Xdebug
- 使用路径映射(选中( --
project
-->/app
我运行这个的步骤
- 开始侦听 PHPStorm 中的调试连接
- 使用
ssh -R 9002:localhost:9002 root@165.xxx.xxx.xxx
创建 SSH 隧道 - 刷新
http://165.xxx.xxx.xxx:ppppp
发现
- 使用
lando php -i
,我可以看到 xdebug 正在端口 9002 上正常运行(并且我所有的 php.ini 配置都设置了(。 - 使用
nc -z localhost 9002 || echo 'no tunnel open'
,我还可以判断 SSH 隧道对 9002 开放,因为它应该是。 - 我没有收到任何传入连接的提示
更新:
当我强制 9002 打开时取得了一些进展:
sudo iptables -A INPUT -p tcp -d 0/0 -s 0/0 --dport 9002 -j ACCEPT
但是,现在我收到此错误
Log opened at 2019-08-20 02:54:17
I: Connecting to configured address/port: 165.xxx.xxx.xxx:9002.
W: Creating socket for '165.xxx.xxx.xxx:9002', poll success, but error: Operation now in progress (29).
E: Could not connect to client. :-(
Log closed at 2019-08-20 02:54:17
所以我今年已经经历过几次了。几周前,我最初通过将 PHPSTORM 从 2018.1 升级到 2019.1 来解决这个问题。有人向我表明(在互联网上的某个线程上(下一个版本的 xdebug 的 XML 模式是不同的。它在更新后立即工作。似乎在 2019.2 年再次中断。
我最后一次让它工作是 2019.1.3。祝你好运!
更新:随着我继续更新 storm 和 php/xdebug,我发现这已经稳定下来了。一时间到处都是。