登录

执行`phpinfo();`报错502,这是什么问题

代码如下,web访问后502:

<?php
phpinfo();

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

<?php
echo time();

环境:

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"

请问怎么破?

# PHP
PHPzhongPHPzhong2116 天前674 次浏览

全部回复(2) 我要回复

  • 迷茫

    迷茫2017-04-11 09:43:06

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

    回复
    0
  • PHPzhong

    PHPzhong2017-04-11 09:43:06

    看php-fpm的log,php的log

    回复
    0
  • 取消回复发送