【问题标题】:How to add project to Netbeans when all source files are not in webroot?当所有源文件都不在 webroot 中时,如何将项目添加到 Netbeans?
【发布时间】:2012-06-14 18:47:18
【问题描述】:

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

/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),因为 includesclasses 在此文件夹中。在下一个项目配置屏幕 (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。

【问题讨论】:

    标签: php netbeans xdebug


    【解决方案1】:

    我认为将所有项目文件直接放在/var/www 中是一种不好的做法。

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

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

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

    【讨论】:

      【解决方案2】:

      我有一个类似的设置,但有一点不同:我的设置使用本地开发服务器上的远程站点。在项目属性的“运行配置”窗口中,我将“运行方式”设置为“远程网站(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 根目录之外的文件添加到全局包含路径。

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

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

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

      【讨论】:

        【解决方案3】:

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

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

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

        【讨论】:

          【解决方案4】:

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

          【讨论】:

            猜你喜欢
            • 1970-01-01
            • 2012-05-17
            • 1970-01-01
            • 1970-01-01
            • 1970-01-01
            • 1970-01-01
            • 1970-01-01
            • 2019-10-21
            • 1970-01-01
            相关资源
            最近更新 更多