当我想要执行一个 php 文件时,它会作为文本显示在我的浏览器中。
我在 Hostinger 有一个 VPS,我安装了带有 Webmin 和 LAMP(自动安装)的 Ubuntu 18.04。
我检查了安装情况,如下所示。
apache2 - v
并php -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 无法被解释。
- 您可能没有安装或运行 Apache 的 PHP 模块。
要检查已安装的 PHP 包,请输入:dpkg -l | grep php
要检查安装了哪些 Apache 模块,请键入:a2query -m
。应该会列出一个 PHP 模块,并且应该已启用它。
您应该会看到libapache2-mod-php
软件包列表。它可以被命名libapache2-mod-php7.2
或类似名称以匹配您的 PHP 版本。
如果不存在,您必须安装它。
- Apache 可能需要配置才能执行 .php 文件。要快速检查您的 Apache 配置,请键入:
grep -r php /etc/apache2/*
。
您应该SetHandler application/x-httpd-php
在某处查看,并确保它没有被评论。