phpinfo() 不输出任何内容


phpinfo() outputs nothing

我试过phpinfo(),但它什么也没输出。有趣的是,php-r "phpinfo();"在 web 输出中使用 phpinfo() 时工作正常。同样,也没有写入错误.log。 php.ini为空。

我不知道现在该怎么办。

编辑:

感谢 lanzz,我明白 phpinfo() 之前不需要输出。

我也有类似的问题。我在我的 Ubuntu 机器上运行 Apache2,以便在部署之前对项目进行本地测试。我创建了一个 phpinfo();页面,并注意到它是空白的。在我的浏览器中检查时,php 函数将被注释掉。

您的浏览器与 php 无关。

为了使PHP脚本执行,您必须将文件另存为.php文件,我相信您做到了。

PHP 标签本身在 HTML 文档中无效,因此您需要创建一个实际的 HTML 文档,并将其另存为.php。然后,包含一个基本的 HTML 文档,如下所示:

<?php
   phpinfo();
?>
<html>
  <head>
    <title>Php Info</title>
  </head>
    <body>
    </body>
</html>

然后你会做:localhost/phpinfo.php或任何你正在做的事情。就我而言,它是一个映射到我的本地主机的实际域名,所以'myProjectName'.com/phpinfo.php

这只是根据我的经验,它工作了 100%。

只是想补充一点,我使用的是短标签'<?'

<? phpinfo();

这是失败的,因为我在禁用它们时使用短标签,所以它应该是

<?php phpinfo();

首先,检查你的"access.log"的内容;如果你没有看到对phpinfo文件的调用,那么你的Web服务器肯定有问题。

否则,尝试获取一个简单的php文件:

<?php echo "Hello, world.";

或 HTML 文件 :

<h1>Hello, world !</h1>

然后,您可以确定问题出在哪里。

也许没有加载 Web 服务器的 PHP 模块。

当 php 文件没有输出时,另一种情况是权限设置不正确。例如,您的 Web 服务器无权读取它。

我不得不使用解决方法来使其工作。我使用的代码是:我无法回答为什么它只能这样工作,但它确实如此。

<?php
  echo phpinfo();
?>

就我而言(Ubuntu 22.04),apache 没有正确配置为运行 php。Apache 的 mpm_prefork 模块与 php 模块冲突。我按照本答案中的说明解决问题。为方便起见,说明转贴在此处。

  1. sudo a2dismod mpm_event
  2. sudo systemctl restart apache2
  3. sudo a2enmod mpm_prefork
  4. sudo systemctl restart apache2
  5. sudo a2enmod php7.0
  6. sudo systemctl restart apache2