2

我的项目的目录结构是这样的:-

/var/www/includes/
/var/www/classes/

/var/www/public/css/
/var/www/public/js/
/var/www/public/index.php

webroot 是/var/www/public,因此访问测试域localhost.dev将提供目录内的public文件,因此会运行/var/www/public/index.php。无需访问喜欢localhost.dev/public/index.php

问题是当我在 Netbeans 中创建项目时,我必须设置索引文件,以便可以使用 xdebug 和 Netbeans 调试项目。

因此,当添加我/var/www作为项目源文件夹 ( Sources Folder)提供的项目时,includes并且classes在此文件夹中。在下一个项目配置屏幕 ( Choose Project > Name and Location > file path is taken as Run Configuration) 中,我被要求输入Project URLindex file. 由于该index.php文件实际上是在 下/var/www/public/,当我浏览文件并选择它时,索引页面的 url 被视为localhost.dev/public/index.php而不是只是localhost.dev/index.php. 这使我无法调试项目。

当所有源文件都不在 web 根目录中并且项目将使用 xdebug 进行调试时,任何人都可以指出如何将项目添加到 Netbeans。

4

4 回答 4

0

我还没有找到更好的方法,但我使用以下步骤:

  1. 菜单:项目属性-> 链接:运行配置-> 按钮:高级
  2. 调试 URL,选择:每次询问
  3. 路径映射,服务器路径:http ://localhost.dev/ ,项目路径:/var/www/public/

现在,当您开始调试过程时,Netbeans 将显示指定 URL弹出窗口,您可以将其从http://localhost.dev/public/index.php更改为http://localhost.dev/index.php

于 2013-07-28T22:29:04.497 回答
0

我有一个类似的设置,但有一个小区别:我的设置使用本地开发服务器上的远程站点。在项目属性的“运行配置”窗口中,我将“运行方式”设置为“远程网站(FTP、SFTP)”。我认为这不会影响我回答中的信息,但我只是为了以防万一。

转到项目属性的“源”窗口,找到“Web Root”条目,单击“浏览”并选择/var/www/public目录。这应该会导致 xDebug 使用localhost.dev/index.php。当您转到“运行配置”窗口并浏览索引文件时,您会注意到浏览窗口将以“公共”而不是“www”开始。

关于这种类型的配置的一个重要说明让我非常沮丧。

使用 xDebug 时,您将希望能够在 Web 根(公共)目录之外设置断点并使用这些文件。因为您已将 Web 根目录设置为/var/www/public,所以您将无法使用/var/www/includes或中的文件/var/www/classes

您需要做的是将 Web 根目录之外的文件添加到全局包含路径。

有两种方法可以将目录添加到全局包含路径,使用哪种方法取决于您如何配置项目。

在您的情况下,外部目录包含在您的项目中,因此您需要通过“选项”界面添加它们。转到工具->选项并选择“PHP”选项卡,然后将/var/www/includes/var/www/classes文件夹添加到全局包含路径。

将文件添加到全局包含路径的另一种方法是用于位于项目源文件夹之外的文件。对于类似的目录/var/folder_outside_www/,您可以使用项目属性中的“PHP 包含路径”窗口。

于 2012-09-01T15:28:16.200 回答
0

我认为将所有项目文件直接放入/var/www.

我认为您永远不会在实际部署的项目中看到这一点。所以我的第一个建议是改变你构建项目的方式。如果这不可能,请在 Netbeans 中选择/var/www/public项目文件夹。

如果 Netbeans 需要引用 中的文件夹,请/var/www在 public 中创建符号文件夹,指向/var/www.

您拥有的最后一个资源是在 Apache 中创建一个重写规则以使其localhost.dev/publiclocalhost.dev. 您可以在Apache 文档中查找此内容。

于 2012-06-14T18:56:30.827 回答
0

将 /var/www/public 设置为项目文件夹(包含 netbeans 项目文件夹)并包含在项目属性 /var/www/includes/ 和 /var/www/classes/ 中作为全局包含目录。或者最好的方法是使用 PHPStorm。

于 2016-03-23T06:17:38.743 回答