У Frankenphp есть файл readme о том, как настроить xdebug (с помощью PHPStorm). Однако в нем говорится, что клиент xdebug прослушивает порт 443. И в этом проблема, потому что, насколько я понимаю, это привилегированный порт под Linux, и я бы предпочел не запускать свою IDE с привилегиями суперпользователя.
Моим предпочтительным решением было бы настроить Frankenphp/caddy таким образом, чтобы xdebug прослушивал непривилегированный порт (в целях разработки), например 9003. Как бы мне это сделать? (На самом деле phpinfo говорит, что xdebug слушает 9003, но caddy, кажется, переназначает это, потому что мне не удалось настроить какую-либо IDE, используя этот порт.)
Я использую дистрибутив Manjaro.< /p>
Я не думаю, что это актуально, но вот протестированная мной настройка VSCode:
Код: Выделить всё
{
"version": "0.2.0",
"configurations": [
{
"name": "Listen for XDebug on Docker",
"type": "php",
"request": "launch",
"port": 443,
"pathMappings": {
"/app/": "${workspaceFolder}"
}
}
]
}
Код: Выделить всё
Error: listen EACCES: permission denied 0.0.0.0:443
at Server.setupListenHandle [as _listen2] (node:net:1882:21)
at listenInCluster (node:net:1961:12)
at Server.listen (node:net:2063:7)
at /home/ben/.vscode-oss/extensions/xdebug.php-debug-1.35.0/out/phpDebug.js:312:24
at new Promise ()
at createServer (/home/ben/.vscode-oss/extensions/xdebug.php-debug-1.35.0/out/phpDebug.js:243:36)
at PhpDebugSession.launchRequest (/home/ben/.vscode-oss/extensions/xdebug.php-debug-1.35.0/out/phpDebug.js:335:34)
at PhpDebugSession.dispatchRequest (/home/ben/.vscode-oss/extensions/xdebug.php-debug-1.35.0/node_modules/@vscode/debugadapter/lib/debugSession.js:385:22)
at PhpDebugSession.dispatchRequest (/home/ben/.vscode-oss/extensions/xdebug.php-debug-1.35.0/out/phpDebug.js:613:15)
at PhpDebugSession.handleMessage (/home/ben/.vscode-oss/extensions/xdebug.php-debug-1.35.0/node_modules/@vscode/debugadapter/lib/protocol.js:61:18) {
code: 'EACCES',
errno: -13,
syscall: 'listen',
address: '0.0.0.0',
port: 443
}
Используя phpinfo(), я смог подтвердить , что:
- Для xdebug.client_host установлено значение host.docker.internal
< li>Для xdebug.client_port установлено значение 9003 - для Xdebug включены
Код: Выделить всё
Development Helpers
- установлено значение «да»
Код: Выделить всё
xdebug.start_with_request
Подробнее здесь: https://stackoverflow.com/questions/790 ... p-on-linux