PhpStorm:更改 DocumentRoot 后更改 URL

PhpStorm: Change URL after changing DocumentRoot

我目前是 运行 一个 Laravel 8 项目,我的 DocumentRoot 指向 public 文件夹。

因此,如果我在浏览器中键入 http://localhost/,它会显示 public 文件夹,因为我已经以这种方式设置了我的网络服务器。

在 PhpStorm 中,我将该文件夹添加为资源文件夹,并希望它能“理解”这是新的 DocumentRoot。

但是,我注意到情况并非如此,因为如果我按 Alt + 2(在 Firefox 中显示),它会打开 http:///localhost/public/index。php 而不是 http:///localhost/index.php

有谁知道如何更改 PhpStorm 的 DocumentRoot,以便在浏览器中调试和打开页面实际上与网络服务器上的另一个 DocumentRoot 一起工作?

您需要为此配置部署条目,因为这是 IDE 在您使用“在浏览器中打开”功能时获取 ​​URL 信息的地方。

  1. Settings/Preferences | Build, Execution, Deployment | Deployment

  2. Select 您的部署条目。如果您没有:创建一个新的(例如“就地”将起作用——不会复制任何文件)并配置它。

  3. 将这样的条目标记为该项目的默认值。如果您没有默认条目,那么 IDE 将针对 PhpStorm 的内置简单 Web 服务器构建 URLs。

  4. 现在是重要部分:在“映射”选项卡上,创建一个额外的映射条目。它应该 link 你的本地 public 文件夹到你的网络根目录 URL:

    • “本地路径”= PROJECT_ROOT/public
    • "部署路径"=/public/
    • “网络路径”= /

现在,如果您在 public/index.php 文件上使用“在浏览器中打开”,IDE 将打开 http://YOUR_DOMAIN/index.php URL 并忽略不需要的 public/来自 URLs.


请注意,这对调试 PHP 控制器没有多大帮助(如果您按设计使用 Laravel)。

因为它是 Laravel,您将使用控制器和“不错的 URLs”...这样的映射几乎不会为您做任何事情。例如:

  • 用于处理 http://localhost/user/profile URL 的文件不会位于 PROJECT_ROOT/public/user/profile 文件中,但很可能位于 PROJECT_ROOT/App/Http/Controllers/User.php 或类似文件中。
  • 您可能在 1 个控制器文件中有多个操作。
  • 您需要为每个 URL 创建一个新映射(这一点都不方便)。
  • 最重要的是:如果您将以这种方式调用您的控制器,那么您只会看到 PHP 错误.. 因为您将绕过整个框架 bootstrap 代码。

如果您想从 IDE 内部启动调试器,您需要创建 Run/Debug 适当类型的配置(例如“PHP 网页”),指定URL 然后将其与 运行 或调试按钮一起使用:

或者,只需在您选择的浏览器中使用普通的旧书签,然后使用 JetBrains 所谓的零配置方法从那里开始调试(例如 Xdebug 辅助扩展:适用于每个现代浏览器):https://www.jetbrains.com/help/phpstorm/zero-configuration-debugging.html