Apache:内联PHP不能在Linux上工作


Apache: Inline PHP not working on Linux

我有麻烦让我的PHP为我的Apache服务器工作。我正在运行Oracle Linux,并使用yum install php + yum install httpd来获得我的PHP和Apache。我在网上搜索了一下,做了一些事情:

首先,我已经进入我的httpd.conf文件并添加了LoadModule php5_module modules/libphp5.so。我选择使用php.conf文件中的那个,它是完全相同的。此外,我已经完成了AddType application/x-http-php .php,所以现在我的.php文件加载得很好。

其次,我试着运行我的Apache服务器,它工作得很好。它显示了我用DirectoryIndex设置的index.html文件。然而,当我试图将php代码放入其中时,它被自动注释掉了,我想这是因为我没有将其设置为在服务器端正确执行。

现在,说了这么多,我想知道我还可能错过了什么。我有两个设置,一个是.php文件,另一个是php与html.

内联。

index . html

<!DOCTYPE html>
    <body>
        <?php echo "Hello everybody."; ?>
    </body>
</html>

index . php

<?php phpinfo(); ?>

index.php文件加载正常,但是index.html不能运行php代码。我如何得到内联版本的php工作?

注意:我已经设置了我的Mac OS与。php文件工作良好,但它也有麻烦内联php在Html文件中。我错过了什么?


解决方案: Html文件本身不能包含php。相反,该文件必须是.php扩展名,并且在.php文件中可以包含文本、html和JavaScript。

我不认为。html文件是通过php运行的所以

将扩展名改为。php。

Php可以包含html。

编辑:如果您出于某种原因不能或不想使用php结尾,那么存在一个选项来配置例如Apache来解析html文件,就好像它们是php一样。

在我看来,这不是一个好的解决方案,因为它隐藏了一个事实,即对于未来的维护者来说,页面是动态的。

有一个类似的问题,有一个类似的问题:

PHP代码没有被执行,相反代码显示在页面

你可能想检查一下公认答案中的第2点到第5点:

  • LoadModule(似乎,你已经正确配置)
  • 设置Apache运行PHP文件(这是第三点,似乎你没有配置它)。在httpd.conf文件中添加以下行:AddType application/x-httpd-php .php
  • 确保文件以.php扩展名结尾(在配置Apache运行PHP文件之后,请参见上一点)
  • 更改代码以使用长PHP开始标记(<?php而不仅仅是<?)

您需要在php.ini文件中设置short_open_tag = On