【发布时间】:2016-03-05 20:03:43
【问题描述】:
- 操作系统:Windows 7 - 64 位
- PHP:独立的 php.exe(PHP 5.5 版)
- PHPStorm 版本:10.0.1
我看到的关于克服 PhpStorm 中的 502 网关错误的所有建议都涉及确保您拥有解释器和可执行集。我正在使用独立的 php.exe (http://windows.php.net/download#php-5.5 VC11 x86 Thread Safe (2015-Oct-01 01:25:56)) 并将所有内容设置为 PHP 5.5
我真的很困惑为什么我仍然收到 502 错误。
我已经运行了多次,但它确实运行了一次(之前或之后的实例没有任何变化),我觉得这非常奇怪,但仅用于一页加载,并且不会重复发生。
编辑:当我打开另一个项目进行比较时,我意识到了一个不同之处。有一次它确实起作用了,右键单击上下文菜单看起来有所不同。另一个项目调试得很好。有什么区别?是什么赋予了?两个项目都使用相同的解释器。
...还发现回到工作项目,额外的上下文菜单项消失了。
编辑 2:仍然有问题寻找...发现当我启动 PHPStorm 时 certain 文件将正常运行,并且将具有该上下文菜单。但是,其他文件不会在 PHPStorm 启动时。如果我尝试在没有附加菜单的情况下调试文件,服务器将给出 502,然后“好”文件将没有额外的菜单。如果我先从一个具有额外上下文菜单的文件开始,它将运行,但如果我随后没有,第一个文件将停止工作。我觉得我正在取得“进步”,但我也越来越困惑,特别是因为每次我尝试运行不同的文件时,它都会询问我“[x] 是单实例运行配置。你确定你想阻止正在运行的那个吗?”此时我单击“停止并重新运行”。我想如果事情停止并重新运行,那些给出 502 的人不会有任何东西转移到“好”文件中......但情况似乎并非如此。
编辑 3: 想知道我的解释器设置是否可能是坏的,所以我抓住了securewamp(http://securewamp.org/en/),得到了便携式版本,设置,使用默认设置并添加了xdebug(这个版本:php_xdebug-2.4.0rc1-5.4-vc9.dll)和完全相同的问题。
我什至失去了要检查的其他东西。
编辑 4:额外确定它现在在 PHPStorm 中。曾经无法使用的 php 文件之一,我直接用 php.exe 打开,它运行良好。它必须是我缺少的 phpstorm 中的某些设置,或者某些损坏的功能。
编辑 5:根据一系列潜在原因,尝试了运行 > 验证调试器工具。路径和 URL 保留为默认值(没有理由更改它们),并尝试 vlaidate 结果“请检查验证脚本的 Web 路径是否正确配置”并列出我的目录。
编辑 6:验证仅在 127.0.0.1 上进行,因为 SecureWAMP 就是在上面运行的。关闭其服务器会导致“无法执行验证脚本:'连接被拒绝:连接'。
编辑 7:正如 LazyOne 所指出的,我在第一张图片中的文件是两种不同的文件类型(php 和 html)。我已经用两边的 .php 文件完成了它,我刚刚抓取了我目前正在处理的两个文件作为屏幕截图。这是其中一个 php 的示例。
编辑 8:我想我终于有了一个可靠的模式来判断它何时有效,何时无效。 上下文菜单是一个红鲱鱼。满足条件时,没有子菜单的菜单也可以正常工作。
A.必须选择一个可以工作的文件(目前还没有注意到工作文件与非工作文件的模式,事实上,一个工作文件和一个非工作文件具有完全相同的代码)。
B.在任何情况下都不能“停止并重新运行”文件,因为这会导致文件在之后访问错误的网关。
C.您无法打开非工作文件。如果这样做,当前服务器将挂起并将继续挂起,直到在不同的文件上运行“停止并重新运行”,之后所有打开的文件都会出现错误的网关错误。打开非工作文件会导致当前工作文件出现错误网关错误。
D.要在 C 或 D 后重新启动工作文件,需要重新启动系统。
编辑 9: 正在摆弄验证调试器配置工具,最后得到它给我一个不同的答案(感觉很傻,实际上,即使我认为该站点正在托管,也只需在验证脚本的 url 中包含目标目录直接从那个目录。哦,好吧。无论如何,有一个错误,不确定这是否是我的问题的原因,但会研究它。
编辑 10: 添加到 php.ini 以解决上述错误... xdebug.remote_enable=1
编辑 11:从添加的行中看不到真正的好处。
编辑 13:更新到 phpStorm 的 EAP (10.0.2) 版本。到目前为止,结果似乎相同,尽管现在至少控制台也向我显示了错误,而不仅仅是网页。还尝试完全通过 SecureWAMP 的 apache 服务器运行,结果发现有一些东西阻止我改变默认的 htdocs 目录。
【问题讨论】:
-
请发布错误的屏幕截图,并在浏览器中显示 URL。
-
“还发现回到工作项目时,附加的上下文菜单项消失了。” 左侧是 PHP 文件 ..,右侧是 HTML。为什么您希望在 HTML 文件中看到 PHP 命令?
-
@LazyOne 这只是我当时正在处理的文件之一,但它也发生在 php 文件中,而不仅仅是 html。我想我应该更新一下,这样就清楚了。谢谢。
-
1) 很高兴您注意到我的第二条评论……但是评论 #1 呢?做起来难吗? 2) 在任何情况下:根据您的上一个屏幕截图——您根本没有使用 WAMP 网络服务器 (Apache)——您使用的是 PhpStorm 自己的简单内置-在网络服务器中——查看 URL(还记得我的评论 #1 吗?)——
localhost:63342/PROJECT_NAME/。所以......使用你的 WAMP 而不是内置的网络服务器。 -
请尝试 10.0.2 EAP 构建 -- blog.jetbrains.com/phpstorm/2015/12/… 。 “502”的问题很可能是由于一些不兼容的设置。尽管在某些情况下它是实际的内置 Web 服务器(至少 youtrack.jetbrains.com/issue/WEB-17803 票说它修复了一些问题)。 youtrack.jetbrains.com/issue/WEB-17317 仍然开放。很难说......但无论如何 Apache 将是一个更好的选择(请记住:内置服务器对 URL 有一些限制,除非手动配置)。
标签: php phpstorm development-environment windows-7-x64