小编lil*_*shu的帖子

502 Bad Gateway PHP Storm但设置了Interpreter和可执行文件

  • 操作系统: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时运行并且将具有该上下文菜单.但是,其他文件不会在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:从添加的行中看不到真正的好处.

编辑12:发布浏览器的请求屏幕截图 在此输入图像描述

编辑13:更新到phpStorm的EAP(10.0.2)版本.到目前为止它看起来是相同的结果,虽然现在至少控制台也显示错误而不仅仅是网页.还尝试通过SecureWAMP的apache服务器完全运行,但发现阻止我改变默认的htdocs目录.

在此输入图像描述

php development-environment windows-7-x64 phpstorm

12
推荐指数
1
解决办法
1万
查看次数

如何在版本5-7之间迁移PHP代码,而无需重写或查看所有代码

我正在寻找更新代码库,当PHP7达到完全发布时,我正在使用从PHP5到PHP7(主要是因为速度增加和??运算符可以真正帮助我们的网站).

由于有不赞成的函数,以及版本之间改变的一些东西,我考虑在包含它们之前在php文件上使用filemtime,看看是否应该包含将修改php7的行为的函数,使其更像php5.那些文件.虽然这可以在现有的服务器上运行,但我知道各种复制方法(一些管道很难控制)可能会在复制文件时更改修改日期.

有没有一种方法可以确定哪个php版本的文件是与其编写或兼容并正确解释它们,还是这个hacky and risky解决方案真的是我最好的选择?

php php-7

3
推荐指数
1
解决办法
2万
查看次数

通过前端 javascript 列出服务器上的文件

A 有一个文件夹,里面装满了最终用户可以访问的文件,并且正在处理一个 javascript 文件来解析它们并根据需要交付它们。但是,我希望 javascript 扫描文件夹,然后列表迭代该文件夹中的文件数组,而不是手动更新列表。前端JS有没有好的方法来做到这一点?我研究过的所有解决方案都纯粹针对 Node.js。

例如,假设我有一个像这样的文件夹结构......

/ (Web Root)
|__ /Build_a_card
|__ /Cool pictures
  |__ /Summer Pictures
       summer_dog.gif
       smiling_sun.svg
  |__ /Winter Pictures
       snowman.png
  cat.jpg
Run Code Online (Sandbox Code Playgroud)

然后在 javascript 中我会运行类似的东西

var image_list = get_list("/Cool Pictures");
build_select_list(image_list);

function get_list(folder_to_look_in){
   var the_list = ???
   return the_list;
}
...
Run Code Online (Sandbox Code Playgroud)

然后,例如,运行 JS,经过一些解析后,用户会看到......

<select>
  <option value="summer_pictures/summer_dog.gif">summer_dog.gif</option>
  <option value="summer_pictures/smiling_sun.svg">smiling_sun.svg</option>
  <option value="winter_pictures/snowman.png">snowman.png</option>
  <option value="cat.jpg">cat.jpg</option>
</select>
Run Code Online (Sandbox Code Playgroud)

在一个荒谬的世界中,由于 javascript 可以访问文件夹中的各个文件,假设我可以暴力破解文件夹中的每个可能的文件名,并在每个文件上返回成功:

function get_list(folder){
  var list_of_files = {};
  var starting_character = 0;
     list_of_files = every_single_option({starting_character}, 0, 40, folder)
  }
}
function every_single_option(existing_characters, …
Run Code Online (Sandbox Code Playgroud)

javascript

3
推荐指数
1
解决办法
3307
查看次数

在检查bool值的情况下,php 7中的<=>如何响应?

在途中看着php 7,但<=>让我困惑.

大多数时候我使用条件运算符,它们在布尔情况下使用(<=>几乎是,但不完全,也能够返回-1).(如果X <=> Y).所以我不确定在下列情况下会发生什么......

if ($x <=> $y) {
    // Do all the 1 things
} else {
    // Do all the 2 things
}
Run Code Online (Sandbox Code Playgroud)

如果事先有......我能期待什么?

$x = 0; $y = 1;
Run Code Online (Sandbox Code Playgroud)

要么

$x = "Carrot"; $y = "Carrot Juice";
Run Code Online (Sandbox Code Playgroud)

要么

$x = "Carrot Juice"; $y = "Carrot";
Run Code Online (Sandbox Code Playgroud)

要么

$x = array(carrot, juice); $y = "carrot juice";
Run Code Online (Sandbox Code Playgroud)

关于这一点的确有足够的案例,令我对它的作用感到困惑.

php php-7

2
推荐指数
1
解决办法
122
查看次数

在javascript中通过DOM获取所需的表单元素

要检查必填字段和警告用户缺少必填字段的自定义方法,我正在尝试获取表单中的元素数组,并且一直在寻找但没有找到好的方法.

是否有一些变化

document.getElementById(form).elements;
Run Code Online (Sandbox Code Playgroud)

这将返回数组的所有必需元素,或者测试是否需要给定元素的方法......类似于任何一个

var my_elements = document.getElementById(form).required_elements;
Run Code Online (Sandbox Code Playgroud)

要么

var my_elements = document.getElementById(form).elements;
for (var this_element in my_elements){
    if (this_element.attributes["required"] == "false"){
        my_elements.splice(this_element, 1);
    }
}
Run Code Online (Sandbox Code Playgroud)

javascript forms required

2
推荐指数
1
解决办法
5189
查看次数

重构onload以添加第二个函数?额外:一般情况下,如何向变量添加第二个函数?

我按顺序有两个问题?

我有两组代码我正在重构.每个都有一个onload.

两者都将在一个站点上自行运行,但我不希望它们覆盖彼此的负载.

所以我有相同的:

window.onload=function(){ alert("foo")};
Run Code Online (Sandbox Code Playgroud)

window.onload=function(){ alert("bar")};
Run Code Online (Sandbox Code Playgroud)

在两个文件中.

为了避免一个人覆盖另一个的window.onload赋值,我将它们重构为:

window.onload+=function(){ alert("foo")};
Run Code Online (Sandbox Code Playgroud)

window.onload+=function(){ alert("bar")};
Run Code Online (Sandbox Code Playgroud)

但那时似乎既不会发生火灾.

而且因为它似乎有助于我了解情况并且通常只是一个不错的技能,我如何向函数变量添加其他函数?(它与onload相同,还是上传了一个特例?它让我感觉像是一个特殊情况.)

所以如果我有......

var Varrick = function(){ alert("Do the thing!");}
Run Code Online (Sandbox Code Playgroud)

我有

var Zhu_li = function (){ alert("Did the thing."); }
Run Code Online (Sandbox Code Playgroud)

什么会有效的命令

var Varrick = Varrick + Zhuli.
Run Code Online (Sandbox Code Playgroud)

所以...

Varrick(); // Alerts "Do the thing!" then alerts "Did the thing."
Run Code Online (Sandbox Code Playgroud)

注意:我想这样做而不依赖于jQuery.

javascript function onload

0
推荐指数
1
解决办法
20
查看次数