我尝试过 phpinfo() 但它没有输出任何内容。有趣的是,当在 web 中使用 phpinfo() 时,
php-r "phpinfo();"
可以正常工作,但不会输出任何内容。
同样,error.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 文件没有输出的另一种情况是权限设置不正确。例如,您的网络服务器无权读取它。
我必须使用解决方法才能使其发挥作用。我使用的代码是:我无法回答为什么它只能这样工作,但它确实如此。
<?php
echo phpinfo();
?>
在我的例子中(Ubuntu 22.04),apache 没有正确配置来运行 php。 Apache 的
mpm_prefork
模块与 php 模块冲突。我按照此answer中的说明解决了问题。为了方便起见,此处重新发布了说明。
sudo a2dismod mpm_event
sudo systemctl restart apache2
sudo a2enmod mpm_prefork
sudo systemctl restart apache2
sudo a2enmod php7.0
sudo systemctl restart apache2