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 信息的地方。
Settings/Preferences | Build, Execution, Deployment | Deployment
Select 您的部署条目。如果您没有:创建一个新的(例如“就地”将起作用——不会复制任何文件)并配置它。
将这样的条目标记为该项目的默认值。如果您没有默认条目,那么 IDE 将针对 PhpStorm 的内置简单 Web 服务器构建 URLs。
现在是重要部分:在“映射”选项卡上,创建一个额外的映射条目。它应该 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 然后将其与 运行 或调试按钮一起使用:
- https://www.jetbrains.com/help/phpstorm/run-debug-configuration.html
- https://www.jetbrains.com/help/phpstorm/run-debug-configuration-php-web-application.html
或者,只需在您选择的浏览器中使用普通的旧书签,然后使用 JetBrains 所谓的零配置方法从那里开始调试(例如 Xdebug 辅助扩展:适用于每个现代浏览器):https://www.jetbrains.com/help/phpstorm/zero-configuration-debugging.html
我目前是 运行 一个 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 信息的地方。
Settings/Preferences | Build, Execution, Deployment | Deployment
Select 您的部署条目。如果您没有:创建一个新的(例如“就地”将起作用——不会复制任何文件)并配置它。
将这样的条目标记为该项目的默认值。如果您没有默认条目,那么 IDE 将针对 PhpStorm 的内置简单 Web 服务器构建 URLs。
现在是重要部分:在“映射”选项卡上,创建一个额外的映射条目。它应该 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 然后将其与 运行 或调试按钮一起使用:
- https://www.jetbrains.com/help/phpstorm/run-debug-configuration.html
- https://www.jetbrains.com/help/phpstorm/run-debug-configuration-php-web-application.html
或者,只需在您选择的浏览器中使用普通的旧书签,然后使用 JetBrains 所谓的零配置方法从那里开始调试(例如 Xdebug 辅助扩展:适用于每个现代浏览器):https://www.jetbrains.com/help/phpstorm/zero-configuration-debugging.html