PHPDebug/Xdebug和VSCode的基本配置-设置根文件夹

xxe27gdn  于 2023-06-04  发布在  PHP
关注(0)|答案(1)|浏览(218)

可能是一个新手问题,但我很难理解/配置VSCode和Windows中的PHPDebug/Xdebug。我能解释的最好的方法是使用下面的一个例子。
假设我的项目结构如下所示,有一个根文件夹,几个应用程序文件夹和一个包含所有应用程序使用的文件的SharedFolder。

C:\WebAppRoot
C:\WebAppRoot\App
C:\WebAppRoot\App2
C:\WebAppRoot\SharedFiles\src
C:\WebAppRoot\SharedFiles\img

假设我加载了一个位于C:\WebAppRoot\App的项目。我对位于SharedFiles目录中的文件进行了几次调用,引用方式如下:

<script type="text/javascript" src="../SharedFiles/src/script.js>

但是当我启动“Launch Built-in Web server”选项时,这些文件无法定位,因为localhost指向C:\WebAppRoot\App作为根。
我不知道如何将launch.json配置为从根目录C:\WebAppRoot启动。我试过使用pathMappings和一堆其他配置,但它不工作,对我来说没有意义。
这是我目前的配置。任何帮助将不胜感激!

{
    "name": "Launch Built-in web server",
    "type": "php",
    "request": "launch",
    "runtimeArgs": [
        "-dxdebug.mode=debug",
        "-dxdebug.start_with_request=yes",
        "-S",
        "localhost:0"
    ],
    "log": true,
    "program": "",
     "pathMappings": {
         "c:/WebAppRoot":"${workspaceRoot}",
    },
    "cwd": "${workspaceRoot}",
    "port": 9003,
    "serverReadyAction": {
        "pattern": "Development Server \\(http://localhost:([0-9]+)\\) started",
        "uriFormat": "http://localhost:%s",
        "action": "openExternally"
    }
}
siotufzp

siotufzp1#

因为你的代码从PHP编译成HTML,然后呈现在DOM中。然后,客户机向服务器请求目录中上一级的文件,出于安全原因,您无法访问该文件。
通过这种方式,您可以访问PHP文件,因为服务器将预先处理这些文件,然后将编译后的代码提供给用户。

已编辑

我无法找到任何配置,但您的服务器(在mysite.example.com)基本上是在根目录下运行一个服务器,并分配不同的URL到您的网站。比如...

  • localhost/siteone -> siteone.example.com
  • localhost/sitetwo -> sitetwo.example.com

因此,这样您就可以访问根目录中的文件。如果你想在你自己的电脑上这样做,那么你必须安装apache serverxampp,因为php in-built development server没有任何配置选项。see this question.

详见路由教程

How to Build a Routing System for a PHP App from Scratch

相关问题