PHP 文件显示为文本

PHP 文件显示为文本

当我想要执行一个 php 文件时,它会作为文本显示在我的浏览器中。

我在 Hostinger 有一个 VPS,我安装了带有 Webmin 和 LAMP(自动安装)的 Ubuntu 18.04。

我检查了安装情况,如下所示。

apache2 - vphp -v给我:Apache/2.4.29和 PHP7.2.24-0ubuntu0.18.04.6

一切似乎都安装正确。

我的默认文件夹是 /var/www/html/ 我不在代码中使用短标签。

我尝试创建一个名为 phpinfo.php 的文件,其内容如下:

<?php
phpinfo();
?>

并且纯文本出现在页面上。

如果文件以 html 代码开头,即使是 .php 文件,它也能正确呈现。但 php 部分不会执行。例如:

<!DOCTYPE html>
<html lang="en" dir="ltr">
  <head>
    <meta charset="utf-8">
    <title></title>
  </head>
  <body>
    <h1>Hello</h1>
  </body>
</html>

<?php
phpinfo();
?>

渲染:你好

<?php
phpinfo();
?>

<!DOCTYPE html>
<html lang="en" dir="ltr">
  <head>
    <meta charset="utf-8">
    <title></title>
  </head>
  <body>
    <h1>Hello</h1>
  </body>
</html>

将代码呈现为纯文本。

答案1

通常,当我在 ubuntu 上安装 apache 和 PHP 时,它可以无缝地为我工作,但这次我必须使用它,否则我的 PHP 文件就不会再以纯文本形式出现。

sudo apt install libapache2-mod-php7.4 

答案2

有几个原因导致您的 PHP 无法被解释。

  1. 您可能没有安装或运行 Apache 的 PHP 模块。

要检查已安装的 PHP 包,请输入:dpkg -l | grep php

要检查安装了哪些 Apache 模块,请键入:a2query -m。应该会列出一个 PHP 模块,并且应该已启用它。

您应该会看到libapache2-mod-php软件包列表。它可以被命名libapache2-mod-php7.2或类似名称以匹配您的 PHP 版本。

如果不存在,您必须安装它。

  1. Apache 可能需要配置才能执行 .php 文件。要快速检查您的 Apache 配置,请键入:grep -r php /etc/apache2/*

您应该SetHandler application/x-httpd-php在某处查看,并确保它没有被评论。

相关内容