我在Windows机器上的Apache文件夹中安装了PHPstorm 10.0.3 Trial和PHP,但是当我使用PHP解释器时,我得到错误502 Bad Gateway大约50-90%的时间。
当这只是HTML页面时,它可以100%的时间工作。
编辑: 我所做的是“运行”我的template.php(或任何其他)文件,然后在浏览器中显示url: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正在从记录变为记录。
答案 0 :(得分:6)
您正在使用PhpStorm自带的内置Web服务器,该服务器现在有一些问题(特别是对于POST请求,例如WEB-17317)。
解决方案是使用您自己的Web服务器(Apache / IIS / nginx /等等)。
In place
类型应该没问题,只要您的Apache / IIS可以从该位置提供文件;否则要么配置Web服务器才能这样做..或者使用其他类型的部署(例如,Local or Mounted Folders
用于IDE将文件复制到另一个位置)现在,当您使用Open in Browser
或运行/调试操作时,IDE将使用该基本URL(注意:它不会影响任何现有的运行/调试配置 - 只有未来的;您必须更新当前手动运行/调试配置。
答案 1 :(得分:1)
这对我有用。
我打开了XAMPP控制面板v3.2.2,我进入了Apache-> Config-> httpd.conf 并更改了以下代码
听80
到
听8080
另外, ServerName localhost:80
要 ServerName localhost:8080
保存文件httpd.conf,然后从XAMPP控制面板v3.2.2的主屏幕启动下面的apache操作,它启动了apache。
之后我打开浏览器并手动输入地址 例如:
如果之前的地址是:http:// localhost:63342 / htdocs / template.php(中间没有空格)
新的将是:http:// localhost:8080 / template.php(中间没有空格)
应该运行得很好。刷新页面,您不应该收到502 Bad Gateway错误。
请记住:如果您稍后运行您的应用程序,它可能会返回上一个位置,您需要做的就是使用地址栏上的新位置(在这种情况下) HTTP:// 本地主机:8080 / template.php文件。 (中间没有空格) 在你的情况下: HTTP:// localhost:8080 / yourfilename.php(中间没有空格)