执行`phpinfo();`报错502,这是什么问题
PHPz
PHPz 2017-04-11 09:41:06
0
2
980

代码如下,web访问后502:

<?php
phpinfo();

将代码改为phpinfo之外的任意函数,可以执行

<?php
echo time();

环境:

  • osX 10.12.3

  • Homebrew 1.1.9

  • nginx/1.10.2

  • PHP 7.1.1

PHP 7.1.1 (cli) (built: Jan 31 2017 21:43:52) ( NTS DEBUG )
Copyright (c) 1997-2017 The PHP Group
Zend Engine v3.1.0, Copyright (c) 1998-2017 Zend Technologies
    with Xdebug v2.5.0, Copyright (c) 2002-2016, by Derick Rethans

命令行中可以执行:

php -i

检查过php.ini,没有禁止执行的函数(是空的)

disable_functions =

能检测到phpinfo函数,但是不能执行

var_dump(function_exists('phpinfo'));    // print true

nginx error log 如下:

*246 upstream prematurely closed connection while reading response header from upstream, client: 127.0.0.1, server: test4.cc, request: "GET /ini.php?a=22e243423 HTTP/1.1", upstream: "fastcgi://127.0.0.1:9000", host: "test4.cc"

请问怎么破?

PHPz
PHPz

学习是最好的投资!

reply all(2)
迷茫

是个Bug也未尝可知呢。不知道你开启了哪些扩展。phpinfo调用过程中,会遍历所有扩展以取出它们的信息用于展示,如果有扩展的提供信息函数中出现了问题,就会引起进程异常退出,反映到Nginx上就是502错误。

PHPzhong

看php-fpm的log,php的log

Latest Downloads
More>
Web Effects
Website Source Code
Website Materials
Front End Template