【问题标题】:phpinfo() is not working on my CentOS serverphpinfo() 在我的 CentOS 服务器上不起作用
【发布时间】:2013-07-20 15:19:14
【问题描述】:

我在我的 CentOS 服务器上安装了 PHP。但是,当在我的脚本中运行 phpinfo() 来测试它时,我收到的是 HTML,而不是解释的信息。

我可以看到 PHP 的文件夹。我什至可以在etc 文件夹中看到 php.ini。 但是 PHP 本身似乎不起作用。

我的意思是我的 test.php 文件看起来像这样:

<?php
    phpinfo();
?>

响应如下所示:

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "DTD/xhtml1-transitional.dtd">
<html><head>
<style type="text/css">
body {background-color: #ffffff; color: #000000;}
body, td, th, h1, h2 {font-family: sans-serif;}
pre {margin: 0px; font-family: monospace;}
a:link {color: #000099; text-decoration: none; background-color: #ffffff;}
...

等等。

问题似乎是什么,我该如何解决?

如果我复制返回的 HTML,将其粘贴到 HTML 文件中,然后从那里运行,我可以看到格式化的结果,但不能通过运行 test.php。我假设 PHP 没有以某种方式加载......即使在解释的 HTML 中我可以看到:

**Server API    Apache 2.0 Handler
Virtual Directory Support    disabled
Configuration File (php.ini) Path    /etc/php.ini
Scan this dir for additional .ini files    /etc/php.d
additional .ini files parsed    /etc/php.d/dbase.ini, /etc/php.d/json.ini, /etc/php.d/mysql.ini, /etc/php.d/mysqli.ini, /etc/php.d/pdo.ini, /etc/php.d/pdo_mysql.ini, /etc/php.d/pdo_sqlite.ini
PHP API    20041225
PHP Extension    20050922
Zend Extension    220051025
Debug Build    no
Thread Safety    disabled
Zend Memory Manager    enabled
IPv6 Support    enabled
Registered PHP Streams    php, file, http, ftp, compress.bzip2, compress.zlib, https, ftps**

等等……

在这个系统上,托管了三个网站。和这个问题有关系吗?

【问题讨论】:

  • 听起来 PHP 正在运行,phpinfo() 正在输出正确的结果。您可能只是有一些模板或其他东西妨碍了结果。
  • 您看到的 HTML 代码与我在只有 &lt;?php phpinfo(); ?&gt; 的页面上“查看源代码”时看到的相同。它是 PHP 信息页面的 HTML 标头。
  • 是的。它是在正常的 phpinfo 返回页面上正常返回的 HTML 代码。但它没有被解释。我没有点击“查看源代码”就看到了。我该怎么办?
  • 如果我没记错的话,php 在从 web 服务器上运行的脚本中执行 phpinfo() 时会输出 HTML。从命令行试试这个:php -i 或从命令行运行你的脚本。
  • 我确实从命令行运行了 php -i,并且收到了很多文本。似乎 phpini() 应该返回什么。但是,由于它不能在浏览器中运行,我倾向于认为某处有问题。正如我之前所说,我知道我已经安装了 php,但它似乎无法正常工作。

标签: php centos phpinfo


【解决方案1】:

保存包含

的页面
<?php
    phpinfo();
?>

带有 .php 扩展名。类似info.php,而不是info.html...

【讨论】:

  • 是的。正如我上面所说:...I mean my test.php file looks like this: &lt;?php phpinfo(); ?&gt; 所以,我认为很明显,我的文件名是 test.php
  • 疱疹。我正在保存到 .html 文件中,而不是 .php 文件中。检查你的扩展哟!
【解决方案2】:

您需要更新您的 Apache 配置以确保它输出 php 作为文本/HTML 类型。

下面的代码应该可以工作,但有些配置不同。

AddHandler php5-script .php
AddType text/html .php

【讨论】:

  • 我应该在哪里运行这段代码?还是应该将这些行添加到配置文件中?
  • 您可以将其添加到 .htaccess 文件或您的主要 Apache 配置中
  • 我将代码添加到 httpd.conf 文件中,重新启动了 httpd 但没有任何改变
  • 不错! AddType 是我的最后一块。
【解决方案3】:

我刚遇到同样的问题,发现客户从他们的php.ini 文件中禁用了此功能:

; This directive allows you to disable certain functions for security reasons.
; It receives a comma-delimited list of function names. This directive is
; *NOT* affected by whether Safe Mode is turned On or Off.
disable_functions = phpinfo;

更多信息:Enabling and disabling phpinfo() for security reasons

【讨论】:

    【解决方案4】:

    我遇到了同样的问题。

    我的解决方案是在 php.ini 文件中设置 default_mimetype = "text/html"

    【讨论】:

      【解决方案5】:

      尝试在root下创建一个php.ini文件,写入如下命令并保存。

      disable_functions =
      

      如果全局 PHP 配置禁用了 phpinfo() 功能,使用此代码将为您启用它。

      【讨论】:

        【解决方案6】:

        这也发生在我身上。修复将其包装在 HTML 标记中。然后我将文件保存为 /var/www/html/info.php 并在浏览器中运行http://localhost/info.php。就是这样。

        <html>
            <body>
                <?php
                    phpinfo();
                ?>
            </body>
        </html>
        

        【讨论】:

        • 使用 phpinfo();根本不会显示信息。要打印配置信息,您需要回显它。所以代码将是
        • 我在升级到 OSX High Sierra [和 php 7] 后遇到了这个问题。
        • @AnbuselvanRocky 是错误的。 phpinfo() 返回一个布尔值。它输出信息。如果要捕获其信息,请使用输出缓冲。 phpinfo 在失败时返回 false,在成功时返回 true。
        【解决方案7】:

        这是为我做的(第二个答案):Why are my PHP files showing as plain text?

        只需添加这个,没有其他工作。

        apt-get install libapache2-mod-php5
        

        【讨论】:

        • 我的找不到php5,所以我改用php7.0apt-get install libapache2-mod-php7.0。我正在运行 Linux Mint 18
        • apt-get install libapache2-mod-php 也够了
        【解决方案8】:

        确保标签“php”粘贴在这样的代码中:

        ?php phpinfo(); ?>

        不像这样:

        ? php phpinfo(); ?>

        或者服务器会将其视为(普通词), 因此服务器将无法理解您编写的语言来处理它,因此它将是空白的

        我知道这是一个愚蠢的错误......但它发生了^_^

        【讨论】:

        • 在疯狂地拔掉我的头发后,这就是答案!
        【解决方案9】:

        这也发生在我身上。在新配置的 Red Hat Linux 7 服务器上。

        当我运行 PHP 页面时,例如 info.php,我可以看到纯文本 PHP 脚本,而不是执行它们。

        我刚刚安装了 PHP:

        [root@localhost ~]# yum install php
        

        然后重启 Apache HTTP Server:

        [root@localhost ~]# systemctl restart httpd
        

        【讨论】:

          【解决方案10】:

          如果你使用localhost/info.php,它可能不适合你。

          您或许可以从错误中找到线索。在错误消息中找到端口号。对我来说是 80。我将地址更改为 http://localhost:80/info.php,然后它对我有用。

          【讨论】:

            【解决方案11】:

            我的解决方案是再次卸载并安装 PHP 实例(在我的情况下为 7.0):

            sudo apt-get purge php7.0
            sudo apt-get install php7.0
            

            之后,您将需要重新启动 Apache 服务:

            sudo service apache2 restart
            

            最后,在浏览器中使用您的 localhost 或 IP 地址再次验证。

            【讨论】:

              【解决方案12】:

              Windows 10 的另一个可能答案:

              命令httpd -k restart 确实在我的机器上运行。

              尝试使用 Windows 10 服务重启相关服务。

              【讨论】:

                【解决方案13】:

                对于没有建站经验的人(比如我)我试了很多,结果发现我用的不是.php扩展,而是.html扩展。

                【讨论】:

                  【解决方案14】:

                  我不小心设置了错误的文件权限。在chmod 644 phpinfo.php 之后,信息确实按预期显示。

                  【讨论】:

                    猜你喜欢
                    • 2016-10-26
                    • 2020-04-17
                    • 1970-01-01
                    • 1970-01-01
                    • 2014-11-18
                    • 2014-04-03
                    • 2014-05-02
                    • 2012-01-10
                    • 1970-01-01
                    相关资源
                    最近更新 更多