使用 PhpStorm 在与 'xampp/htpdocs' 不同的文件夹上调试 php 应用程序


Debugging php applications on folders different than 'xampp/htpdocs' with PhpStorm

我知道这可能是一个漫长而笼统的问题,但过去两天我一直在为此苦苦挣扎,一无所获。

我是一名C# .net开发人员,我使用Visual Studio IDE进行开发,它在创建项目,设置虚拟主机,发布项目等时为我完成所有后端工作。

现在由于某些原因,我必须用PHP做一个项目,我选择了PhpStorm作为我的IDE。我安装了XAMPP,Apache服务器工作正常,我在PhpStorm中将其php可执行文件设置为php解释器。

不希望我的所有项目都在xampp/htpdocs所以我在第一次创建项目时选择了另一个位置(d:'projects'phpStorm'<name of the project>)作为我的工作空间。

我使用它给我的教程安装了 xdebug:

下载 php_xdebug-2.4.0rc4-5.6-vc11.dll

将下载的文件移动到 C:''xampp''php''ext

编辑 C:''xampp''php''php.ini 并添加该行

zend_extension = C:''xampp''php''ext''php_xdebug-2.4.0rc4-5.6-vc11.dll

重新启动网络服务器

我可以确认它是使用 phpinfo() 安装在位于 xampp/htpdocs 中的 php 文件中的

我的问题是调试。当我在 PhpStorm 中打开的 php 文件中单击Run->Run时,它使用自由端口并使用如下 url 打开 php 文件:localhost:port_number/<name of the project>,一切都很好。

现在我按照本教程来配置 xdebug。在第二步中,当我转到 Run->Web Server debug validation 时,用 d:'projects'phpStorm'<name of the project> 填充Path to create validation script,用localhost:port_number/<name of the project>填充Url to validation script(如上所述),然后单击验证我得到了此信息(以及最后一行中的错误):

服务器名称:PhpStorm 10.0.3

Loaded php

.ini: C:''xampp''php''php.ini

未加载调试扩展

按照此链接配置 Xdebug 或 Zend Debugger。 如果你有 已经在 PHP 中配置了调试扩展.ini可以进行文件检查 未加载的原因:

更改 php.ini 文件后,您忘记重新加载 Web 服务器。

您正在错误的 php 中配置调试扩展.ini(请参阅 加载了下面的 php.ini 文件)。

尝试加载调试扩展时出错,例如版本 不相容。

想知道我该怎么办?

我真的很想将我的项目设置在xampp/htpdocs以外的其他位置以正确组织它们,就像我在 Visual Studio 中所做的那样。因此,请不要建议涉及我更改工作目录的解决方案。

提前谢谢。

PS:在JetBrain的教程中,我看到xdebug的IDKEY是PHPSTORM,而我的是我电脑的用户名,可以吗?

我真的很想把我的项目设置在xampp/htpdocs以外的另一个位置,以便正确地组织它们,就像我在Visual Studio中所做的那样。因此,请不要建议涉及我更改工作目录的解决方案。

好吧,你真的会讨厌这个,但不幸的是,Apache(这是php运行的内容)只识别htdocs(或public_html,或www,取决于你正在运行的特定服务器,但无论如何在你的情况下只有htdocs)作为php执行的有效目录。所以。。。

这并不意味着这是没有希望的,但你可能不得不跳过一些愚蠢的箍才能让它以这种方式工作。

选项 1

您可能运气好,可以从命令行创建从.htdocs到项目文件夹的符号链接

ln -s C:xampp/htpdocs d:/projects/phpStorm

如果你在窗户上,这可能行不通。它也可能无法在驱动器之间工作。它也可能无法工作,具体取决于您在 XAAMP 中的 Apache 配置。

优点:如果它有效,将完全按照您的要求。

缺点:可能不起作用,如果是这样,将需要噩梦般的配置摆弄水平

选项 2

使用远程开发服务器,并通过 FTP 与 IDE 同步。我对 PhpStorm 不是很熟悉,但我可以在 Netbeans 或 Eclipse 中轻松做到这一点。当您需要保留项目的本地存档时,这是一个不错的选择。您也许可以在计算机上设置FTP服务器并完成此操作,但是您最终将获得项目的两个副本;一个在您的项目文件夹中,另一个在 HTDOCS 中。

优点:您的项目在您想要的地方保持井井有条,没有太多问题。

缺点:文件重复,无论如何,它们都必须在htdocs中,以便Apache运行php

选项 3

接受该技术不是为以这种方式工作的,只需将所有内容放在htdocs中即可。因为习惯了不同的工作流程而抵制技术的工作方式是设计缺陷和真正糟糕的错误发生的方式。按照它本来应该工作的方式使用它,不要害怕学习新事物。

优点:与XAAMP堆栈没有任何冲突

缺点:你特别说你不想这样做,但这确实是最好的方式

选项 4(不要这样做)

在整个系统中将PHP安装为全局可访问的命令行实用程序,从而获得各种疯狂的病毒和错误,您可能无法修复。

优点:国外工作流程轻微缓解加重

缺点:所有的事情。最糟糕的事情。

选项 5(可能不起作用)

尝试使用虚拟主机。不过,这有很多警告。首先,由于操作系统中的安全策略难以否决,因此几乎不可能正确配置不同的驱动器。其次,如果你使用的是Windows(我假设你使用的是XAAMP),你需要做以下所有操作:-在 apache.conf 中,您需要启用您的主机文件。-在虚拟主机文件中,您需要创建一个新的虚拟主机。-在 windows hosts 文件中,您还需要创建一个主机,因为无论出于何种原因,windows 都喜欢任意添加冗余步骤。在所有其他操作系统上,此步骤不是必需的。此外,您甚至需要以管理员身份运行文本编辑器才能执行此操作。- 全部设置完成后重新启动 apache-祈祷你的机器会让你在驱动器之间执行此操作(C:->D:),或者不需要一百万年才能启用。