【问题标题】:Why does phpinfo() output html in a LEMP stack?为什么 phpinfo() 在 LEMP 堆栈中输出 html?
【发布时间】:2017-06-25 02:22:19
【问题描述】:

我运行了一个 LEMP 堆栈,但不明白为什么会显示一个 html 页面。我在 info.php 中得到以下内容:

<?php
phpinfo();
?>

直接执行的时候得到如下:

php info.php | head -n 2
phpinfo()
PHP Version => 7.0.18-0ubuntu0.16.04.1

但是当我通过 nginx 使用 fastcgi 访问 php 访问 info.php 时,会返回一个完整的 html 页面,包括链接和一个 php 徽标。开头举例:

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml"><head>
<style type="text/css">
body {background-color: #fff; color: #222; font-family: sans-serif;}

每当我使用其他 php 脚本来回显某些文本时,都不会发生这种情况,只会返回文本。

谁能解释为什么会这样?

【问题讨论】:

  • 您是否正在尝试做一些这会干扰的事情?

标签: php nginx fastcgi


【解决方案1】:

这就是 PHP 的构建方式。来自documentation

注意:phpinfo() 在使用 CLI 模式时输出纯文本而不是 HTML。

PHP 检测它运行的上下文,并采取适当的行动。仅此而已。

【讨论】:

    猜你喜欢
    • 2014-11-20
    • 2016-10-31
    • 2012-06-03
    • 2012-05-10
    • 2016-02-29
    • 1970-01-01
    • 1970-01-01
    • 2017-11-17
    • 2011-07-27
    相关资源
    最近更新 更多