PhpStorm Xdebug通过SSH隧道路径映射

时间:2018-02-28 18:31:33

标签: php phpstorm xdebug

我使用本地计算机(运行MAMP Pro的iMac)在远程服务器(Amazon Linux)上调试PHP。我可以让PhpStorm在第一行打破#34;并正确执行,但是当它移动到另一个文件时,它会完全错误。它一直在踩踏,似乎正在以这种方式工作,但是在错误的行上,所以我无法真正遵循代码。它实际上比它应该的位置开始大约20行。

我使用以下方法设置从本地计算机到Web服务器的SSH隧道:

ssh -g -N -R9000:localhost:9000 SSH_ALIAS

这很棒; PhpStorm选择它并开始调试。

我认为它与路径映射有关。我通过访问该站点的CLI工具调试命令,其PHP文件位于与项目Web根目录不同的根目录中(此CLI CLI脚本文件夹和Web服务器的文档根目录都设置在PhpStorm作为项目根目录)。

PhpStorm正确映射的第一个文件位于CLI工具的根目录中,而我尝试从第一个文件进入的第二个文件位于项目Web根目录中。所以这里是目录结构:

/usr/share/[CLI_TOOL_PATH]/[NAME].php - 服务器上的第一个文件路径 /usr/share/[CLI_TOOL_PATH]/[NAME].php - 本地计算机上的第一个文件路径

/var/www/html/main/[MODULE_PATH] - 服务器上的第二个文件路径 /var/Webroot/dev_imac/[MODULE_PATH] - 本地计算机上的第二个文件路径

我已尝试在PhpStorm中为localhost和端口9000设置一个PHP服务器,并在服务器上使用"绝对路径"映射到与本地文件相同的路径,我已尝试使用服务器上的"绝对路径"映射到服务器上的实际路径。值得注意的是,CLI工具的路径在本地计算机和服务器上完全相同,而Web根目录在两者上都不同。

我已经在远程服务器上设置了PHP,并在php.ini中设置了以下内容:

xdebug.remote_enable=1
xdebug.remote_host=localhost
xdebug.remote_port=9000
xdebug.remote_autostart=1
xdebug.idekey="PHPSTORM"
xdebug.remote_handler=dbgp

希望有人可以帮忙!在此先感谢:)

1 个答案:

答案 0 :(得分:0)

您应该在PHPStorm中使用以下路径映射:

|------------------------------------------------------------------------|
| File/Directory                      | Absolute path on server          |
|------------------------------------------------------------------------|
| /usr/share/[CLI_TOOL_PATH]          | /usr/share/[CLI_TOOL_PATH]       |
| /var/Webroot/dev_imac/[MODULE_PATH] | /var/www/html/main/[MODULE_PATH] |
|------------------------------------------------------------------------|

希望你已经设置好,所以PHPStorm知道左边的那两个目录 - 它需要认识到它们是项目的一部分。通常,您有一个项目根目录,所有文件都是子目录。