PHP未被解释,显示在视图源代码中


PHP not interpreted, showing in view source

我希望这将是一个有用的页面,可以开始运行php代码,并解决当前的问题。我有一些非常简单的代码如下:

<html>
<head>
<title> Practice</title></head>
<body>
This is HTML
<?php
echo "This is PHP";
?>
</body>
<html>

这是在运行apache的ec2网站上上传的。代码不会被解释,当您查看页面的源代码时,它会显示php代码。

你可以看到这个页面。

有什么想法吗?php代码非常基础,我认为它可能与apache配置有关。请让我知道你需要的任何其他信息,我会提供,希望能告诉我如何将其发送到。

您可以使用安装libapache2-mod-php5

apt-get install libapache2-mod-php5

为我工作。

您确定安装了php吗?如果是,您需要确保apache将.php文件与php处理程序相关联。在/etc/apache/apache.conf 中查找类似以下内容的条目

 LoadModule php5_module modules/libphp5.so

 application/x-httpd-php        php php5

更改文件后,您需要通过sudo service httpd restart 重新启动apache

如果您使用的是php7,请确保安装了此模块。

sudo apt-get install libapache2-mod-php7.0

将7.0替换为您正在使用的php版本。

要查找php版本,请使用

php -v 

您可能需要.htaccess文件或Apache配置本身中的addHandler或addType:例如AddType应用程序/x-httpd-php.php

在我的案例中,/var/www/文件夹的权限错误。

我必须运行:

sudo chown -R www-data /var/www/
sudo chgrp -R www-data /var/www/

如果你在用户目录中有网页的内容,比如:

/home/*/public_html

然后你需要启用执行这些,默认情况下是禁用的:

# Running PHP scripts in user directories is disabled by default
# 
# To re-enable PHP in user directories comment the following lines
# (from <IfModule ...> to </IfModule>.) Do NOT set it to On as it
# prevents .htaccess files from disabling it.
<IfModule mod_userdir.c>
    <Directory /home/*/public_html>
        php_admin_flag engine Off
    </Directory>
</IfModule>

只需注释掉文件中的这段代码:

/etc/apache2/mods-enabled/php7.3.conf

根据您的系统、PHP版本等调整路径和文件名。

添加行:

SetHandler application/x-httpd-php 

在配置文件中为我工作