【发布时间】:2016-04-19 13:29:24
【问题描述】:
我已经在 Windows 机器上的 Apache 文件夹中安装了 PHPstorm 10.0.3 Trial 和 PHP,但是当我使用 PHP 解释器时,大约 50-90% 的时间会出现错误 502 Bad Gateway。
当这只是 HTML 页面时,它可以 100% 工作。
编辑: 我所做的是“运行”我的 template.php(或任何其他)文件,然后该文件会出现在浏览器中,网址为:http://localhost:63342/htdocs/template.php
我已经测试过: PHP 7.0.2,PHP 5.3(ISS),第一个线程安全,第二个线程安全禁用,结果相同。在 Webstorm 中,我的路径指向 PHP-CGI.exe,这是不同主题的问题。
只有提示我能够通过单击找到正在发生的事情:PHPstorm/Help/Show Log in Explorer。因此,每当我收到错误 502 时,就会出现以下问题:
2016-01-14 09:57:21,510 [1084784] ERROR - ins.io.ChannelExceptionHandler - PhpStorm 10.0.3 Build #PS-143.1770
2016-01-14 09:57:21,510 [1084784] ERROR - ins.io.ChannelExceptionHandler - JDK: 1.8.0_51
2016-01-14 09:57:21,510 [1084784] ERROR - ins.io.ChannelExceptionHandler - VM: Java HotSpot(TM) Server VM
2016-01-14 09:57:21,510 [1084784] ERROR - ins.io.ChannelExceptionHandler - Vendor: Oracle Corporation
2016-01-14 09:57:21,510 [1084784] ERROR - ins.io.ChannelExceptionHandler - OS: Windows 7
2016-01-14 09:57:21,511 [1084785] INFO - ins.io.ChannelExceptionHandler - Channel will be closed due to error
2016-01-14 09:57:24,273 [1087547] ERROR - ins.io.ChannelExceptionHandler - minimumReadableBytes: -2815 (expected: >= 0)
java.lang.IllegalArgumentException: minimumReadableBytes: -2815 (expected: >= 0)
at io.netty.buffer.AbstractByteBuf.checkReadableBytes(AbstractByteBuf.java:1143)
at io.netty.buffer.AbstractByteBuf.skipBytes(AbstractByteBuf.java:731)
at org.jetbrains.io.Decoder.getBufferIfSufficient(Decoder.java:131)
at org.jetbrains.io.fastCgi.FastCgiDecoder.messageReceived(FastCgiDecoder.kt:56)
at org.jetbrains.io.Decoder.channelRead(Decoder.java:38)
at io.netty.channel.ChannelHandlerInvokerUtil.invokeChannelReadNow(ChannelHandlerInvokerUtil.java:83)
at io.netty.channel.DefaultChannelHandlerInvoker.invokeChannelRead(DefaultChannelHandlerInvoker.java:163)
at io.netty.channel.AbstractChannelHandlerContext.fireChannelRead(AbstractChannelHandlerContext.java:155)
at io.netty.channel.DefaultChannelPipeline.fireChannelRead(DefaultChannelPipeline.java:950)
at io.netty.channel.oio.AbstractOioByteChannel.doRead(AbstractOioByteChannel.java:166)
at io.netty.channel.oio.AbstractOioChannel$1.run(AbstractOioChannel.java:38)
at io.netty.channel.ThreadPerChannelEventLoop.run(ThreadPerChannelEventLoop.java:52)
at io.netty.util.concurrent.SingleThreadEventExecutor$5.run(SingleThreadEventExecutor.java:742)
at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142)
at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:617)
at java.lang.Thread.run(Thread.java:745)
at org.jetbrains.ide.PooledThreadExecutor$1$1.run(PooledThreadExecutor.java:55)
minimumReadableBytes 因记录而异。
【问题讨论】:
-
你如何使用它(你的 PHP 解释器)? WebStorm 与 PHP 有什么关系?请截图——一点都不清楚。
-
对不起,我现在已经修复了,它的 PhpStorm。另外任何php文件都会触发错误,甚至不需要包含任何PHP代码。
-
您解决了这个问题?伟大的。这与是否存在 PHP 代码无关——我的问题是关于“遇到这样的问题你会怎么做”。如果它在您运行 CLI 脚本时发生——您是如何做到的?如果您在浏览器中执行某些操作——您如何执行此操作,URL 等是什么?您的问题中根本没有关于此的信息.. 只是通用(并且非常有用 - 双关语)“它不起作用”。
-
不,我没有。我的意思是我将 WebStorm 描述更改为 PHP Storm。现在我已经编辑了我的问题以添加您要求的详细信息。基本上要重现我得到的内容是简单地通过应用程序运行任何 PHP 文件,并且大部分时间我都会遇到上述错误。如果您认为有什么我可以更准确地告诉我,我是寻求帮助的人。
-
您正在使用 PhpStorm 自己的内置 Web 服务器,该服务器现在存在问题(尤其是 POST 请求)。解决方案是使用您自己的适当 Web 服务器(Apache/IIS/nginx/whatever)——只需定义部署条目(“就地”类型应该没问题,只要您的 Apache/IIS 可以从该位置提供文件),配置它(提供所需的 URL)并标记为该项目的默认值——现在 IDE 将在您选择运行或调试时使用该 URL(但它不会影响任何现有的运行/调试配置——仅影响未来的配置;当前配置您必须手动更新)
标签: phpstorm