lil*_*shu 12 php development-environment windows-7-x64 phpstorm
我在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时运行并且将具有该上下文菜单.但是,其他文件不会在PHPStorm启动时启动.如果II尝试调试没有addtional菜单的文件,服务器将给出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保留为默认值(没有理由更改它们),并尝试在"请检查验证脚本的Web路径是否已正确配置"中列出结果并列出我的目录.
编辑6:验证仅在127.0.0.1上获得,因为这就是SecureWAMP的运行情况.关闭其服务器会导致"无法执行验证脚本:'连接被拒绝:连接'.
编辑7:正如LazyOne所指出的,我在第一张图片中的文件是两种不同的文件类型(php和html).我已经用双面的.php文件完成了它,我刚刚抓住了我目前正在为截图工作的两个文件.这是一个php的例子.

编辑8:我认为我终于得到了一个坚实的模式,当它工作,什么时候没有.上下文菜单是一个红色的鲱鱼.如果满足条件,没有子菜单的那些将正常工作.
答:一个有效的文件(到目前为止还没有注意到工作文件和非工作文件的模式,实际上,一个工作文件和一个非工作文件具有完全相同的代码)必须被选中.
B.在任何情况下都不能"停止并重新运行"文件,因为这会导致文件在之后命中错误的网关.
C.您无法打开非工作文件.如果这样做,当前服务器挂起并将继续挂起,直到在另一个文件上运行"停止并重新运行",之后所有打开的文件将收到错误的网关错误.打开非工作文件将导致当前工作文件出现错误的网关错误.
D.要在C或D需要重新启动系统后再次使工作文件正常工作.
编辑9:正在摆弄验证调试器配置工具,最后得到它给我一个不同的答案(对它感到愚蠢,实际上,只需要将目标目录包含在验证脚本的URL中,即使我认为网站直接从该目录托管.好吧.无论如何,有一个错误,不确定这是否是我的问题的原因,但会研究它.

编辑10:添加到php.ini以解决上述错误... xdebug.remote_enable = 1
编辑11:从添加的行中看不到真正的好处.
编辑13:更新到phpStorm的EAP(10.0.2)版本.到目前为止它看起来是相同的结果,虽然现在至少控制台也显示错误而不仅仅是网页.还尝试通过SecureWAMP的apache服务器完全运行,但发现阻止我改变默认的htdocs目录.
FWIW,我认为这可能就像超时问题一样简单。
我的环境与OP非常相似,Win764,PhpStorm 10.0.4,PHP 5.5.27。
我有一些 F3 自动化测试,当我使用浮动在代码右上角的工具栏中的小图标之一“在浏览器中”运行测试代码时,经常会看到 502 Bad Gateway 错误。(见下图。)
对于我的一些测试页面,该错误似乎只是第一次出现。运行一次,失败,再次运行,工作正常。其他的似乎需要运行 2 到 3 次才能起作用。但我有一些我从未在浏览器中见过的工作。
OTOH,如果我在任何这些页面的代码窗口中右键单击并进行调试,无论我让它一直运行还是逐行运行,代码都可以正常运行。
显然,我的工具设置没有错误。有些测试每次都可以并且确实从浏览器运行。
我认为正在发生的事情是可能失败的测试执行相当繁重的数据库查询。当我在浏览器中运行请求时,我的 php 解释器会主动超时。
但是,每次页面运行并超时时,它的一个或多个查询都会被缓存,并且下次运行它时,页面会更快。最终,对于那些将要运行的页面,足够的数据库工作被缓存,以便页面可以进入网络并在时间限制之前完成。
这就是我的理论。我还没有找到在哪里以及如何更改解释器超时间隔。即从 PhpStorm 运行时的超时间隔。我已经有了
max_execution_time = 300
Run Code Online (Sandbox Code Playgroud)
在我的 php.ini 文件中,可以看到它是在我使用 phpinfo() 时设置的。但我必须相信,当解释器从 PhpStorm 运行时,它会被覆盖。
更新 - 可能的修复:因此,即使我的 php.ini 文件具有 max_execution_time 设置,我也尝试按照此 PhpStorm 支持页面、步骤 1 和 2 中所述查看我的 php 解释器设置。我的 max_execution_time 为 0。所以,我添加了使用该页面上的 UI 进行的设置与我在 php.ini 中的相同 300。(然后我关闭并重新打开 PhpStorm —— 老程序员的偏执狂。) 到目前为止,我在我的“最差”页面上看到了一条错误的网关消息,但即使它运行了第二次。其他人似乎都已经完成了。我会仔细等待,看看这个“修复”是否对我有长期好处。
(并且,在有人觉得有必要指出这一点之前:是的,缓存查询对于自动化测试来说是一个糟糕的主意。必须解决这个问题 - 但只有在我弄清楚如何延长解释器超时之后,以便我的测试可以在没有缓存的情况下成功。)
| 归档时间: |
|
| 查看次数: |
14992 次 |
| 最近记录: |