PhpStorm Web 服务器调试验证的问题

Posted

技术标签:

【中文标题】PhpStorm Web 服务器调试验证的问题【英文标题】:Troubles with PhpStorm web server debug validation 【发布时间】:2019-05-08 04:27:44 【问题描述】:

phpStorm 中,我尝试在远程服务器上调试代码。 Web 服务器调试验证不断告诉我指定的 url 不可访问 (404)。

我的主机在windows下

我的服务器在 VirtualBox VM (Debian 9) 上

我使用 PhpStorm 在网络驱动器 V: 上编辑代码,指向我的 VM 的 /var/www/ 文件夹。这不是 VirtualBox 共享文件夹(Debian 9 不支持)。 所以,当我在 V:\myproject 上工作时,我实际上是在通过 smb 在 VM 上工作 /var/www/myproject

我遵循了很多教程,但从未成功。目前,我有以下配置:

PHP Cli 远程解释器,使用部署配置 所述部署配置的连接类型是SFTP(连接测试OK)。根路径是/var/www/myproject。网络服务器 url 是 https://my.project.local(url 在我的浏览器中测试过) 映射本地路径:V:\myproject 映射部署路径:/ 映射网络路径:/pub(此项目是 Magento 2 应用程序。Pub 是网络根目录)

当我尝试验证Web服务器调试时,我选择“远程Web服务器”,创建验证脚本的路径是V:\myproject\pub,部署服务器是前面描述的部署配置。

验证失败,提示“无法访问指定的 URL,原因是:'Request failed with status code 404'”。

有没有人已经通过这个特定的设置? (PhpStorm + VirtualBox VM + SFTP 连接上的远程调试)。你设法让它工作吗? 也许我应该尝试另一种方法让它工作?非常感谢您的帮助!

【问题讨论】:

【参考方案1】:

有点晚了,但是对于碰巧在 nginx 上运行 Magento 2 的其他人,请查看 nginx.conf.sample 或您正在使用的任何 ngxin.conf。

找到下面的块:

# PHP entry point for main application
location ~ ^/(index|get|static|errors/report|errors/404|errors/503|health_check)\.php$ 
    try_files $uri =404;
    fastcgi_pass   fastcgi_backend;
    fastcgi_buffers 1024 4k;

    fastcgi_param  PHP_FLAG  "session.auto_start=off \n suhosin.session.cryptua=off";
    fastcgi_param  PHP_VALUE "memory_limit=756M \n max_execution_time=18000";
    fastcgi_read_timeout 600s;
    fastcgi_connect_timeout 600s;

    fastcgi_index  index.php;
    fastcgi_param  SCRIPT_FILENAME  $document_root$fastcgi_script_name;
    include        fastcgi_params;

修改它,允许 Nginx 提供验证脚本:

# PHP entry point for main application
location ~ ^/(index|get|static|errors/report|errors/404|errors/503|health_check|_intellij_phpdebug_validator)\.php$ 
    try_files $uri =404;
    fastcgi_pass   fastcgi_backend;
    fastcgi_buffers 1024 4k;

    fastcgi_param  PHP_FLAG  "session.auto_start=off \n suhosin.session.cryptua=off";
    fastcgi_param  PHP_VALUE "memory_limit=756M \n max_execution_time=18000";
    fastcgi_read_timeout 600s;
    fastcgi_connect_timeout 600s;

    fastcgi_index  index.php;
    fastcgi_param  SCRIPT_FILENAME  $document_root$fastcgi_script_name;
    include        fastcgi_params;

【讨论】:

这行得通。万一进行这些更改后它不起作用。检查您为“创建验证脚本的路径”使用的路径:这应该指向 $MAGE_ROOT/pub,如果是 mac,它应该是 /usr/local/var/www/pub。 (假设您的 magento 安装在 /usr/local/var/www 中)。在 ubuntu 的情况下,它应该是 /var/www/html/pub。

以上是关于PhpStorm Web 服务器调试验证的问题的主要内容,如果未能解决你的问题,请参考以下文章

phpstorm+xdebug+dbgp远程多用户调试

使用 PHPStorm 解决 PHPUnit xdebug 远程调试问题

PHPStorm、Xdebug 和远程调试(在 phpstorm 中使用 FTP)

phpstorm+xdebug 远程调试

phpstorm xdebug调试配置 chrome

如何避免PhpStorm中的几个流浪服务器的“传入连接”弹出窗口